MySQL笔记(二)查询操作
16lz
2021-01-22
一 单表查询
语法:
select [distinct] *| 列名,列名 from 表名 [where条件]
1 简单查询
1.1 查询表中所有列
select * from 表名;
1.2 查询特定列
select 列名,列名 from 表名;
1.3 别名查询(as可省略)
1 表别名
select * from 表名 as 表别名;
2 列别名
select 列名 as 列别名 from 表名;
1.4 去掉重复值(按照列名,括号可以省略)
select distinct(列名) from 表名;
1.5 运算查询
例:将所有列值+10进行显示
select 列名+10 from 表名;
2 条件查询(where条件)
3 排序(order by)
select ... order by 列1 asc|desc,列2 asc|desc ...
- asc升序(默认)
- desc降序
4 聚合函数
- 格式:xxx(列名)
- 常用聚合函数:sum()求和、avg()平均、max()最大值、min()最小值、count()计数
- 注意:聚合函数不统计null值
5 分组操作
select ... group by 列名 [having 条件]
6 查询总结
select
一般在的后面的内容都是要查询的字段
from
要查询到表
where
查询条件
group by
分组字段
having
分组后带有条件只能使用having
order by
它必须放到最后面
二 多表查询
1 主键与外键
- 两张表分别是“分类表”和“商品表”,为了表明商品属于哪个分类。通常情况下,在商品表上添加一列(category_id),用于存放分类cid的信息。
- 分类表category称为主表,字段cid称为主键。
- 商品表products称为从表,字段category_id称为外键。
- 外键特点
- 从表外键的值是对主表主键的引用
- 从表外键类型,必须与主键类型一致
- 外键的目的:保证数据的完整性
- 声明外键约束
外键名称一般建议“_fk”结尾,便于删除外键约束
alter table 从表 add[constraint][外键名称]foreign(从表外键字段名)references主表(主表的主键);
- 删除外键约束
alter table 从表 drop foreign key 外键名称;
2 表与表之间的关系
表与表之间的关系,说的就是表与表数据之间的关系。
2.1 一对多关系
- 常见实例:客户和订单、分类和商品、部门和员工
- 一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
2.2 多对多关系
- 常见实例:学生和课程、商品和订单、人和角色。
- 多对多建表原则:需要创建第三张表,中间表至少两个字段,这两个字段分别作为外键指向各自一方的主键。(就是将一个多对多拆分成两个一对多)。
- 两张表分别都是主表,第三张表为从表,提供两个字段,都是外键。
2.3 一对一关系
- 在实际开发中应用不多,因为一对一可以创建成一张表。
- 两种建表原则
- 外键唯一:主表的主键和外表的外键(唯一),形成主外键关系,外键唯一unique。
- 外键是主键:主表的主键和从表的主键,形成主外键关系
3 多表查询
交叉连接
- 语法:select … from A,B;
- 基本不会使用,得到的是两个表的乘积
内连接
- 使用关键字inner join,inner可以省略
- 隐式内连接
select ... from A,B where 条件
- 显式内连接:
select ... from A inner join B on 条件
外连接
- 使用关键字outer join,outer可以省略
- 左外连接
select ... from A left outer join B on 条件
- 右外连接:
select ... from A right outer join B on 条件
4 子查询
- 一条select语句结果作为另一条select语法一部分(查询条件、查询结果、表等)
更多相关文章
- mysql 同一表中.两个字段值互相复制,从一个字段值复制到另一个
- 一步一步学MySQL----9 条件数据记录查询
- MySQL 数据(字段)类型
- mysql中逗号分隔字段的更好替代方案
- 如果条件按顺序,Mysql不能使用mysql
- mysql 常用字段和占用 字节数
- hibernate(*.hbm.xml)中新添加的字段被标记为红色(找不到)的解决方法
- 保持最新的一个字段值,直到它发生变化,然后保持其最新的字段值
- 替换wordpress WP_POSTS表中post_date字段的年份(4位数)