createtable student3(
id int,-- 编号
name varchar(20),-- 姓名
age int,-- 年龄
sex varchar(5),-- 性别
address varchar(100),-- 地址
math int,-- 数学
english int-- 英语);insertinto student3(id,NAME,age,sex,address,math,english)values(1,'马云',55,'男','杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港',99,99),(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);
2.查询语句
-- 灵活查询所有数据 部分列数据-- select * from 表名;-- select 字段名,字段名 from 表名;select*from student3;select id,name from student3;-- 查询语句是可以带条件的-- select * from student3 where 条件;-- 比较运算符 > = >= <= != <>-- between and-- in 在。。里面-- like 模糊查询-- and 和 or 或者 not-- 查询数学成绩大于80分的学生select*from student3 where math >80;-- 查询数学成绩小于80分的学生select*from student3 where math <80;-- 查询英语成绩小于80分的学生select*from student3 where english <=80;-- 查询英语成绩大于80分的学生select*from student3 where english >=80;-- between and 在。。区间 包含65,包含80,包头又包尾-- 查询英语成绩在65和80之间的学生有哪些-- and两个条件都要满足select*from student3 where english >=65and english <=80;select*from student3 where english between65and80;-- or 和 一个条件成立就行select*from student3 where english >=80or english <=99;-- not 非 不成立select*from student3 wherenot english >=80;-- in 在。。里面-- 英语成绩在80分,90分 english = 80 or english = 90select*from student3 where english(80,90,70,77);-- between and 在区间里面 一个范围 english>=65 and english <=80 65<=english<=80-- in和值相等 english = 80 or english = 90 or english = 70 english=80 english=90select*from student3;-- like模糊查询 匹配任意多个字符 查询出来-- %匹配任意多个字符 _匹配一个字符-- 查询 姓马的学员信息 马%select*from student3 where name like'马%';-- 名字中包含 马 字的学员信息我都查询出来select*from student3 where name like'%马%';-- 马字结尾select*from student3 where name like'%马';-- 查询 姓马的学员信息 马_select*from student3 where name like'马__';select*from student3 where english isNULL;
3.排序
-- order by 字段名 asc 默认是asc 从小到大 降序从大到小-- 根据年龄进行升序排序select*from student3 orderby age;select*from student3 orderby age desc;-- 年龄升序 数学成绩降序可以吗?select*from student3 orderby age asc,math desc;
-- group by会和聚合函数一起使用-- group by不会单独使用,单独使用没有意义-- group by 分组-- 分组 分成男女两组 男 和 女 数据只有2行select*from student3 groupby sex;-- 统计男女各有多少人 统计 取个别名 as 用空格selectcount(sex)as'统计',sex '性别'from student3 groupby sex;-- 男女英语成绩平均值selectavg(english),sex from student3 groupby sex;-- 查询年龄在28岁(包含)以上的学员人数 按照性别分组selectcount(sex)as'统计',sex from student3 where age>=28groupby sex;-- 查询年龄在28岁(包含)以上的学员人数 按照性别分组,查询性别人数大于2的数据-- 分组完成之后才能做这个条件selectcount(sex)as'统计',sex from student3 where age>=28groupby sex havingcount(sex)>2;-- where和having都是加条件-- where是分组之前过滤数据 不能加聚合函数-- having是分组之后过滤数据