MySQL查询语句---单表查询

1.带IN关键字的查询。

IN用来指定某字段的取值的集合。

[NOT] IN (元素1, 元素2...)

例如:SELECT * FROM employee WHERE id IN(1001,1002);

代表查询表中id为1001和1002的记录。

2.带BETWEEN AND 关键字

表示字段值是否在指定范围内。

[NOT] IBETWEEN 取值1 AND  取值2

例如:SELECT * FROM employee WHERE age BETWEEN 15 AND 20;

代表查询表中年龄大于等于15小于等于20的记录。

3.带LIKE关键字查询

表示匹配字符串是否符合

[NOT] LIKE '字符串'

例如:SELECT * FROM employee where name like 'Aric%'

代表查询表中名字以Aric开头的记录

匹配字符串中可以包含‘%’或'_'的通配字符

其中(1)"%"代表任意长度的字符串,长度可以为0;例如b%k可以匹配bk, bak, book等字符串。

(2)‘_’只能表示单个字符。当需要匹配的字符为汉字时,因为汉字占两个字符位,所以需要两个下划线代表一个汉字,例如:需要匹配张三,则需要写为‘张__’(两个下划线)

4.空值查询

IS [NOT] NULL

例如:SELECT * FROM work WHERE info is NOT NULL;

代表查询表中info字段不为空的记录。

5.多条件查询:AND OR 可以连接多个条件

其中OR可以和AND一起使用,两者一起使用时,AND要比OR先选择。

6.消除属性名字段中的重复结果

SELECT DISTINCT 属性名

例如:SELECT DISTINCT id FROM employee;

返回id不重复的记录

7.对结果进行排序

ORDER BY 属性名 [ASC|DESC]

ASC代表升序(默认值,可省略不写),DESC代表降序

例如:SELECT * FROM employee ORDER BY age DESC;

返回年龄从大到小的记录合集。空值代表最小值

8.使用LIMIT限制查询结果的数量

例如:

SELECT * FROM employee LIMIT 2 只显示前两条记录

SELECT * FROM employee LIMIT 0,2 0代表初始位置,2代表记录数

9.分组查询

查询的字段中值相等的为一组。

GROUP BY 属性名 [HAVING 表达式 ] [WITH ROLLUP]

(1)单独使用GROUP BY关键字分组,查询结果只显示一个分组的一条记录。

SELECT * FROM employee  GROUP BY sex;

只显示男女两条记录,这种用法意义不大。一般在集合函数中才使用GROUP BY

(2)与GROUP_CONCAT()函数一起使用。

每个分组中指定字段值都显示出来。

例如:SELECT sex, GROUP_CONCAT(name) FROM employee  GROUP BY sex;

结果:

sex | GROUT_CONCAT(name)

女   |  张三

男   |  李四,王五,Aric

(3)与集合函数一起使用,可记录分组的总记录最小值最大值等。

例如:SELECT sex, COUNT(name) FROM employee  GROUP BY sex;

SELECT sex, COUNT(sex) FROM employee GROUP BY sex HAVING COUNT(sex)>=3 ;

结果:

sex | GROUT_CONCAT(name)

女   |  1

男   |  3

聚会函数包括:COUNT(),SUM(),AVG(),MAX(),MIN()

(4)与HAVING 一起使用,限制输出的结果

例如:SELECT sex, COUNT(sex) FROM employee GROUP BY sex HAVING COUNT(sex)>=3 ;

注意:'WHERE' 作用于表或视图;'HAVING' 作用于分组后的记录,用于选择满足条件的组。

(5)按多个字段进行分组

例如:SELECT * FROM employee GROUP BY id,sex;

先按照id进行分组,id字段值相等则按照sex分组。

(6)与WITH ROLLUP 一起使用

将会在在所以记录的最后加上一条记录,代表上面记录的总和。

例如:SELECT sex, COUNT(sex) FROM employee GROUP BY sex WITH ROLLUP; 

结果:

sex | GROUT_CONCAT(name)

女   |  张三

男   |  李四,王五,Aric

NULL | 张三,李四,王五,Aric







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值