一、数据库设计的必要性
二、什么是数据库设计
三、数据库设计的重要
四、数据模型
实体-关系(E-R)数据模型
实体(Entity)
属性(Attribute)
关系(Relationship)
五、数据库设计步骤
1、 需求分析阶段
2、 概要设计阶段
3、 详细设计阶段
六、数据库设计规范化
数据库设计中经常出现的问题
规范设计
规范化和性能关系
Go批处理语句
使用、切换数据库
创建、删除数据库
基本数据类型
精确数字类型
近似数字类型
日期时间类型
字符串类型
Unicode字符串类型
二进制字符串类型
判断表或其他对象及列是否存在
创建、删除表
给表添加字段、修改字段、删除字段
添加、删除约束
插入数据
查询、修改、删除数据
备份数据、表
利用存储过程查询表信息
变量
1、 局部变量(Local Variable)
2、 全局变量(Global Variable
输出语句
逻辑控制语句
1、 if-else判断语句
2、 while…continue…break循环语句
3、 case
4、 其他语句
基本常用查询
嵌套子查询
# from (select … table)示例
# in, not in子句查询示例
# exists和not exists子句查询示例
# some、any、all子句查询示例
聚合查询
1、 distinct去掉重复数据
2、 compute和compute by汇总查询
3、 cube汇总
排序函数
# row_number函数
# rank函数函数
# dense_rank函数
# partition by分组子句
# ntile平均排序函数
集合运算
1、 union和union all进行并集运算
2、 intersect进行交集运算
3、 except进行减集运算
公式表表达式
连接查询
1、 简化连接查询
2、 left join左连接
3、 right join右连接
4、 inner join内连接
5、 cross join交叉连接
6、 自连接(同一张表进行连接查询)
函数
1、 聚合函数
2、 日期时间函数
3、 数学函数
4、 元数据
5、 字符串函数
6、 安全函数
7、 系统函数
8、 配置函数
9、 系统统计函数
10、 用户自定义函数
索引
1、 什么是索引
2、 索引分类
3、 创建索引
4、 适合的创建索引的列
5、 不适合创建索引的列
视图
1、 什么是视图
2、 创建视图准则
3、 创建视图
4、 修改视图
5、 加密视图
存储过程的概念
1、 存储过程的优点
A、 存储过程允许标准组件式编程
B、 存储过程能够实现较快的执行速度
C、 存储过程减轻网络流量
D、 存储过程可被作为一种安全机制来充分利用
系统存储过程
用户自定义存储过程
1、 创建语法
2、 创建不带参数存储过程
3、 修改存储过程
4、 带参存储过程
5、 带通配符参数存储过程
6、 带输出参数存储过程
7、 不缓存存储过程
8、 加密存储过程
9、 带游标参数存储过程
10、 分页存储过程
Raiserror
事务
1、 事务的特点
原子性
一致性
隔离性
持久性
2、 事务的模式
a、 显示事务
b、 自动提交事务
c、 隐式事务
3、 事务处理
a、 begin transaction语句
b、 commit transaction语句
c、 rollback transaction语句
4、 事务的示例
异常
# 示例:用异常处理错误信息
# 示例:异常能处理的错误信息
# 示例:无法提交的事务
# 示例:处理异常日志信息
游标
1、游标实际功能
2、游标的基本操作
A、 定义游标
B、 打开游标
C、 检索游标
D、 关闭游标
E、 删除游标
3、游标操作示例
什么是触发器
DML触发器分为:
1、 after触发器(之后触发)
a、 insert触发器
b、 update触发器
c、 delete触发器
2、 instead of 触发器 (之前触发)
创建触发器
# 创建insert类型触发器
# 创建delete类型触发器
# 创建update类型触发器
# update更新列级触发器
# instead of类型触发器
# 创建instead of触发器
# 显示自定义消息raiserror
# 修改触发器
# 启用、禁用触发器
# 查询创建的触发器信息
# 示例,验证插入数据
# 示例,操作日志