MySQL笔记(二)查询操作
来源:互联网 发布:5230java软件下载 编辑:程序博客网 时间:2024/06/02 02:13
一 单表查询
语法:
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语法一部分(查询条件、查询结果、表等)
阅读全文
0 0
- MySQL笔记(二)查询操作
- Python操作MySQL数据库--插入、更新、查询(二)
- MySQL学习图文笔记整理(二):多表操作
- MySQL学习笔记二(索引的操作)
- MYSQL查询优化(二)
- MYSQL查询优化(二)
- MYSQL查询优化(二)
- MYSQL查询优化(二)
- MySQL慢查询(二)
- MySQL笔记 二 数据类型与操作数据表
- mysql笔记(二)
- MySQL笔记(二)
- Mysql 笔记(二)
- (笔记)数据库查询操作
- MySQL笔记(查询优化)
- MYSQL基本操作(二)
- Mysql基本操作(二)
- MySQL数据库操作(二)
- 第一天的学习及笔记
- 深入理解SerDes之一
- Eclipse中反编译的插件安装教程
- c++ 进程池
- 动画与贝塞尔曲线
- MySQL笔记(二)查询操作
- dd命令中dsync和fsync区别
- Android7.0调用系统相机拍照、访问相册问题。
- keyMap for android studio in mac
- 网站使用第三方Steam帐号登录[OpenID]
- C#图片处理示例(裁剪,缩放,清晰度,水印)
- Nutch2.3.1使用ant eclipse 编译源代码报错ValidatorException: PKIX path building failed: sun.security.provider.
- JS判断input表单是否为空
- “新媒体”和“社群”调查报告