导图社区 数据库原理与应用思维导图
数据库原理及应用思维导图,能清晰的帮助我们进行数据的梳理分析,找出问题的关键,得到解决的办法,是非常的实用,赶快收藏吧。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
数据库原理及应用
数据模型与数据库系统结构
数据和数据模型
数据(数据模型三要素)
静态特征
基本结构
数据间的联系
数据取值范围的约束
动态特征
可进行的操作(增删改查)
操作规则
信息
数据库系统结构
关系数据库
关系数据模型的组成
关系数据结构
关系操作
传统的关系运算
专门的关系运算
有关的数据操作
数据完整性约束
相容性
正确性
基本术语
关系、属性、值域、元组、分量
关系模式、关系数据库
候选键
candidate key
主键
primary key
主属性和非主属性
关系模型的形式化定义
完整性约束
实体完整性
保证关系中每个元祖都是可识别的和唯一的
关系数据库中所有的表必须有主键
表中不允许有存在无主键值得记录
表中不允许有存在主键值相同的记录
参照完整性
描述实体之间的联系
多个实体或表之间的关联关系
用户自定义完整性
不同的数据库应用系统根据应用环境的不同运用的一些特殊的约束条件
not null
unique
check
· · · · · ·
关系代数
传统的集合运算
并(∪)
交(∩)
差( - )
广义笛卡儿积(×)
选择(从行的角度挑记录)
投影(从列的角度挑字段)
连接
除
索引和视图
索引
创建索引是为了加快数据的查询速度
索引中临近的记录在主文件中也是临近存储的
概念
定义在存储表上的一种辅助存储结构
存在与否不改变存储表的物理存储结构
有索引是更新操作必须同步更新索引文件和主文件
索引的存储结构及分类
聚集索引
一般情况下,为主码建聚集索引
非聚集索引
索引的创建和删除
创建索引
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED] INDEX 索引名 ON 表名 (列名 [...n])
CLUSTERED表示创建的索引是聚集索引
NONCLUSTERED表示创建的索引是非聚集索引
unique表示创建的索引是唯一索引
删除索引
DROP INDEX <表名>.<索引名>
视图
定义视图
create view <视图名> [ 列名(...n)] as select语句
通过视图查询数据
通过视图查询数据和通过基本表查询数据一样
视图的修改和删除
修改视图
alter view 视图名 [(列名 [...n])] as 查询语句
删除视图
drop view<视图名>
视图的作用
简化数据查询语句
使用户能从多角度看待同一数据
提高了数据的安全性
提供了一定程度的逻辑独立性
事务和并发控制
事务
ACID
1.原子性(事务是最小的工作单元,不可再分)
2.一致性(事务必须保证多条DML语句同时成功或者同时失败)
3.隔离性(事物的执行不能别其他事务干扰)
4.持久性(事物一旦提交,则其对数据库中数据的改变是永久性的)
事务处理模型
ISO事务处理模型
T-SQL事务处理模型
并发控制
SQL
基础语法
SQL语句不区分大小写
关键字(keyword):每条SQL语句都是由一个或多个关键字构成。注意:关键字不能作为表或者列名。
SQL语句以分号结尾(非必须)
注释(-- # /* */)
表的创建
【创建数据库】 CREATE database <数据库名>
【创建表】 CREATE table <表名> (列的设置)
常用数据类型
char 定长字符串
varchar 可变长度字符串
integer 整数
date 日期
常用约束
not null 非空约束
default 默认值约束
primary key 主键约束
……
表的删除和更新
【删除表】drop table <表名>
【添加列】alter table <表名> add column <列名>
【删除列】alter table <表名> drop column<列名>
【插入数据】insert into <表名>values(数据1,数据2,........)
查询
select 语句基础
【列的查询】select <列名> from <表名>
【查询表中所有列】select * from <表名>
【设定别名】AS
【从结果中删除重复行】DISTINCT
【where条件查询】select <列名>from <表名>where <条件>
where中不能使用聚合函数
运算符
聚合与排序
聚合查询
count 计数
avg求平均
sum 求和
max/min 求最值
对表分组
group by
为聚合函数指定条件
having 写在group by子句中,用来指定分组条件
对查询结果排序
order by
ASC 升序,DESC降序
数据更新
insert 插入
基本语法 insert into <表名> (列1,列2,......) values(值1,值2,........)
从其他表复制数据 insert into <表名1>(<列名>)select 语句 from <表名2>
delete 删除
删除表中所有数据 delete from <表名>
删除指定行数据 delete from <表名>where<条件>
update 更新
update<表名>set<列1>=<表达式1>,........where <条件>
复杂查询
带in的子查询
相关子查询:内层查询需要外层查询的某些参量作为限定条件
非相关子查询:内层查询独立进行,没有涉及任何外层查询相关信息
带some或all的子查询
带比较运算符的子查询
带exists谓词的子查询
表连接
join根据两个或者多个表的字段之间的联系,将表连接起来,形成一个信息更为全面的表
inner join(内连接)只保留两张表同时存在的记录
left join(左连接)保留左表所有的记录,无论其是否在右表匹配到对应的记录
若无法匹配记录,则需要用null来填补
注意:on条件必须写在where子句的前面,可以join多张表
right join (右连接)保留左表所有的记录,无论其是否在右表匹配到对应的记录
full join(全连接)左表和右表的所有记录同时保留
存储过程和触发器
存储过程
变量
变量的种类
局部变量(以“@”开始的变量)
全局变量(以“@@”开始的变量)
变量的声明与赋值
局部变量必须先声明,再使用
声明变量的语句:DECLARE @局部变量 [as] 数据类型 [,....n]
变量的赋值语句格式:SET @局部变量名 = 值|表达式
流程控制语句
触发器