MySQL单表查询

一、查询所有字段

select * from 表名;

select 字段1,字段2,字段3... from 表名;

二、查询指定字段

 select 字段1,字段2... from 表名;(指定字段从表中全部字段字段——字段1,字段2,字段3...选取)

三、where条件查询

select 字段1,字段2,字段3... from 表名 where 条件表达式;

SELECT * FROM t_student WHERE id=1;
SELECT * FROM t_student WHERE age<20;

四、带in关键字的查询

select 字段1,字段2,字段3... from 表名 where 字段p (not)in (元素1,元素2,元素3...);

从表中所有数据中查询字段p值为in中元素的数据,类似于:

 SELECT * FROM t_student WHERE age IN (20,23)查询的结果与

 SELECT * FROM t_student WHERE age=20 + SELECT * FROM t_student WHERE age=23一致

五、带between and 的范围查询

SELECT * FROM t_student WHERE 字段 (not)between 取值1 and 取值2;

六、带like的模糊查询

SELECT * FROM t_student WHERE 字段 (not)like  '字符串';

“%”代表任意字符

“_”代表单个字符,二者也可混合用

SELECT * FROM t_student WHERE stuName like '张三';  查stuName=张三的数据

SELECT * FROM t_student WHERE stuName like '张三%';   查stuName以张三开头的数据 

SELECT * FROM t_student WHERE stuName like '%张三%';   查stuName包含”张三“二字开头的数据  

SELECT * FROM t_student WHERE stuName like '___';   查stuName三个字的数据    

SELECT * FROM t_student WHERE stuName LIKE '%__三';  查stuName末字为三,前有两字的数据

七、空值查询

SELECT * FROM t_student WHERE 字段 is (not)null;

八、带and 的多条件查询

SELECT * FROM t_student WHERE 字段1=元素1 and 字段2 = 元素2 and...;  

九、带 or 的多条件查询

SELECT * FROM t_student WHERE 字段1=元素1 or 字段2 = 元素2 or...;  

十、DISTINCT去重复查询

SELECT DISTINCT gradeName FROM t_student;

十一、对查询结果排序

SELECT * FROM t_student ORDER BY age ASC;默认按age从小到大升序查询

SELECT * FROM t_student ORDER BY age DESC;按降序查询

十二、GROUP BY分组查询

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

1.单独使用,毫无意义(在图形化工具SQLyog中报错)

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

SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;
SELECT sex,GROUP_CONCAT(stuName) FROM t_student GROUP BY sex;

3.与聚合函数一起使用

SELECT sex,COUNT(stuName) FROM t_student GROUP BY sex;根据sex分组查询stuName的总数

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

SELECT sex,COUNT(stuName) FROM t_student GROUP BY sex HAVING COUNT(stuName)>3;

根据sex分组查询stuName的总数大于3的数据

5.与WITH ROLLUP一起使用(最后加入一个总和行)

SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;按gradeName分组查询stuName的个数,并在最后一行列出总数

SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;按gradeName分组查询stuName的文本值,并在最后一行列出所有的stuName的文本值

十三、LIMIT分页查询

SELECT 字段1,字段2... FROM 表名 LIMIT 初始位置,记录数;

SELECT * FROM t_student LIMIT 0,5;初始位置代表表中的第一条数据,往往从0开始,记录数代表总共查询的结果数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值