MYSQL 基本操作
分页
当数据量过大时,在一页中查看数据非常麻烦, 可以使用分页来优化
语法:
select * from limit 开始值,数据条数
例子:
在学生表内查询前三行的男生成绩
select * from students where gender=1 limit 0,3;
连接查询
当需要查询的数据来源于多张表 , 那么则要将多张表连接成一个打的数据集合 , 然后再选择合适的返回
查询类型:
mysql 支持三种连接查询类型:
- 内连接查询 : 查询的结果为两个表匹配到的数据
内连接查询语法 :
select * from 表1 inner join 表2 on 表1.列名1=表2.列名1
查询到的结果:两个表共同拥有的数据
- 左连接查询 : 查询的结果为两个表匹配到的数据和左表特有的数据 , 右表中有而左表没有的数据用null填充
左连接查询语法:
select * from 表1 left join 表2 on 表1.列名1=表2.列名1
查询到的结果:两个表共同拥有的数据和左表特有的数据
- 右连接查询 : 查询的结果为两个表匹配到的数据和右表特有的数据 , 左表中有而右表没有的数据用null填充
右连接查询语法:
select * from 表1 right join 表2 on 表1.列名1=表2.列名1
查询到的结果 : 两个表共同拥有的数据和右表特有的数据
自关联:
自关联就是同一张表 , 用内连接查询连接两张表 , 做到表内查询
自关联语法:
select * from 表1 inner join 表1 on 条件
子查询:
子查询的定义: 子查询就是 在一个select语句中嵌入的另一个select语句
主查询: 主查询是 主select,不是被嵌入的那一个
主查询和子查询的关系:
-
子查询被嵌入在主查询中 -
子查询一般是充当条件 , 或是充当主查询的数据源 -
子查询是一张表,可以独立存在输出
子查询的分类:
- 标量子查询 : 返回的表是一个一行一列的数据
|列名|
|数据|
- 列子查询 : 返回的表是一个一列多行的数据
|列名|
|数据|
|数据|
- 行子查询: 返回的结果是一行多列的数据
|列名| |列名|
|数据| |数据|
总结:
查询的完整格式:
select 列名 from 表 [where 条件 ][group by 分组的列名 having 条件] order by 排序依据 升序/降序
limit 开始值,数据条数
列名 from 表 [where 条件 ][group by 分组的列名 having 条件] order by 排序依据 升序/降序 limit 开始值,数据条数
|