(数据库系统)第三章 结构化查询语言

数据类型

数值型

在这里插入图片描述

日期型

在这里插入图片描述

串型

  1. 字符串型
    在这里插入图片描述
  2. 二进制串类型
    在这里插入图片描述
  3. 枚举型
    在这里插入图片描述
  4. 集合型
    在这里插入图片描述

创建关系模式

声明主键

声明外键

声明用户定义完整性约束

MySQL只解析CHECK,但存储引擎并不处理??
在这里插入图片描述

删除关系

在这里插入图片描述

修改关系模式

在这里插入图片描述

3.2 数据更新

  1. 直接插入元组
    语法:INSERTINTO关系名[(属性名1,…,属性名n)]VALUES(表达式1,…,表达式n);
    在这里插入图片描述

  2. 更新操作

  3. 删除操作

  4. 数据完整性检查
    在这里插入图片描述

  5. 参照完整性检查

  6. 插入查询结果
    在这里插入图片描述

SQL数据查询

  1. 投影查询
    在这里插入图片描述
  2. 选择查询
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 集合操作
    求两个查询语句结果的并、交、差。
  • 若使用关键词ALL,则不去重

聚集查询

  1. 聚集函数不能出现在WHERE子句中
  • 类比记忆:关系代数里的选择不能嵌套
    在这里插入图片描述

在这里插入图片描述

分组查询

  1. 分组查询语句中不能包含分组属性及聚集函数表达式以外的其他表达式

在这里插入图片描述
where和having的作用不一样,where作用于全部的元组,having只作用于每个分组,无法在having里面表示grade >= 85。

  1. WHERE、GROUPBY和HAVING的执行顺序
  • 1.按照WHERE子句给出的条件,从关系中选出满足条件的元组
  • 2.按照GROUPBY子句指定的分组属性,对元组进行分组
  • 3.按照HAVING子句给出的条件,对分组进行筛选

连接

内连接

  1. R join S on (…) join T on (…)
  2. 当内连接是等值连接,且连接属性名同名,可用USING

自然连接

Natural Join

自连接

用AS重命名

外连接

1.

嵌套查询

写法1

  1. 在集合判断条件中使用子查询:使用 [NOT] IN

写法3

  1. 在存在性测试条件中使用子查询,判断子查询结果是否(不)为空
  2. 使用 [NOT] exists,exists (subquery) 的结果为真,当且仅当 子查询结果不空
  3. 用EXISTS实现全称量词∀功能

定义视图

发布了109 篇原创文章 · 获赞 128 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/104624989