一、查询SQL
1. 基本查询格式
SELECT [DISITINCT] 所查内容
FROM 所查表 //(可多个)
WHERE 查询条件
2. 常用条件
1.BETWEEN … AND …
2.IN (NOT IN) //确定集合用
3.LIKE 模糊查询 //①%表任意长度②_表单个字符③若想查询_,在前边加一个|
4.AND
5.OR
6.NOT
7.IS NULL(IS NOT NULL)
3. 聚集函数
1.COUNT(*) //统计元祖有多少个
2.COUNT([DISTINCT] A) //计算A有多少个值
3.SUM([DISTINCT] A) //A属性所有元素加在一起
4.ARG([DISTINCT] A) //A属性所有元素求平均值
5.MAX([DISTINCT] A) //A属性所有元素求最大值
6.MIN([DISTINCT] A) //A属性所有元素求最小值
4. 查询完整格式
SELECT [DISTINCT] 所查内容
FROM 所查的表//(可多个)
WHERE 所查条件或连接或嵌套 //不可与嵌套函数一起用
GROUP BY 属性 //对属性相同的分组
HAVING 条件 //对上一步得到的分组筛选,可与嵌套函数一起用
ORDER BY DESC //对查询结果排序(降序)
5. 连接查询
(1)所查信息不在一个表
(2)自然连接:按属性相同的连接
(3)自身连接:自己与自己作笛卡尔乘积,再按条件选择
6. 嵌套结构
分为:相关子查询、不相关子查询
1.IN
2.比较运算符
3.ANY
3.ALL
5.EXISTS(NOT EXISTS)
7. 集合查询
1.INTERSECT //交
2.UNION //并
3.EXCEPT //差
8. 插入数据
①插入元组
INSERT
INTO 表名(属性1,属性2……)
VALUES ('值1',‘值2’,……)
②插入子查询结果
INSERT
INTO 表名(属性1,属性2……)
子查询
9. 修改数据
UPDATE 表名
SET 属性=修改的值
WHERE 条件
10. 删除数据
DELETE
FROM 表名
WHERE 条件
二、视图
1.创建视图
CREATE VIEW 视图名(属性1,属性2,……)
AS 查询语句
WITH CHECK OPTION
2.删除视图
DROP VIEW 视图名
有视图
查询、更新和表基本类似
三、完整性与安全性
1. 概念
(1)候选键:一个或一组性能唯一地识别一个元组,而其子集不能
(2)主码:若有多个候选码,可选一个为主码
(3)外键:一个表中有一个(多个)属性不是自身的主码,并且和另一个表中的属性是同一属性
2. 完整性
实体完整性:主码不能重复,不能为空
参照完整性:外码不能为空,且等于参照表的主码的值
用户定义完整性:约束条件
3. 数据类型
CHAR(N) //定长
VARCHAR(N) //变长
INT //长整型(4字节)
SMALL INT //短整型(2字节)
4.结构
定义主键
PRIMARY KEY (属性1,属性2,……)
定义外键
FOREIGN KEY 外键 REFERENCE
级联删除/更新
ON DELETE/UPDATE CASADE
拒绝删除/更新
ON DELETE/UPDATE NO ACTION
四、范式
(1)1NF :关系中的每个属性都是原子的,不可再分的。每个关系都要满足1NF
(2)2NF:满足1NF,且这张表的属性对主键的部分函数依赖不存在
解决方法:一张表只管一件事
(3)3NF:满足2NF,且不存在属性对主键的属性依赖
(4)BCNF