Mysql-2选择子句基础

选择语句

选择数据库

可以双击数据库或者输入指令USE(可以大写也可以小写,但是最好是大写sql中的关键字,小写其他内容)

USE sql_store

选中后对应的数据库名称会加粗显示

查询语句SELECT

select 后面写要获取的列项或者使用*表示获取所有列项

然后下面使用from子句表明要查询的表,这里查询customers表

USE sql_store;
SELECT customer_id,first_name
FROM customers

当你有几个语句时,要用;隔开

select可以写在一行,但是如果数据库太过庞大,会使得语句看起来复杂所以我们写成两行

SELECT后面写列的名称,如果这个列存放的是数字,那么你也可以进行计算再显示1出来

Mysql-2选择子句基础

当我们想要自定义列的名字可以在后面加关键字AS+自定义名字

Mysql-2选择子句基础

如果你的名字想要有空格或者_以外的字符可以把名字用''或""框起来

Mysql-2选择子句基础

选择子句

当我们查询时想要得到一份数据的唯一列表(没有重复项)时,我们可以在select后面加上distinct关键字

Mysql-2选择子句基础

可以看到有两个vm

Mysql-2选择子句基础

WHERE子句

就是筛选语句,后面写出要满足的条件,对数据进行筛选

比如如下例子在所有顾客中找出积分大于3000的顾客

Mysql-2选择子句基础

可以用的符号:

(> >= < <= = !=不等于也可以用<>)

当我们要找的日期在某日期之前或者之后时也可以用> <但是要注意我们用引号表述日期值 即使日期不算是字符串

AND OR NOT运算符

AND一般用于多条件

WHERE birth_data >'1990-01-01' AND points > 1000

这种要同时满足两个条件的

而OR就是满足其中一个就可以的意思(当条语句既有OR和AND时AND的优先级更高但是最好还是将AND两边的语句括起来这样方便使用者查看)

WHERE birth_data >'1990-01-01' OR (points > 1000 AND state=VA)

NOT用于否定一个条件

当WHERE后面使用了NOT后条件中的比较运算符都要反过来,且and和or互换

IN 运算符

当我们的选择条件是同属性的不同值时我们用and就显得很麻烦,

所以我们要用IN

WHERE quantity_in_stock IN (49,38,72)

当然如果值是字符串要加''

BETWEEN运算符

用于简写我们取值的范围

比如我们要筛选积分在1000到3000

WHERE points BETWEEN 1000 AND 3000
//或者
WHERE points >=1000 AND points<=3000 

(注意日期要用''括起来)

LIKE运算符

这里先举一个例子

WHERE last_name LIKE 'b%'

这是找姓以b开头的人

%表示省略多个字符

找名字中含有b的可以用%b%

_ 表示省略一个字符

REGEXP运算符

正则表达式的缩写用于搜索字符串

比如我们要搜索姓含有'field'的人我们用like是可以完成的

WHERE last_name LIKE '%field%'

这样就可以找到姓里面无论哪里含有filed的人但是我们用REGEXP就可以不用百分号了

WHERE last_name REGEXP 'field'

效果是完全一样的

当然用法也有不同

WHERE last_name REGEXP '^field'

表示last name必须以field开头

WHERE last_name REGEXP 'field$'

表示必须以field结尾

WHERE last_name REGEXP 'field|mac|rose'

可以同时找多个关键词关键词之间用竖线隔开

WHERE last_name REGEXP '^field|mac|rose'

当然也可以和上面的一起结合使用

假如你想搜索姓氏里面有e且e的前面有一些规定字母的人

WHERE last_name REGEXP '[gim]e'

就比如这样可以找到姓氏里有e且e前面是这三个其中一个的符合条件的所有数据

同样可以把括号写在后面找后面字母

当要求是一个范围时可以再[]里写a-h类似

IS NULL运算符

用于查找缺失某信息的数据

SELECT *
FROM orders
WHERE shipped_date IS NULL

比如查找那些没有发货的订单数据

如果要找所有发货了的我们可以加上NOT

SELECT *
FROM orders
WHERE shipped_date IS NOT NULL

ORDER BY子句

使数据进行排序显示

一般一个表都有属于它自己的主键,主键是唯一的,排序会默认按照主键排序,当我们要自定义某方式排序显示时就可以用到这个子句

Mysql-2选择子句基础

点可击这个可以对表进行设置

Mysql-2选择子句基础

当我们指定要以姓的首字母进行排序时

Mysql-2选择子句基础

当然默认的就是升序排序,如果你想改为降序在后面加上DESC就行了

Mysql-2选择子句基础

LIMIT子句

限定查询返回的记录

SELECT *
FROM customers
LIMIT 3

这样就限制只显示前三条,如果限制的数大于了所有的数据,则就显示所有数据

SELECT *
FROM customers
LIMIT 6,3

这里第一个数表示跳过前几个数据,后一个数表示显示几条数据,执行结果如下

Mysql-2选择子句基础

这里要注意下各子句的顺序

上一篇:正则表达式


下一篇:正则表达式——个人学习