1.查询语句(核心) 例子:查询表中的所有信息 通配符*表示所有 SELECT * FROM student1 例子:查询每个学生的编号和姓名 SELECT sno,sname FROM student1 取别名:as 例子:查询每个学生的编号和姓名,班级,并取别名 SELECT sno as '编号',sname '名字',class '班级' FROM student1 where条件: 例子:查询95033班的所有学生信息 SELECT * FROM student1 WHERE class=95033 例子:查询李军的所有姓名,年龄并取别名 select sname as '姓名',sage as '年龄' from student1 where sname ='李军' 关系运算符 > < = >= <= != 例子:查询姓名为李军的信息,显示姓名,年龄取别名 select sname as '姓名',sage as '年龄' where sname ='李军' 逻辑运算符:and or not in beteewn and and:且 包含多个条件,必须同时满足多个条件结果成立 例子:查询95033班所有女生信息 SELECT * FROM student1 where class=95033 and ssex='女' 例子:查询95033班年龄不为18岁的男生信息 SELECT * FROM student1 WHERE class=95033 and ssex='男' and sage !=18 or:或 包含多个条件,只满足其中一个条件结果成立 例子:查询95033班或者95032的所有学生信息 SELECT * from student1 where class=95033 or class =95032 例子:查询95033班年龄为18或年龄为19 岁的男生信息 SELECT * FROM student1 WHERE class=95033 AND ssex='男' AND (sage=18 OR sage=22) 例子:查询95033班95032班年龄为18岁或者19岁的学生信息 SELECT * FROM student1 WHERE (class=95033 or class=95032) AND (sage=18 OR sage=19) in:包含 例子:查询年龄为18,19 20 岁的学生信息 select * from student1 where sage=18 OR sage=19 or sage=20 例:查询95033班95032年龄为18,19 20 岁的学生信息 SELECT * FROM student1 WHERE (class=95033 or class=95032) AND sage IN(18,19,20) SELECT * FROM student1 WHERE class IN(95032,95033) AND sage IN(18,19,20) not:条件不成立,结果成立 例子:查询不是95033班或者不是95032班的学生信息 select * from student1 where class!=95033 and class!=95032 SELECT * FROM student1 WHERE not class IN(95033,95032) 例子:查询95033班年龄不是18,19岁的男生姓名,年龄,取别名 select sname as'姓名',sage as '年龄'from student1 where class=95033 and sage not in(18,19) select sname as'姓名',sage as '年龄'from student1 where class=95033 and sage not in(18,19) select sname as'姓名',sage as '年龄'from student1 where class=95033 and (sage!=18 AND sage!=19) beteewn and 在什么区间内 例子:查询编号101到105的学信息 SELECT * FROM student1 WHERE sno IN(101,102,103,104,105) SELECT * FROM student1 WHERE sno BETWEEN 101 AND 105 like:模糊查询 例子:查询姓王的学生信息 SELECT * FROM student1 WHERE sname LIKE'王%' SELECT * FROM student1 WHERE sname LIKE'王_' 通配符%号表示所有 _表示自的个数单位 例子:查询95033班不是来自长沙的学生信息 SELECT * FROM student1 WHERE class=95033 AND saddress NOT LIKE '%长沙%' 例子:查询95033班不是来自长沙的学生信息,编号101-105 SELECT * FROM student1 WHERE class=95033 AND saddress NOT LIKE '%长沙%' AND sno BETWEEN 101 AND 105 完整的查询语句 select * from 表名 where条件 分组group by having 条件 order by排序 limit 显示行数 排序:order by 例子:查看表的所有信息,按照编号从小到大进行排序 select * from student1 order by sno asc(默认从小到大进行排序(或者加上asc)) 例子:查看所有信息,按照编号从大到小进行排序 select * from student1 order by sno asc 例子:查询95033班学生信息,按照年龄从小到大进行排序 select * from student1 where class=95033 order by sage asc 例子:按照班级,年龄进行排序显示表的所有信息 SELECT * FROM student1 ORDER BY class,sage 例子:按照班级,年龄从大到小进行排序 SELECT * FROM student1 ORDER BY class desc,sage DESC limit:显示行数 例子:查看编号最大的学生信息(适用于设置主键的字段) SELECT * FROM student1 ORDER BY sno DESC LIMIT 0,1 备注:limit x,y 第一个数字x表示从第几行开始(第一行数字为0) 第二个数字y表示显示几行 例子:查询编号第二和第三大的学生信息 SELECT * FROM student1 ORDER BY sno DESC LIMIT 1,2 例子:查询姓王的学生,按照年龄从小到大进行排序 SELECT * FROM student1 WHERE sname LIKE '王%' ORDER BY sage 例子:查询95033班姓王,编号最大的学生信息 SELECT * FROM student1 WHERE class=95033 AND sname LIKE '王%' ORDER BY sno DESC LIMIT 0,1 去重复:distinct 例子:去重复查询所有班级 SELECT DISTINCT class FROM student1 null 和空的区别:null 表示真空,什么东西都没有 空:至少知道是空的 聚合函数 min(最小值) 例子:查询表中的最小年龄 select min(sage) from student1 max(最大值) 例子:查询编号最大的学生信息 第一步:查询最大的编号 select max(sno) from student1 第二步: SELECT* FROM student1 WHERE sno=(SELECT max(sno) FROM student1) count(计数,统计) 例子:统计表内有多少人 select count(*) from student1 sum (求和) 例子:求95033班的年龄总和 select sum(sage) from student1 where class=95033 avg (平均值) 例子:求表内年龄大于平均年龄的学生信息 第一步:求出表内的平均年龄 select avg(sage) from student1 第二步整合 SELECT * FROM student1 WHERE sage >(select avg(sage) from student1 ) concat(连接函数) 例子:将表的学号和字段进行连接 SELECT concat(sno,sname) FROM student1 例子:将表的学号和字段、年龄进行连接,并用@@@隔开 SELECT CONCAT_WS('@@@',sno,sname,sage) FROM student1 分组:group by 例子:统计每个班级的人数 SELECT class,COUNT(*)FROM student1 GROUP BY class 例子:统计每个班男女生各有多少人 SELECT class,ssex,COUNT(*) FROM student1 GROUP BY class,ssex 多个条件进行分组,必须满足多个条件才算一个分组 例子:统计每个班有多少男生 select class,ssex,count(*)from student1 where ssex='男' group by class 例子:统计男生人数大于等于2的班级 SELECT class,ssex,COUNT(*)as a FROM student1 WHERE ssex='男' GROUP BY class HAVING a >=2 例子:统计男生人数大于等于2的班级,按照人数从大到小进行排序 SELECT class,ssex,COUNT(*)as a FROM student1 WHERE ssex='男' GROUP BY class HAVING a >=2 ORDER BY a 例子:统计男生人数大于等于2的班级,按照人数从大到小进行排序,显示一行 SELECT class,ssex,COUNT(*)as a FROM student1 WHERE ssex='男' GROUP BY class HAVING a >=2 ORDER BY a desc LIMIT 1 查询班级男生人数最大的班级 SELECT class,b FROM (SELECT class,ssex,COUNT(*)as b FROM student1 GROUP BY class)as a WHERE b=(SELECT max(b) FROM (SELECT class,ssex,COUNT(*)as b FROM student1 GROUP BY class)as a)