语法
select 列名1,列名2……列名n from 表名;
语法
select * from 表名
语法
加一个distinct关键字
select distinct 列名1,列名2……列名n from 表名;
select 列名1 as 新列名1,列名2 as 新列名2…… from 表名;
其中as关键字可以不写。
语法
select 列名 from 表名 where 条件;
包括:=, >, <, >=, <=, !=, <>(不等于), !>, !<;
下面完成几个需求实现查询:
年龄在10以上20以下的
语法
select 列名 from 表名 where age<20 && age >10;
或者&&用and,表示并且
or和||表示或者
between and
not between and
-- 查找id在20到30之间的同学信息
select * from student where id between 20 and 30;
in ,not in
select * from 表名 where 列名 in (value)
-- 查询住在北京和上海的同学
select * from student where adr in ('北京','上海');
is null ,not is null
-- 查询成绩为空的同学信息
select * from 表名 where 列名 is null
select * from student where score is null;
select * from 表名 where 列名 id < 10 and adr in 'China' or id >5 and adr in 'HongKong'
#查询第二个字是花的
select * from stu where name like '_花%'
#查询有圣的
select * from stu where name like '%圣%'
select * from 表名 order by 排序字段名[排序方式]
asc升序
desc降序
如果不指定
默认asc
语法同上,但是在第一个字段排完才排第二个
select count(*) from stu
统计表中的学生数量
select max(math) from stu
求最大分数的同学
select avg(math) from stu
求数学的平均分
where是在分组前的判断,having是在分组后的判断
where不能对聚合函数进行判断,having可以
执行顺序where>聚合函数>having
查询男女同学各自的平均分,以及人数,要求:且小于60分不参与分组,每组不少于2人
select sex,avg(math),count(*) from stu where score>60
group by sex having count(*) > 2;
使用关键字limit
select 列名 from 表名 limit 起始索引,查询条数
每页显示3条数据,查询第三页
起始索引=(查询页数-1)*每页的条目数
select * from stu limit 6,3;