《数据库原理及应用教程(第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语句语义层的执行顺序:

  1. from
  2. where
  3. group by
  4. having
  5. select
  6. 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博客

作者的话

  • 感谢参考资料的作者/博主
  • 作者:夜悊
  • 版权所有,转载请注明出处,谢谢~
  • 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
  • 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
  • 文章在认识上有错误的地方, 敬请批评指正
  • 望读者们都能有所收获

你可能感兴趣的:(数据库,数据库,数据库架构,数据库开发,sql,后端)