关键词
desc:降序
asc:升序
limit:用于限制查询语句的返回数量。有两个参数,limit x,y
第一个参数x表示开始位置,初始值为0,第二个参数y表示返回的条数。
例(一个参数):select * from people limit 2; 表示从查询结果中,返回最前面两条数据
例(两个参数): select * from people limit 1,3 表示从第2条数据开始,一共返回3条数据。
distinct: 用于对查询数据的去重 ,distinct只能有一个参数。
用法: select distinct(字段名) from 表名;
推荐博客 https://www.cnblogs.com/leonlee/p/6042461.html
order by: 用于对查询出来的数据排序。
用法: order by 字段名 排序方式(asc,desc)
group by:用于对查询出来的数据根据一个列或者多个列进行分组。
用法: group by 字段名
INNER JOIN (内连接):两边表同时有对应的数据,即任何一边缺失数据就不显示。
用法: select * from 表1名 join 表2名 on 表1名.字段a = 表2名.字段a
LEFT JOIN (左连接)会读取左边数据表的全部数据,即便右边表无对应数据。
用法:select * from student left join school on student.schoolID = school.schoolID
RIGHT JOIN (右连接) 会读取右边数据表的全部数据,即便左边表无对应数据。
用法:select * from student as stu right join on school as sch on stu.schoolID = school.schoolID
FULL JOIN (全外连接) 返回两个表中的行,left join + right join。(mysql本身不提供全外连接)
示例表格数据
create table people(
id int primary key auto_increment comment'主键id',
name VARCHAR(10) not null comment'姓名',
age int comment'年龄'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into people(name,age)values('张三',18),('李四',22),('王五',16);
insert into people(name,age)values('张三',12),('赵六',22);
insert into people(name,age)values('张三',18);
limit示例
例(一个参数):select * from people limit 2; 表示从查询结果中,返回最前面两条数据
select * from people limit 2;
例(两个参数): select * from people limit 1,3 表示从第2条数据开始,一共返回3条数据。
select * from people limit 1,3;
distinct示例
例1.查询一个字段,去重一个字段。
select DISTINCT(name) from people;
例2,查询多个字段,去重一个字段,查询的两个字段的数据一样才能去重
select DISTINCT(name),age from people;
order by示例
select * from people order by age desc;
group by示例
select name,count(*) from people group by name;