目录
数据类型
数值型
日期型
串型
- 字符串型
- 二进制串类型
- 枚举型
- 集合型
创建关系模式
声明主键
声明外键
声明用户定义完整性约束
MySQL只解析CHECK,但存储引擎并不处理??
删除关系
修改关系模式
3.2 数据更新
-
直接插入元组
语法:INSERTINTO关系名[(属性名1,…,属性名n)]VALUES(表达式1,…,表达式n);
-
更新操作
-
删除操作
-
数据完整性检查
-
参照完整性检查
-
插入查询结果
SQL数据查询
- 投影查询
- 选择查询
- 集合操作
求两个查询语句结果的并、交、差。
- 若使用关键词ALL,则不去重
聚集查询
- 聚集函数不能出现在WHERE子句中
- 类比记忆:关系代数里的选择不能嵌套
分组查询
- 分组查询语句中不能包含分组属性及聚集函数表达式以外的其他表达式
where和having的作用不一样,where作用于全部的元组,having只作用于每个分组,无法在having里面表示grade >= 85。
- WHERE、GROUPBY和HAVING的执行顺序
- 1.按照WHERE子句给出的条件,从关系中选出满足条件的元组
- 2.按照GROUPBY子句指定的分组属性,对元组进行分组
- 3.按照HAVING子句给出的条件,对分组进行筛选
连接
内连接
- R join S on (…) join T on (…)
- 当内连接是等值连接,且连接属性名同名,可用USING
自然连接
Natural Join
自连接
用AS重命名
外连接
嵌套查询
写法1
- 在集合判断条件中使用子查询:使用 [NOT] IN
写法3
- 在存在性测试条件中使用子查询,判断子查询结果是否(不)为空
- 使用 [NOT] exists,exists (subquery) 的结果为真,当且仅当 子查询结果不空
- 用EXISTS实现全称量词∀功能