SQL 语句 DQL
数据库表常见查询语句
1. 全部查询
-
# 查询全部 [SELECT * FROM 表名] SELECT * FROM stu; # 查询stu表中的所有列 # 再 SELECT 语句后加上 distinct 语句,表示去重查询 SELECT distinct `name` FROM stu; # 查询stu表中的所有name列(去重)
2. 条件查询
-
-
# 条件查询 [SELECT * FROM 表名 FROM WHERE 条件] # 比较运算符 SELECT * FROM stu FROM WHERE age<7; SELECT `name` FROM stu WHERE ag>=7; ......
-
# 逻辑运算 SELECT * FROM stu WHERE age>=7 and age<18; ........
-
# 范围查询 [非连续与连续查询] # 非连续 SELECT * FROM 表名 WHERE 条件列 IN (某一个范围逗号隔开) SELECT * FROM stu WHERE age IN (10,18,19); # 表示查询年龄为10、18、19的学生信息 SELECT * FROM stu WHERE age=10 or age=18 or age=19;# 该语句与上面的语句等价 # 连续 SELECT * FROM 表名 WHERE 条件列 BETWEEN v1 AND v2 [表示在v1到v2的范围之间,包含本身v1,v2] SELECT * FROM stu WHERE age BETWEEN 7 and 18; # 表示查询年龄在7-18之间的学生信息 SELECT * FROM stu WHERE age>=7 AND age<=18; # 该语句与上面的语句等价
-
# 空值判断 # 判空 SELECT * FROM 表名 WHERE 条件列 IS NULL SELECT * FROM stu WHERE age IS NOT NULL; # 判非空 SELECT * FROM 表名 WHERE 条件列 IS NOT NULL SELECT * FROM stu WHERE age IS NULL; /**上面只是判断null不包含空字符 - 所以想要包含空字符也包含null的话,可以直接使用空字符来进行判断 - 空字符饱和null 如下 */ SELECT * FROM stu WHERE age!=""; SELECT * FROM stu WHERE age="";
3. 模糊查询like
-
-
# 模糊查询like [SELECT * FROM 表名 WHERE 条件列 LIKE 模糊条件值] # % 任意字符 SELECT * FROM 表名 WHERE 条件列 LIKE v%|%v... SELECT * FROM stu WHERE `name` LIKE "k%"; # 表示查询stu中name首位为k的所有数据 # _ 单个字符,即相当于一个(_)代表一个字符 SELECT * FROM stu WHERE `name` LIKE "k___"; # 表示查询stu中的name首位为k,并且后面为三个任意字符的的所有数据
4. 分页查询
-
-
# 分页查询 SELECT * FROM LIMIT /** 方式1:limit , [start] , count 方式2:limit , count , offset num, start [有问题,可能不支持,不确定] 其中;start表示从第几个开始[0=1],count表示查询多少个,offset表示跳过多少个 */ # 表示从第1为开始插入5条数据 [默认是从第一条数据开始,所以也可以不写0] SELECT * FROM stu LIMIT 0,5; # 表示跳过两列,查询3列 SELECT * FROM stu LIMIT 3 offset 2;
5. 排序查询
-
-
# 排序查询:order by 列名 ASC/DESC,[列1 ASC/DESC] # 对年龄列进行升序排序查询 ELECT * FROM stu ORDER BY age ASC; /**多列排序 会先进行第一列的排序,在对第一列排序相互来的结果有重复的数据整进行第二列的拍戏,依次类推..... 也可以理解为是排序的优先级(或以哪一个为基准等)[自理] */ # 对年龄(age)进行排序,如果有重复的在进行名字(name)的排序 [升序] SELECT * FROM stu ORDER BY age ASC,name ASC;
6. 练习与子查询引入
-
# 练习1 # 查询stu表中年龄最大的所有数据 SELECT * FROM stu WHERE max(age); # 报错,因为where语句中不能存在函数 SELECT max(age) FROM stu; # 只能查询年龄最大值的 # 使用子查询,就是在查询语句中使用查询语句,记得需要用括号括起来 /**该语句可以理解为 先查询stu表中年龄的最大值 再根据这个最大值,去查找stu中所有符合该结果的数据 并以id列进行升序排序 */ SELECT * FROM stu WHERE age = (SELECT max(age) FROM stu) ORDER BY id ASC;