vlambda博客
学习文章列表

MySql系列(1)——单表查询

1.查询所有字段

SELECT * FROM 表名称;


例如查询book表中所有的数据:

select * from book;

MySql系列(1)——单表查询

2.查询指定字段

SELECT  字段1,字段2,字段3...FROM 表名称;


例如查询book表中的书籍名称:

select bookName from book;

MySql系列(1)——单表查询

3.WHERE条件查询

SELECT  * FROM 表名称 WHERE 条件表达式;


例如查询book表中书价格低于60的书籍名称:

select bookName from book where price < 60;

MySql系列(1)——单表查询

4.带In关键字查询

SELECT  * FROM 表名称 WHERE 字段 [NOT] IN (元素1,元素2,元素3);


注意:该字段查询结果后是元素1,元素2和元素3;

例如查询book表中书的价格是30和70的有哪些?:

select * from book where price in (30,70);

MySql系列(1)——单表查询

相反,若查询书的价格不是30和70的有:

select * from book where price not in (30,70);

MySql系列(1)——单表查询

5.带BETWEEN...AND的范围查询

SELECT * FROM 表名称 WHERE 字段 [NOT] BETWEEN 取值1 AND 取值2;


注意:该查询结果的是指在取值1和取值2的范围之间,且包括取值1和取值2!

例如查询book表中书的价格在30和70之间的有哪些?

select * from book where price between 30 and 70;

MySql系列(1)——单表查询

相反,若查询书的价格不在30~70这个范围之间,加个not就行了

select * from book where price not between 30 and 70;

MySql系列(1)——单表查询

6.带LIKE的字符匹配查询

SELECT * FROM 表名称 WHERE 字段 [NOT] LIKE ‘字符串’;


%(百分号)代表任意长度(长度可以为0)的字符串。例如a%b表示以a开头,以b结尾的任意长度字符串。

如:acb,addgb,ab等都满足该匹配串;

_(下横线)代表任意单个字符。例如a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,adb等都满足该匹配串。


例如:新建一个stu表,并插入相关数据,查询结果:

select * from stu;

MySql系列(1)——单表查询

例如查询以‘张三’字样开头的姓名:

select * from stu where sname like '张三%'; 

MySql系列(1)——单表查询

例如查询以‘张三’字样开头的名字(只限3个字符):

select * from stu where sname like '张三_';

MySql系列(1)——单表查询

例如查询以‘张三’字样开头的名字(只限4个字符):

select * from stu where sname like '张三__';(加两个'_'符号)

MySql系列(1)——单表查询

例如查询只含有‘四’字样的名字:

select * from stu where sname like '%四%';

MySql系列(1)——单表查询

7.空值查询

SELECT * FROM 表名称 WHERE 字段 IS [NOT] NULL;(此处的IS不可改为=)


例如查询表中年龄为null的数据:select * from stu where age is null;

MySql系列(1)——单表查询

8.带AND的多条件查询

SELECT * FROM 表名称 WHERE 条件表达式1 AND 条件表达式2;


例如要查询表中年龄=18并且姓名中含有张三字样的数据:

select * from stu where sname like '%张三%' and age=18;

MySql系列(1)——单表查询

9.带OR的多条件查询

SELECT * FROM 表名称 WHERE 条件表达式1 OR 条件表达式2;


例如要查询表中年龄=18或者姓名中含有张三字样的数据:

select * from stu where sname like '%张三%' or age=18;

MySql系列(1)——单表查询

10.DISTINCT去掉重复的查询

SELECT  字段  FROM  表名称;


例如查询年龄的所有数据:select age from stu;

MySql系列(1)——单表查询


若去掉重复的年龄则有:select distinct age from stu;

MySql系列(1)——单表查询

11.对查询结果进行排序

SELECT * FROM 表名称 ORDER BY 属性名[ASC|DESC](ASC是升序,DESC是降序);


例如查询所有数据,按照年龄降序排列:

select * from stu order by age desc;

MySql系列(1)——单表查询

12.LIMIT分页查询

SELECT * FROM 表名称 LIMIT 初始位置,每页记录数;


例如stu表中共有8条数据,按照分页查询,每页有3条数据:

select * from stu limit 0,3;(第1页数据,0/1/2三条)

MySql系列(1)——单表查询

select * from stu limit 3,3;(第二页数据,3/4/5三条)

MySql系列(1)——单表查询

select * from stu limit 6,3;(第三页数据,6/7两条)




原创实属不易,求个关注吧~