《数据库原理及应用教程(第4版 | 微课版)》第3章:“关系数据库标准语言——SQL”和第7章:“SQL Server 2012高级应用”的学习提纲
文章目录
- 前言
- 3.1 SQL的基本概念与特点
- 3.2 SQL Server 2012简介——略
- 3.3 数据库的创建和使用
- 3.4 数据表的创建和使用
- 3.5 单关系(表)的数据查询
- 3.6 多关系(表)的连接查询
- 3.7 子查询
- 3.8 其他类型查询
- 3.9 数据表中数据的操纵
- 3.10 视图
- 3.11 创建与使用索引
- SQL功能的总结
- 7.1 Transact-SQL程序设计——略
- 7.2 存储过程
- 7.3 触发器
- 7.4 备份和还原
- 总结
- 参考资料
- 作者的话
前言
《数据库原理及应用教程(第4版 | 微课版)》第3章:“关系数据库标准语言——SQL”和第7章:“SQL Server 2012高级应用”的学习提纲。
3.1 SQL的基本概念与特点
概念:
- 内模式——存储文件
- 模式——基本表
- 外模式——视图
特点:
- 类似自然语言:如英语
- 一体化的:功能集中
- 非过程化的:用户只关心“做什么”,无需关心“怎么做”
- 面向集合的:操作对象是关系,结果是关系
- 自含式的:可单独使用交互命令
- 嵌入式的:嵌入高级语言中使用
- 有数据查询、数据定义、数据操纵和数据控制功能
3.2 SQL Server 2012简介——略
3.3 数据库的创建和使用
数据库的文件:
- 数据文件:主数据文件,次数据文件
- 日志文件
一个数据库至少有一个数据文件和一个日志文件。
一个数据库只有一个主数据文件,可有多个次数据文件。
数据库的文件组:主要文件组,次要文件组
数据文件有文件组,日志文件无文件组。
一个数据文件只能在一个文件组,一个文件组只能被一个数据库使用。
SQL语句:
- 增加数据库:create database
- 删除数据库:drop database
- 修改数据库:alter database
数据库迁移的方式:
- 分离和加载
- 生成脚本:常用
3.4 数据表的创建和使用
数据定义:使用数据定义语言(DDL)。
数据类型:
- 整数型:如int
- 数值型:如numeric
- 货币型:如money
- 日期型:如datetime
- 字符型:如char
“var”表示“变长的”,“n”表示“Unicode字符(ASCII字符)”:
char:定长的,非Unicode字符(ASCII字符)(1个字符1字节)
varchar:变长的,非Unicode字符(ASCII字符)(1个字符1字节)
nchar:定长的,Unicode字符(1个字符2字节)
nvarchar:变长的,Unicode字符(1个字符2字节)
若字符串有非ASCII字符(如中文),则使用nchar或nvarchar。
- 二进制数据型:如binary
- 特殊类型:如timestamp
数据完整性的机制:
- 约束
- 默认
- 规则
- 触发器
- 存储过程
约束的类型1:
- 列约束:约束1列
- 表约束:约束多列
约束的类型2:
- 空值约束:只用于列约束
- 主键约束
- 唯一约束
注意:主键约束和唯一约束不同
- 外键约束
- 检查约束
SQL语句:
- 增加数据表:create table
- 删除数据表:drop table
- 修改数据表:alter table
3.5 单关系(表)的数据查询
无条件查询:
select
from
条件查询:
select
from
where
常用的库函数:
- AVG()
- SUM()
- MAX()
- MIN()
- COUNT()
分组查询:
select
from
where
group by
having
排序查询:
select
from
where
group by
having
order by
select语句语义层的执行顺序:
- from
- where
- group by
- having
- select
- order by
详细内容参见:参考资料
3.6 多关系(表)的连接查询
连接的方法:
- from子句指明连接的表名,where子句指明连接的列名和连接条件:常用
- join子句指明连接的表名,on子句指明连接的列名和连接条件
join子句指明连接的表名,on子句指明连接的列名和连接条件的方法:
- 内连接:inner join:输出符合条件的结果
- 左(外)连接:left (outer) join:输出符合条件的结果和左边表不符合条件的结果
- 右(外)连接:right (outer) join:输出符合条件的结果和右边表不符合条件的结果
- 全(外)连接):full (outer) join:输出符合条件的结果、左边表不符合条件的结果和右边表不符合条件的结果
- 交叉连接:cross join:类似广义笛卡尔积
另外,还有一种自连接查询。
3.7 子查询
类型:
- 普通子查询:先执行子查询,后执行父查询
- 相关子查询:对父查询的每一行,执行子查询判断是否满足条件
3.8 其他类型查询
类型:
- 集合运算查询:如union
- 存储结果集到表:如select into
3.9 数据表中数据的操纵
数据操纵:使用数据操纵语言(DML)。
SQL语句:
- 增加数据:insert into … values
- 删除数据:delete from
- 修改数据:update … set
3.10 视图
SQL语句:
- 增加视图:create view
- 删除视图:drop view
- 修改视图:alter view
- 增加数据:insert into … values
- 删除数据:delete from
- 修改数据:update … set
- 查询数据:select
3.11 创建与使用索引
索引的类型:
- 聚集索引
- 非聚集索引
- 唯一索引
- 视图索引
- 全文索引
- XML索引
SQL语句:
- 增加索引:create
- 删除索引:drop
- 修改索引:alter
SQL功能的总结
- 数据定义(DDL):create,drop,alter
- 数据操纵(DML):insert,delete,update
- 数据查询(DQL):select
- 数据控制(DCL):grant,revoke
7.1 Transact-SQL程序设计——略
7.2 存储过程
概念:依据时序/流程,封装多条SQL语句后方便一次调用/执行。类似函数
优点:
- 模块化的程序设计
- 高效率地执行
- 减少网络流量
- 可以作为安全机制使用
类型:
- 系统存储过程
- 用户自定义存储过程:常用
- 扩展存储过程
SQL语句:
- 创建存储过程:create procedure
- 删除存储过程:drop procedure
- 修改存储过程:alter procedure
- 执行存储过程:exec procedure
7.3 触发器
概念:依据时序/流程,封装多条SQL语句后方便一次调用/执行。类似回调函数
本质:特殊的存储过程
类型:
- 登录触发器
- DDL触发器
- DML触发器:instead of触发器(语句执行前触发),after触发器(语句执行后触发)
SQL语句:
- 增加触发器:create trigger
- 删除触发器:drop trigger
- 修改触发器:alter trigger
7.4 备份和还原
备份的类型:
- 数据库完整备份
- 数据库差异备份:还必须用数据库完整备份
- 事务日志备份:还必须用数据库完整备份
- 文件及文件组备份:还必须用事务日志备份
备份并还原的方式:
- 数据库完整备份——简单还原
- 数据库完整备份 + 数据库差异备份——简单还原
- 数据库完整备份 + 数据库差异备份 + 事务日志备份——完全还原,批日志还原(性能更好)
- 文件及文件组备份 + 事务日志备份
数据库完整备份:还原完整数据
数据库差异备份:还原差异数据
事务日志备份:还原到失败点
失败前处于运行状态事务的备份:还原到失败时刻
总结
《数据库原理及应用教程(第4版 | 微课版)》第3章:“关系数据库标准语言——SQL”和第7章:“SQL Server 2012高级应用”的学习提纲。
参考资料
- 《数据库原理及应用教程(第4版 | 微课版)》主编:陈志泊;副主编:许福,韩慧;编著:崔晓晖,路贺俊,阮豫红
- SQL Select语句完整的执行顺序_20120623的博客-CSDN博客
作者的话
- 感谢参考资料的作者/博主
- 作者:夜悊
- 版权所有,转载请注明出处,谢谢~
- 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
- 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
- 文章在认识上有错误的地方, 敬请批评指正
- 望读者们都能有所收获