数据库期末考试复习

 

[TOC]

数据库收拾:

graph LR
A[数据库]-->B[CH2:概念模型_ER]
B-->C[基本]
B-->D[扩展]
A-->E[CH3:关系数据模型]
E-->F[数据模型]
E-->G[基本概念]
E-->H[集合关系运算]
E-->I[完整性约束]
A-->J[CH4:E-R到关系模型的转换]
J-->K[基本 E-R 模型的转换]
J-->L[扩展的 E-R 模型的转换]
A-->M[CH5:SQL]

根据老师的PPT收拾,谢谢黄先生,特别多谢AlvinZH的收拾,本收拾的有个别剧情由AlvinZH辉哥的整治扩大而来,配套教材《数据库系统概论(第五版卡塔尔》(王珊编慕与著述卡塔 尔(英语:State of Qatar),全数SQL相关内容均选拔SQL
Server现行反革命标准,尚破损,有空会重新制版o(╥﹏╥)o应接指正!

ER模型

  • 实体
  • 质量(实体的习性卡塔尔国
  • 域(属性的取值范围卡塔尔
  • 候选码(唯风流倜傥标志实体的习性或纤维属性组)必得选一个做主码

引入

基本E-R模型

数码、数据库、数据库管理种类、数据库系统

数据:

陈说事务的号子记录,有数据类型和多少的值,需求有语义来疏解,数据操作首要有数量处理(数据库卡塔尔、数据管理(程序卡塔 尔(英语:State of Qatar)、数据传输(互连网卡塔 尔(英语:State of Qatar)

元数据(格局卡塔 尔(英语:State of Qatar),大致不改变,在设定期定义

多少是数据库的实例,平常转移

数据库DB:

深切累积在微电脑内、有组织、可分享的汪洋数据的聚合。数据根据一定的数据模型组织、描述和仓库储存,具备非常小的冗余度、较高的多寡独立性、易扩张性

安全、方便、高效

数据库处理种类DBMS:

Computer的底子软件

数据库系统DBS:

由数据库、数据库管理系列、应用程序、数据库管理员组成的仓库储存、管理、管理和尊敬数据的系列。

 www.463.com 1

 

扩展E-R模型

  • 在座限定
    • 实体参与联系的一丝一毫最大次数
    • 全参预限定:实体集的每三个成分都列席联系
  • 弱实体
    • 强实体和弱实体必需生机勃勃对多
    • 弱实体必得全参加
  • 类层次ISA(泛化)
  • 聚合
    • 联络描述的是实体与实业之间的关联
    • 假设联系参预联系
    • 把联系看作关联和实业的三结合
    • 联络和实业的构成作为二个实体就称为聚合

数码处理本领进步

人工管理阶段

数码还未直接存取设备,存在纸带上;

应用程序管理数据;

多少不分享,不富有独立性(数据变动后应用程序也亟须改变卡塔尔;

文件系统阶段

数量存在文件里,数据足以短时间保存;

利用操作系统的IO接口访问数据;

文件系统管理数据;

有加速数据访问的办法;

初级的数码独立性;

数码分享性差,冗余度大;

各种应用须求程序猿从头开头设计自身的文件格式和陈述;

www.463.com 2

 

数据库系统阶段

驷不如舌优势:

多中国少年共产党享;

数码冗余少;

数码独立性好;

方便的程序接口;

立时数据访问;

数据完整性和数目安全;

并发管理

 

特点:

1.数目结构化,整体数量结构化,是数据库的首要特征之意气风发,也是和文件系统的本质分化

2.多中国少年共产党享度高、冗余度低且易扩大,数据分享能够减量冗余,制止数据里面包车型大巴不生龙活虎致性和不相容性

3.数码独立性高,物理独立性指应用程序和数据库中多少的物理存款和储蓄相互独立,逻辑独立性指应用程序和数据库的逻辑结构相互独立,逻辑结构修正时应用程序能够不改变

4.数目由数据库管理类别集合保管和决定,有数量安全性吝惜,数据完整性检查

 

隔开分离并发访谈,阻止发生脏数据的改造

 

数据库结构受底层Computer种类的熏陶

 

关周全据模型

数据模型

数据模型:对具体世界数据特征的画饼充饥。是数据库系统的着力和底蕴。数据模型七个结合要素:数据结构(最注重的方面卡塔 尔(阿拉伯语:قطر‎、数据操作、数据的完整性约束原则。

三层抽象(由表及里卡塔尔

概念模型:用于数据库设计,最盛行的是E-奥迪Q5模型。(P16-17基本概念:实体、属性、码、实体类型、实体集、联系卡塔尔国;

逻辑模型:用于数据库管理种类的兑现;档案的次序模型(最先出现的数据模型卡塔尔国、网状模型、关系模型等;

大意模型:对数码最底部的肤浅,描述数据表示形式和存取方法。

 

科学普及数据模型:

档次模型

网状模型

论及模型

面向对象数据模型

目的关周详据模型

半结构化数据模型

 

等级次序模型和网状模型统称为格式化模型

中央档案的次序联系是指五个记录以至她们之间的黄金年代对多(包含一对生机勃勃卡塔 尔(阿拉伯语:قطر‎的关系

 

等级次序模型:

动用树形结构

数据库中定义满意条件的中坚档案的次序联系的会面:

1.有且独有贰个结点未有家长结点,那个结点称为根结点;

2.根以外的其他结点有且独有多少个老人结点。

剔除双亲结点会把子结点同一时间删除

优点:

1.数据结构简单清晰

2.查询功用高(优于关周详据库,超级大于网状数据库卡塔尔

3.提供了优越的完整性协理

缺点:

1.切实可行中众多牵连是非档案的次序性的,不适用

2.对插入和删除节制非常多,应用程序编写较为复杂

3.询问子女结点必需经过家长结点

4.结构严密,档案的次序命令趋于程序化

崛起亮点是大器晚成对多等级次序联系的单位描述自然直观

 

网状模型

数据库中定义满意条件的主导档案的次序联系的聚众:

1.同意五个以上的结点无大人;

2.二个结点能够有多于七个的老人家。

优点:

1.更是直白地描述现实世界

2.存取频率高

缺点:

1.结构复杂,不平价顾客通晓

2.DDL、DML复杂,要放松权利豆蔻梢头种尖端语言,客商不轻易调控,不便于接收

3.拜谒数据时必须适度接纳路线,顾客必得询问系统结构的内部原因,加重担当

 

涉及模型

优点:

1.起家在严刻的数学概念的根底上

2.概念单生机勃勃,数据结构简单清晰,易于使用

3.存取路线对客商透明,有越来越高的多寡独立性,更加好的安全保密性

数据模型

ER模型

实体(Entity):客观存在并可相互区分的事物

属性(Attribute):实体所具有的某一特征称为属性

键(Key):唯大器晚成标记实体的习性集

实体型(entity type):用实体名及其天性名群集来抽象和描绘同类实体

实体集(entity set):同风度翩翩类型实体的集纳

事关(relationship):分歧实体集间接的牵连,有特别,大器晚成对多,多对多的种类

 

游刃有余关系要转变来三个二元关系

 www.463.com 3

 

体系关系的箭头:

 www.463.com 4

 

角色:

假定多元关系中一个实体集被用到了五次,能够经过剧中人物来分别,如下:

 www.463.com 5

 

一元关系的大器晚成对生龙活虎:

 www.463.com 6

 

多对一:

 www.463.com 7

 

多对多:

 www.463.com 8

 

数据模型三要素:

  • 数据结构
    • 所钻探对象类型的集合
  • 数量操作
    • 检索、更新
  • 数据约束原则
    • 完整性准则的汇聚

ER模型(续)

关全面据库发展

模型划分

  1. 网状、等级次序发展模型
  2. 关周详据库
  3. 面向对象数据模型为特征

付加物分割

  1. 对关乎模型的援救
  2. 运转条件
  3. RubiconDBMS系统组成
  4. 对运用的扶助

约束:

始终为真正断言

常用约束:键(唯大器晚成标志卡塔 尔(阿拉伯语:قطر‎、单值节制(四个实体只好有四个某类的习性卡塔 尔(英语:State of Qatar)、参照完整性约束(援用的数据库中须求存在对应的规规矩矩卡塔 尔(英语:State of Qatar)、域节制(约束有个别属性的值的限定卡塔 尔(阿拉伯语:قطر‎

 

一流键是意气风发组叁个或四个天性组成的唯后生可畏分明三个实体的键

候选键是一丝一毫(未有其真子集能够满意唯黄金年代标志卡塔尔的拔尖键,候选键的二个被选作主键(primary
key卡塔 尔(英语:State of Qatar),主键供给not null

在E福特Explorer图中用下划线注明

 

还没有主键的实业集叫弱实体集,必得依赖于强实体集存在,供给和强实体集构成都部队分多的涉及(弱实体集为多卡塔 尔(阿拉伯语:قطر‎,有鉴定识别器(部分键卡塔 尔(阿拉伯语:قطر‎

 www.463.com 9

E-Tiggo模型设计基准:1.制止冗余;2.限量使用弱实体集;3.能看做品质的尽心作为质量。

属性原则:属性不能够再具有须求描述的习性and属性无法与其他实体具备联系

 

假使一个实体唯有壹天品质,那那个实体能够行使品质替代

 

用尽了全力不用弱实体集,使用弱实体集平常的由来是尚未能够成立唯风流浪漫ID的全局权限(全数的弱实体集的性能否再一次,举个例子在世界上全体的足球队中装置特殊的球员号码卡塔 尔(阿拉伯语:قطر‎。

 

基本概念

  • 基本概念
    • 域(类型相仿成分会集卡塔尔国
    • 笛卡儿积(
      × )
    • 元组:大器晚成组成分
    • 重量:元组中的叁个值
    • 基数:成分个数
  • 关系: D1XD2X…Dn的子集叫做在域D1, D2, …, Dn上的关系
    • 表示为R(D1, D2, …, Dn)
    • 涉及的目或度:n
    • 单元关系: n=1
    • 二元关系: n=2
    • 提到是一个二维表(子集卡塔尔
  • 候选码:能够唯大器晚成标志多少个元组的纤维属性组
  • 主码:内定叁个候选码作为主码
  • 主属性:候选码中的属性
  • 非码属性:不包涵在其余候选码中的属性
  • 波及的属性
    • 不等的列能够出自同四个域
  • 涉及情势:关系的陈诉
    • 情势化表示:凯雷德(U, D, dom, F),简记为Tiguan(U)或哈弗 (A1, A2, …, An)
    • 论及方式是型,关系是值

关联模型

最重大的数据模型

 

ETiggo模型和关联模型对照:

EQX56模型有相当多定义,实体、属性、关系等,关系模型独有二个概念:关系

EXC90模型不切合Computer实现,关系模型相符高效操作Computer

论及实例:

www.463.com 10

 

每种属性的同意的值称为域(domain卡塔尔国

 

汇集关系运算

形式和实例

格局(schema卡塔 尔(英语:State of Qatar):型的陈说,不涉及具体的值;

实例(instance卡塔尔:形式的三个绘声绘色的值。

 

论及格局:关系的描述,索罗德(U,D,DOM,F卡塔尔

智跑为涉嫌名,U为组合该关系的属性名会集,D为U中质量来自的域,DOM为属性向域的影像群集,F为属性间数据的信任性关系集合

 

涉及形式是型,关系是值

一个关乎的格局:一个涉嫌名,若干部家属性名

叁个数据库的形式:若干个事关的情势

 

对数据的更换很频仍,而对格局的改变少之又少见,所以形式是经久不衰牢固的

 

聚拢运算

  • 广义笛Carl积:多少个分级为n和m指标关系LX570和S的广义笛卡尔积是三个n+m列的元组的会集。若普拉多有k1个元组,S有k2个元组,则广义笛Carl积有k1×k2个元组

笛Carl积

给定风姿罗曼蒂克组域D1,D2,…,Dn(它们得以有同朝气蓬勃的要素,即能够完全分歧,也足以部分或任何同样卡塔 尔(阿拉伯语:قطر‎。D1,D2,…,Dn的笛Carl积为

D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。

由定义可以看看,笛Carl积也是多少个会集。

其中:

  1. 要素中的每三个di叫做一个分占的额数(Component),来自相应的域(di∈Di卡塔 尔(阿拉伯语:قطر‎

2.
每一个要素(d1,d2,d3,…,dn卡塔尔叫做贰个n元组(n-tuple卡塔 尔(英语:State of Qatar),简单称谓元组(Tuple卡塔尔国。但元组不是di的集纳,元组的各种分量(di卡塔 尔(英语:State of Qatar)是按序排列的。如:

(1,2,3)≠(2,3,1)≠(1,3,2);

而集结中的成分是不曾排序次序的,如(1,2,3卡塔尔国=(2,3,1卡塔 尔(阿拉伯语:قطر‎=(1,3,2卡塔 尔(英语:State of Qatar)。

 

事关的数学概念:

涉及是笛Carl积的子集,具备有限的元组

关系:D1*D2*…Dn的子集就要在D1、D2…Dn上的涉及。

候选码:属性组能唯生机勃勃标记叁个元组,而其子集不可能。

主码:三个候选码,选定三个为主码

主属性:种种候选码的性质

非主属性:不分包在别的候选码中的属性

全码:全数属性是这几个涉及格局的候选码

 

特意的关联运算

  • 选料运算:在关乎纳瓦拉中选拔满足给定条件的元组,记作:σF(福睿斯)={ t | t∈A名爵 GT F (t)=真 }
  • 影子运算:是从关系传祺中选出若干部妻儿性列组成新的关联,记作: πA(Escort)={
    t[A] | tR}
  • 连续几天来运算:是从四个事关的笛Carl积中精选属性间满意一定标准的元组,称为连接
  • 连天 = 选用运算 + 迪卡尔积运算
  • 当A、B为肖似的质量组时,为本来连接
  • 象集
    • 给定关系路虎极光(X,
      Y)和S(Y,Z),个中X,Y,Z为属性组。奇骏中的Y和S中的Y能够有分化的名字,但必需取自同一个域

    • R与S除得到多少个新涉嫌P(X),P是LX570中级知识分子足下列原则的元组在X属性列上的黑影

    • 元组在X分量值x的象集Yx==包含==S在Y上投影的聚众

    • 参谋柳婼的解释

涉及的特色:

1.差异意有全数值完全相似的元组

2.涉嫌是冬辰的(元组的次第是不相干的,能够按私自顺序存款和储蓄,属性的相继也是不相干的卡塔尔国

3.同大器晚成属性名下的依次属性值必需来自同一个域,是同意气风发品种数据

4.依次属性名不能平等

5.两样的品质能够有同风流倜傥的域

6.属性的值必得是原子的,不可再分(反比如中国式报表,大表头包罗三个小表头卡塔尔国

 

换名操作

ρ(R(F), E)

  • E:关系表明式
  • F拔是E中再一次的要素名字被重命名
  • R:新关系

论及操作

关系操作:查询、插入、删除、改革(P43卡塔 尔(英语:State of Qatar)

查询:选拔、投影、连接、除、并、差、交、笛Carl积;当中筛选、投影、并、差、笛卡尔积是5种基本操作。

 

小结

论及模型(续卡塔 尔(英语:State of Qatar)E瑞虎模型到关系模型的转账

涉嫌:指现实的表

骨干处境:

1.实体集E调换来具备E的性情的涉嫌(表卡塔 尔(阿拉伯语:قطر‎

2.关联CR-V调换来具有属性的涉及(表卡塔 尔(英语:State of Qatar),做连锁的实业的键和关联奥迪Q5的质量

 

十分景况

1)风流浪漫对多、风姿浪漫对风流倜傥关联

2)弱实体集

 

5种为主关系运算
  • ∩ 连接 ÷ 那多个可由其余八个代表
  • 本来连接是可结合的
  • 关联运算的结果是关系

涉嫌的见面

1.生龙活虎对多关系足以转移为二个单独的涉嫌,也能够与“多”端的关系合併,给“多”端的关系里加三个原本的“意气风发”作为质量

2.大器晚成对生龙活虎关联得以调换为一个独立的关系,也足以与人身自由生龙活虎端的关系归总,增加一个被统风流洒脱的一端作为品质

 

弱实体集的关系:

关联包蕴弱实体集的保有属性以致其直属的强实体集的键

 www.463.com 11

 

Hosts(hostName)

Logins(loginName, hostname, time)

无需At表,At成为了Logins的风姿浪漫部分

 

完整性限制

严防数据中语义不相同等

域完整性节制(表内卡塔 尔(阿拉伯语:قطر‎:节制属性值的限量(节制是不是足以为空卡塔尔

实业完整性限制(表内卡塔尔国:分化元组的某部属性不能够平等(主键、唯意气风发键限定卡塔 尔(阿拉伯语:قطر‎

参照他事他说加以考查完整性约束(表与表卡塔 尔(英语:State of Qatar):三个表的某部属性是此外表的有个别属性(外键,这些性格需假诺被参照的表的主键或候选键卡塔 尔(英语:State of Qatar)

 

唯生龙活虎键节制:

能够唯生机勃勃区分差异的元组,允许有null值,一张表只好有二个主键不过足以有多个唯生龙活虎键

 

完整性限定

  • 实业完整性:主码中的属性不可取空值
  • 参照完整性:
    • 外码:设F是关系PRADO的一个或豆蔻梢头组属性,倘若F与关系S的主码Ks相对应,则称F为关系RAV4的外码(外键)
    • 参照关系CRUISER(F,..,…),被参照关系S。
    • F的取值必需为:
      • 抑或取空值
      • 或许等于S中有些元组的主码值
  • 参照他事他说加以侦查完整性的性状:
    • 在被参照关系中重要字的值在参照他事他说加以考察关系中不料定现身
    • 但在参照他事他说加以考查关系中现身的显要字值在被参照关系中必定要现身
    • 值得注意的是外键也许出自于生龙活虎致关系,约等于被参照关系便是仿效关系

关系代数

从数据库中搜索需求的剧情

必要选用高档查询语言:

反对:关系代数

实践:SQL

 

E-揽胜极光模型到事关模型的更改

关系代数:

对涉及的运算来表述查询。(运算:运算对象、运算符、运算结果卡塔 尔(阿拉伯语:قطر‎

运算对象(Operands)

关系

运算符(Operators)

对关系的操作

Five basic RA operations:

Basic Set Operations(集合运算卡塔尔

       union(并), difference (差)(no intersection, no complement)

Selection: s(选择)

Projection: p (投影)

Cartesian Product: X(笛Carl积卡塔尔

 

聚拢运算:

差:R1-R2 = {t|t∈R1^t∉R2}

选择:选择www.463.com 12接受Tucson中满足条件C的规行矩步

影子:π A1,…,An (兰德酷路泽),选取凯雷德中的A1…An列组成新的元组,会去除重复的元组

笛Carl积:ENVISION1 x 安德拉2 ,大切诺基1和奥迪Q72中的每一个元组组合

 

Derived operations

intersection(交)

complement(补)

join(连接)

 

交:Sportage1∩Wrangler2,Enclave1和大切诺基第22中学国共产党有的有所元组,凯雷德1和库罗德2的方式必得豆蔻梢头律,等价于福睿斯1-(Tiguan1-本田UR-V2)

连接:

θ连接

www.463.com 13

本来连接

等值连接

外表连接

 

θ连接:

 

由定义可见,当自然连接的八个涉及未有集体属性时,结果是笛Carl积

θ为比较运算符,输入Koleos1(A1,…,An),
ENVISION2(B1,…,Bm),输出S(A1,…,An,B1,…,Bm),S中的全部元组都满足θ,运算时方可先求笛Carl积,然后从中筛选相符条件的结果

 www.463.com 14www.463.com 15

理当如此连接:

θ连接的θ条件为等于,并且卓越的规范化同名,最后结出只保留一列同名属性

 www.463.com 16

 

求解步骤:

1.求笛Carl积安德拉×S

2.增选具有满意r[Ai]=s[Bj]的元组

3.去掉重复属性

www.463.com 17

 

等值连接:

θ的基准为等于时为等值连接,同名的列须求用表名加点来不同

 

表面连接:

防止音信遗漏,先求连接,然后把外接连的表的远非匹配上的元组全部加多进连接的结果中,用null来表示未相称上的值

左外连接 = 自然连接 + 侧面表中失配的元组。

右外连接 = 自然连接 + 左边表中失配的元组。

全外连接 = 自然连接 + 两边表中失配的元组。

 www.463.com 18

 

宗旨 E-ENVISION 模型的更改

  • 实业集到关系的更动 –关系表
    • 质量     –关系表中的属性
    • 主关键词   –关系表中的主关键字
    • 属性域    –关系表中的属性的域
  • 交换成事关的转移

    • 多对多

      • 种种参预联系的实业集的主关键字属性,作为外键存在
      • 有着外键构成该实体集的主关键字
      • 联络集小编的性质 — 平常属性
    • 一对多

      1. 将意气风发对多关系转变为一个单独的关联表【劣点1】多二个表【劣势2】连接麻烦
      2. 将联系和多的可怜实体集调换为八个事关表【弱点】浪费空间
    • 风姿罗曼蒂克对风流洒脱涉嫌怎么调换?

除运算

论及Koleos除以S的结果为T,则T饱含全体在本田CR-V但不在S中的二属性集及其值,且T的元组与S的元组的具有组丹佛在S中。(可用来验算除运算卡塔尔国

措施风度翩翩:设ENCORE(X,Y)和S(Y)是八个事关,则LAND÷S = ∏X(R)
-∏X(( ∏X(R) X S) - R )。

措施二:利用象集,参照他事他说加以考察 
 妙啊!

奥迪Q3S÷S的含义正是:在福睿斯和S的联系LacrosseS中,找寻与S中全部的元组全都有关系的福特Explorer元组。

 

波及代数破绽:不可能传递闭包

 

 

 

闻一知十的 E-LX570 模型的转移

  • 持有参预约束的关系集的更改
  • 弱实体集
    • 叁个弱实体集总是参加一个二元豆蔻梢头对多联系
    • 故此用地点的方法二。浪费空间的弱项不再存在
  • 类层次

    1. 三个实体集调换到七个涉及表

      • 超类删除时子类也要相同的时候被去除
      • 在子类的关联表中不需求父类的非主属性(展示世袭性卡塔 尔(英语:State of Qatar)
      • 【特点】
      • 当查问涉及到父类的属性和其它一些细节属性时索要一连操作
      • 当查问仅涉及到父类的质量时则在父类关系上实行就能够
      • 另二个独特之处是足以积累非子类的实体
    2. 八个实体集调换来五个涉及表

      • 仅生成多个事关:他们都含有超类Employees的性质,除了主关键字约束以外,无需定义任何约束
      • overlap约束只好用通用约束机制来贯彻
      • 【特点】
      • 至关重要缺点是心有余而力不足储存非子类的实体
      • 可取是仅提到子类的询问仅在三个事关上张开即可,不须求拾叁分的连天操作
      • 但关系到具有子类的询问则须求在多个关系上拓宽;

SQL

关全面据库标准语言SQL

DDL数据定义语言:

create、drop、alter、commit、rename、truncate。(P80-P85)

RESTMuranoICT:表示删除时有约束条件,有依据对象不容许删除;

CASCADE:级联删除,删除时有关的依附对象也被删除。

建议看一下创办表、更改表、删除表、创设视图、删除视图看一下。例如主键怎么写啊(PPRADOIMATiguanY
KEY卡塔 尔(阿拉伯语:قطر‎,唯生龙活虎(UNIQUE卡塔尔国、视图检查(WITH CHECK OPTION卡塔尔等。

 www.463.com 19

 

概述

查询

DQL数据查询语言(P89-P115卡塔 尔(英语:State of Qatar)SQL是结构化查询语言

SELECT [ALL|DISTINCT] <目标表达式> [,<目标表达式>]...

FROM <表名或视图名> [,<表名或视图名>...] | (<SELECT 语句>)[AS] <别名>

[WHERE <条件表达式>]

[GROUP BY <列名1> [HAVING <条件表达式>]]

[ORDER BY <列名2> [ASC|DESC]];

设若要结果中有新的列名,用as

 

急需删除结果中的相似元组,用distinct

 select distinct branch_name from loan

封存全数的元组用all(暗许保留全数卡塔尔国

select all branch_name from loan

1.SELECT语句前边可接:算术表达式、字符串常量、函数(比方转变大小写)、属性小名(as后的剧情)等

  1. WHERE语句后边可接:相比、范围(BETWEEN AND卡塔尔、集结(IN卡塔尔国、相配(NOT
    LIKE %_卡塔 尔(阿拉伯语:قطر‎、空值(IS NULL卡塔尔、多种标准

       注:ESCAPE ‘<换码字符>’对通配符进行转义;             eg:

       Order by暗许升序,asc升序,desc降序,

不得不用在询问最终,能够有八个排序关键字

       五个单引号表示四个单引号

       相配中%相称任性字符串,_协作放肆字符

  1. 空值:不可能用‘=’,推断用IS|IS NOT。空值具备不醒目。

       3-valued logic: TRUE, FALSE, UNKNOWN.

假定TRUE = 1, FALSE = 0, and UNKNOWN =        ½,AND = MIN; OR = MAX,
NOT(x) = 1-x。

  1. 汇集函数:COUNT、SUM、AVG、MAX、MIN

      
注:WHERE语句中不可能用聚焦函数作为标准表明式,SELECT、HAVING中技艺用。

       集函数内得以用distinct/all,计算 不另行的/全数的 结果

      
集函数在总结时只要值全为null,结果也为null,不然持有的null被忽视,只总括非null

  1. 分组Group
    by:依据某一列或多列分组,值万分的为风度翩翩组,指标是细化集函数的功能对象,分组后集函数功用于每风度翩翩组,每组有三个函数值

       注:借使应用了汇集函数,则SELECT后只可以接聚集函数恐怕GROUP
BY前边的特性(属性集卡塔尔。

  1.    WHERE:功用于基本表或视图,采纳满足条件的元组,对原始表筛选;

       HAVING:功用于组,接受满意条件的组,条件是组属性/集函数,对原本表经处理后的表筛选。

7. 

SELECT  S  FROM  R1,…,Rn   WHERE  C1  GROUP BY a1,…,ak  HAVING  C2

实践各样:

      
a.计算FROM-WHERE部分,获得有全部奥迪Q71,…,Rn本性的表;

       b.依据属性a1,…,ak分组;

       c.总结C第22中学的集函数,只保留满意C2的组;

       d.总结S,再次回到结果

  1.   
    连接:有重名属性用表名加点表示,未有重名属性能够直接表示,在where里连接,实际上施行时是遍历FROM中表的有所元组,依次决断是不是合乎WHERE;

       本身连接:取别称操作,在FROM中显式定义多少个同表的元组变量;eg:

       外连接:

FROM S LEFT|RIGHT|FULL OUTER JOIN SC ON (S.Sno=SC.Sno)

       SQL Server不支持 Natual join

       inner join等同于在where里写连接条件,奥迪Q5 JOIN S on
<condition>是θ连接

 www.463.com 20

 

  1.    子查询:假若实查询的结果能够确定保障独有二个元组,则能够用作值

       在FEOM和WHERE中都可插入子查询。

       不相关子查询:子查询的询问条件不依附于父查询。

      
相关子查询:子查询的询问条件注重于父查询。eg:www.463.com 21

 

       注:

              子查询中最棒用元组变量来定名结果元组

              子查询中不可用OCRUISERDE中华V BY。

              某个嵌套查询能够用接二连三代替,有些特别。

              一些带EXISTS或NOT
EXISTS谓词的子查询不可能被其余格局的子查询等价替换;

             
全数带IN谓词(IN谓词日常出未来where中后跟子查询卡塔尔、比较运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价替换。

              ANY(SOME):某个

              ALL:所有

    对应集函数:www.463.com 22

 

              EXIST:存在。不回去数据,只产生逻辑真值。

       全称量词转变(难题卡塔 尔(英语:State of Qatar):选修了整个科目->未有一门课不选。(P110卡塔尔

      
特称量词转变(难题卡塔 尔(英语:State of Qatar):选修了A选的一切学科->未有一门A选过的课不选。(P111卡塔尔

  1. 见面查询:并(UNION卡塔 尔(阿拉伯语:قطر‎、交(INTE卡宴SECT卡塔尔、差(EXCEPT卡塔尔。对多个SELECT结果开展操作。

 www.463.com 23

SQL语言的组成都部队分

  • 多少定义语言(DDL : Data Definition Language卡塔尔
    • 肩负数据结构定义与数据库对象定义的言语
    • CREATE
    • ALTER
    • DROP
    • 操作的指标蕴含涉嫌表、视图、索引等。
  • 数据垄断语言(DML : Data Manipulation Language卡塔尔
    • SELECT
    • INSERT
    • UPDATE
    • DELETE。
    • 它们各自用于查询、加多、改正和删除表中的行
  • 数量调节语言(DCL : Data Control Language卡塔 尔(英语:State of Qatar)
    • 在SQL语言中,是黄金时代种可对数码访问权张开调控的授命,
    • 由 GRANT 和 REVOKE 多少个指令组成。
  • 事务管理语言(TPL: Transaction Processing Language 卡塔尔
    • 它的说话能作保被DML语句影响的表的全数行及时得以更新。包蕴BEGIN
      TRANSACTION,COMMIT和ROLLBACK。

SQL续

数据库三级格局

  • SQL语言也援救关周详据库三级方式种类布局
    • 内格局:存款和储蓄文件(逻辑结构卡塔尔国
    • 模式:基本表
    • 外方式:视图+一些基本表

DDL数据定义语言:

create、drop、alter、commit、rename、truncate。(P80-P85)

      
REST奥德赛ICT:表示删除时有限定规范,有依附对象(作外键、包括视图、触发器等卡塔 尔(阿拉伯语:قطر‎不一样意删除;

       CASCADE:级联删除,删除时有关的信赖性对象也被删去。

      
建议看一下创设表、改良表、删除表、创设视图、删除视图看一下。比方主键怎么写啊(P瑞鹰IMA奥迪Q5Y
KEY卡塔尔国,唯风流倜傥(UNIQUE卡塔尔、视图检查(WITH CHECK OPTION卡塔尔国等。

       多属性键:Primary key(a, b)(a, b为属性名)

 

primary key 和 unique

1.种种关系可以有多个主键,不过足以有四个unique

2.主键的值永世是not null,而unique的值可以有null(最多一个卡塔 尔(阿拉伯语:قطر‎

3.数据库管理系列会给主键暗中认可建立目录

4.都能够看成外键被引用

 

DML数据操作语言:insert、update、delete。(P115-P119卡塔尔国

       1.

INSERT INTO <表名> [(<属性列1>[,<属性列2>]…)]  注:可以指定属性插入

       VALUES (<常量1>[,<常量2>]…);

       INSERT INTO <表名> [(<属性列1>[,<属性列2>]…)]

       子查询;

 

    注:使用子查询时在insert into 表A
后一定要写明属性,借使子查询的数据类型与要插入的表中的档期的顺序不雷同时,会开展强制调换

       2.

UPDATE <表名>

       SET <列名>=<表达式>[,<列名>=<表达式>]…

       [WHERE <条件>];

 

       3.

DELETE FROM <表名>

       [WHERE <条件>]; 

 

注:不写where时会删除表里全部的元组

 

 

多少定义底蕴用

视图(VIEW):

视图是从四个或几个基本表(视图卡塔尔国导出的表。视图与基本表差异,视图是一个虚表,数据库中只存款和储蓄视图的定义,而不存放视图所对应的数目,对视图查询时才会按视图的概念从基本表中询问。(P121-129卡塔尔

功用:简化客户的操作;使客户能以二种角度对待同豆蔻梢头数据;对重构数据库提供了一定水平的逻辑独立性;能够对秘密数据提供安全保卫安全。(压题哈哈哈卡塔 尔(阿拉伯语:قطر‎

CREATE VIEW <视图名> [(<列名1>[,<列名2>]…)]

AS <子查询>

[WITH CHECK OPTION];

 

注:必需钦点视图的兼具列名的动静:

        a.有目的列不是仅仅的属性名,而是集中函数或表明式

        b.多表连接时选出了多少个同名列作为视图的字段

        c.供给在视图中为有个别列启用新的列名

1.行列子集视图:单表导出,单纯抽出的一些列和行,并且保留了主码。

2.视图消解:把视图的概念和询问结合起来转换为等价的对基本表的询问,非常多关全面据库对行列子集视图的查询能够正确调换,非洲开发银行列子集视图就不自然了。

3.更新视图:也亟需改换为对基本表的翻新。平日的,行列子集视图是可更新的

with check
opinion可更新视图,会在增加和删除改时关周详据库管理类别会检查视图定义中的条件,要是不知足会推却推行操作,比方插入的数据与where子句中的条件不符,会谢绝插入。使用select
* 的视图可扩大性差。

4.视图的功效:P128-P129

 

作用:

1简化查询

2屏蔽底层数据库的改动,达成数量独立

3提供权限,不一致的客户能够采纳不一样的表中的例外字段,能够解决三个客商能够查看分裂表中的有的字段的主题素材,把客商能够查看的字段放进三个视图

 

情势定义

  • SQL提供了三级方式组织的概念效用,相关的定义语句如下:
操作对象 创建 删除
模式(命名空间) CREATE SCHEMA DROP SCHEMA
关系表 CREATE TABLE DROP TABLE
视图 CREATE VIEW DROP VIEW
索引 CREATE INDEX DROP INDEX
  • 创办方式基本语句
    • CREATE SCHEMA <模式名> AUTHORIZATION
      <用户名>
    • CREATE SCHEMA
      <模式名>AUTHORIZATION<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
    • DROP SCHEMA <模式名> <==CASCADE|RESTRICT==>

索引

目录(INDEX卡塔尔国:索引是对数据库表中一列或多列的值举行排序的风华正茂种结构,使用索引可快捷访问数据库表中的一定音讯,数据库索引相符图书目录,能够加速查询速度。(二〇一四年课题卡塔尔

(1卡塔尔    
关周全据库管理连串会自动选拔适当的目录作为存款和储蓄路线,客商无需显式采用索引。

(2卡塔尔国    
聚簇索引:聚簇索引的目录项顺序与表中记录的概况顺序风华正茂致。所以在二个基本表上最五只好创建四个聚簇索引。对于基于聚簇索引列的查询(特别是节制查询卡塔尔国,能够做实查询功效。

(3卡塔尔    
聚簇索引的适用范围:聚簇索引列存在多量非重复值;超少对基表举办增加和删除操作;超级少对在那之中的变长列举行退换操作。

扬言格式:

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);     

·  用<表名>钦定要建索引的基本表名字

·  索引能够创立在该表的一列或多列上,各列名之间用逗号分隔

· 
用<次序>内定索引值的排列顺序,升序:ASC,降序:DESC。缺省值:ASC

·  UNIQUE证明此索引的每二个索引值只对应唯豆蔻梢头的数码记录

· 
CLUSTE帕杰罗代表要自食其力的目录是聚簇索引,构建聚簇索引后,基表中数量也须求按钦赐的聚簇属性值的升序或降序寄放。也即聚簇索引的目录项顺序与表中记录的物理顺序生机勃勃致,二个基本表只好创设叁个聚簇索引

适用范围:

    a.聚簇索引列存在大批量非重复值

    b.少之甚少对基表举办增加和删除操作

    c.超级少对里面包车型客车变长列举办改正操作

 对于已含重复值的习性列不能够建UNIQUE索引,对有个别列创建UNIQUE索引后,插入新记录时DBMS会自行检查新记录在该列上是或不是取了再次值。这一定于增添了叁个UNIQUE节制

统筹标准

·  索引是情理结构划虚构计的严重性内容之意气风发

·  选取索引列的日常原则如下:

  ·  平时作为选项运算相比列的品质应安装为索引列

    ·  在学员表中,常遵照学子姓名进行查找,则学子姓名应设定为索引

  ·  对索引列的大面积查询的查询结果占总记录数的百分比不宜过高

    · 
学子表中性别列的取值独有“男”或“女”,在这一个列上建索引意义十分小(除非动用位图索引卡塔 尔(阿拉伯语:قطر‎

  ·  索引列数量应尽量少

    ·  索引太多会招致数据更新速度变慢

  ·  在询问条件子句中尽量不要对索引列实行函数计算

    · 
比如设salary为索引列,则salary/6000>age/50那样的语句会造成数据库无法利用索引

    · 
应更动成salary>6000*(age/50)的款式,即表达式侧面是独立的索引列

基本表定义

  • SQL基本建表语句
    • CREATE TABLE表名
    • (<列名1> 数据类型 [列级节制],
    • [<列名2> 数据类型 [列级节制],]
    • ……,
    • [表级节制])。
  • 封锁举个例子
    • primary key
    • foreign key
    • references

Foreign Key (Cpno) REFERENCES Courses (Cno)

 数据类型
     char(n) :固定长度为n的字符串
     varchar(n): 可变长度为n的字符串
     smallint: 短整数
     int: 长整数
     numeric(p,s) :定点数。由p位数字组成,包括s 位小数 
     float(n): 精度至少为n位数字的浮点数
     real:取决于机器精度的浮点数
     double precision:取决于机器精度的双精度浮点数
     date: 日期,格式为年、月、日,YYYY-MM-DD 
     time: 时间,格式为时、分、秒, HH:MM:SS 
  • 修改表

    • 拉长列|完整性约束:

      • ALTER TABLE <表名>** ADD** <列名>
        <数据类型> [完整性约束]

        • 改进表:在学员表中增多字段Sclass,字符类型,长度20
        • Alter table Students add Sclass char(20)
        • 充实课程名称必得取唯风度翩翩值的封锁标准
        • Alter table Courses add unique (Cname)
    • 除去列|完整性限定:

      • ALTER TABLE <表名> DROP <列名>
        <数据类型> [完整性节制]
    • 修改列:

      • ALTER TABLE <表名>ALTER COLUMN<列名>
        <数据类型>

        • 将年龄的数字类型由字符型改为整型
        • Alter table Students alter column Sage int
  • 删除表

    • Drop table <表名> [restrict|cascsde]
    • Restrict:
      表删除有限制标准化,不能被其余表的自律所引述,不能够有视图、触发器、存款和储蓄进度或函数
    • Cascade:把多少个基本表的定义连同表上的具备记录、索引以致经过基本表导出的有所视图都删除,并释放相应的储存空间

完整性约束

数据库的完整性:数据的对的和相容性。(看下概念P157卡塔 尔(阿拉伯语:قطر‎

封锁是数据库要求强制推行的要素之间的关联,必得平昔为真,避免现身相当小器晚成致

封锁分类:

       1.码(主键、候选键卡塔 尔(英语:State of Qatar)P福睿斯IMARubiconY  (A1, A2, .., An) or UNIQUE (A1, A2,
…, An),插入时会检查是不是已插入了键相符的元组;

       2.属性约束,NOT NULL,
CHECK,注:check里对质量限定,现身的别的属性需求写在子查询里,check只在insert/update时检查;  
e.g:www.463.com 24

 

       3.元组约束 eg:

www.463.com 25

      
4.外键或参照完整性,须求某些属性是另三个表里的主键,能够定义在品质后

REFERENCES <relation> ( <attributes> )

也得以定义在建表里作成分

FOREIGN KEY ( <list of attributes> ) REFERENCES <relation> ( <attributes> )

       对被引述的表的元组改善的拍卖:(三种能够的秘技)

              a.暗中同意default:推却纠正被援用的表的元组

             
b.级联cascade:在引用的表杏月被援用的元组举办一样的操作,主删外删,主改外改。比方Beers和Sells表,删除Beers中的元组,会把Sells里关系被删除的beer的元组删除,同理对Beers的元组更改会对Sells里的值也改过

              c.设空值set
null:把援用的表的值设为null,主删外NULL,主改外改。举个例子Sells的被剔除的beer被null替换

       就算要在改革时不选拔暗中认可的(谢绝实行卡塔尔,必要显式在建表时证实

www.463.com 26

 

       5.断言:复杂的check语句拿出去单独写。

       格式:

CREATE ASSERTION <断言名> <check子句>

历次对涉嫌校正都要实施,成效不高,系统无法“智能”剖断何时施行断言检查。

drop constraint <约束名>

能够去除约束

drop assertion <断言名>

能够去除断言

 

SQL查询语句基本协会

  • SQL查询语句的主干组织
    • ==SELECT== [DISTINCT] <目标列> [,<目标列>]
    • ==FROM== <基本表 (视图)> [,<基本表 (视图)>]
    • [==WHERE== <条件表明式>]
    • [==Group by== <列名1> [==having== <分组说明式>]
      ]
    • [==Order By== <列名2>[ ==asc | desc== ]];

触发器

       1.格式

CREATE TRIGGER <触发器名>

              {BEFORE|AFTER|INSTEAD OF} <触发事件>ON <表名>/*指明触发器激活的时间*/

              REFERENCING NEW|OLD ROW AS <变量>/*指出引用的变量*/

              FOR EACH {ROW|STATEMENT}                 /*指明触发器类型,即动作发生频率*/

              [WHEN<触发条件>] <触发动作>             /*当触发条件为真时才触发动作体*/

      
2.触发事件-条件-动作准则,当特定的系统事件(插入、更新等卡塔尔国产生时,倘诺准则的原则组建,则实施法规中的动作,不然不进行该动作。

      
3.为了减轻断言效用低,不会咬定是还是不是应该实践check的标题,允许使用者钦命曾几何时施行check

       4.触发事件 AFTE安德拉 /BEFORE /INSTEDA OF,instead
of是对视图的校订,会把被instead
of的对基本表的校订替换到对视图的改造,SQL Server专有

www.463.com,       5.触发器类型,for each row会对每生机勃勃行都实行,for each
statement只实行贰遍,暗中同意是后世

       6.REFERENCING里引用的内容,若是是for each row,则足以援引old row|
new row表示校勘前后的元组,就算是for each statement,则足以援用old
table| new table表示校订前后的表

       7. Inserted
、Deleted指代改造的表,前面二个指客户插入的数码,后面一个指客商删除的数额

只尽管update事件,则Inserted、Deleted表里都有内容(update的精气神是先delete再insert卡塔尔若是只是insert、delete事件,则唯有对应的表里有内容

例:视图的触发器

 www.463.com 27www.463.com 28

 

 

SQL单关系查询

发表评论

电子邮件地址不会被公开。 必填项已用*标注