一 单表查询

语法:

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语法一部分(查询条件、查询结果、表等)

更多相关文章

  1. mysql 同一表中.两个字段值互相复制,从一个字段值复制到另一个
  2. 一步一步学MySQL----9 条件数据记录查询
  3. MySQL 数据(字段)类型
  4. mysql中逗号分隔字段的更好替代方案
  5. 如果条件按顺序,Mysql不能使用mysql
  6. mysql 常用字段和占用 字节数
  7. hibernate(*.hbm.xml)中新添加的字段被标记为红色(找不到)的解决方法
  8. 保持最新的一个字段值,直到它发生变化,然后保持其最新的字段值
  9. 替换wordpress WP_POSTS表中post_date字段的年份(4位数)

随机推荐

  1. android收货地址整理
  2. Android7.0中文文档(API) -- ActionMenuVie
  3. Android UI自动化测试最佳实
  4. android 实现透明按钮
  5. Android使用WebView来显示天气预报
  6. Android(安卓)PowerManagerService分析
  7. Android 弹出窗口 PopupWindow
  8. Edittext 设置
  9. layout_alignParentBottom失效
  10. 各种Layout用到的一些重要的属性