笔记
风月将wang
这个作者很懒,什么都没留下…
展开
-
数据库的三级模式结构
2021-11-12数据库的三级模式结构数据库系统的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成。1.模式模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。2.外模式外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据库视图,是与某一应原创 2021-11-12 22:11:47 · 9388 阅读 · 0 评论 -
“21天好习惯”第二十期-20
2021-11-11触发器激活触发器触发器的执行是由触发事件激活,并由数据库服务器自动执行的。一个数据表上可能定义了多个触发器,如多个for触发器,多个after触发器等,同一个表上的多个触发器激活时遵循如下的执行顺序1.执行该表上的before触发器2.激活触发器的sql语句3.执行该表上的after触发器对于同一个表上的多个before触发器,遵循‘谁先创建谁先执行’的原则,即按照触发器创建的时间先后顺序执行。有些关系数据库管理系统是按照触发器名称的字母排序顺序执行触发器。触发器是一种功原创 2021-11-11 21:52:13 · 779 阅读 · 0 评论 -
“21天好习惯”第十三期-13
2021-11-10触发器触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,触发器将被保存在数据库服务器中。任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在关系数据库管理系统核心层进行集中的完整性控制。触发器类似于约束,但是相比约束更加灵活,可以实施更为复杂的检查和操作,具有更精细和强大的数据控制能力。定义触发器create trigger 触发名on 表名|视图名for|after|instead of 触发事件as 触发动作体触发器又叫做事件——条件——动作规原创 2021-11-10 22:06:12 · 470 阅读 · 0 评论 -
“21天好习惯”第十九期-19
2021-11-09完整性约束命名子句sql在create table语句中提供了完整性约束命名子句constraint,用来对完整性约束条件命名,从而可以灵活地增加、删除一个完整性约束条件。1.完整性约束命名子句constraint完整性约束条件名 完整性约束条件完整性约束条件包括not Null、unique、primary key、foreign key、check短语等例 建立学生登记表student,要求学号在90000~99999之间,姓名不能取空值,年龄小于30,性别只能是‘男’或原创 2021-11-09 22:35:54 · 443 阅读 · 0 评论 -
“21天好习惯”第十八期-18
2021-11-08用户定义完整性属性上的约束条件的定义在create table中定义属性的同时,可以根据应用要求定义属性上的约束条件,即属性值限制包括列值非空列值唯一检查列值是否满足一个条件表达式(check短语)1.不允许取空值例在定义sc表时,说明sno,cno,grade属性不允许取空值。create table sc(sno char(9)not nullcno char(9)not nullgrade SMALLINT not nullprimary key (s原创 2021-11-08 22:12:49 · 282 阅读 · 0 评论 -
“21天好习惯”第十七期-17
2021-11-07参照完整性关系模型的参照完整性在create table中用foreign key短语定义哪些列为外码,用references短语指名这些外码参照哪些表的主码。例如,关系sc中一个元组表示一个学生选修的某门课程的成绩,(sno,cno)是主码,sno,cno分别参照引用student表的主码和course表的主码。参照完整性检查和违约处理参照完整性将两个表中的相应元组联系起来了。因此,对被参照表和参照表进行增、删、改操作时有可能破坏参照完整性,必须进行检查以保证这两个表的相容性原创 2021-11-07 20:27:11 · 123 阅读 · 0 评论 -
“21天好习惯”第十六期-16
2021-11-06实体完整性关系模型的实体完整性在create table 中用primary key定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对多个属性构成的码只有一种说明方法,即定义为表级约束条件。例 将student表中的sno属性定义为码。create table student(sno char(9) primary key,sname char(20)not Null,ssex char(2)sage SMALLINTsdept char(2原创 2021-11-06 21:59:15 · 127 阅读 · 0 评论 -
“21天好习惯”第十五期-15
2021-11-05数据库完整性数据库的完整性是指数据的正确性和相容性。数据库的正确性是指数据是符合现实世界语义、反映当前的实际状况的;数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。为维护数据库的完整性,数据库管理系统必须能够实现如下功能。1.提供定义完整性约束条件的机制完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件。它表达了给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。原创 2021-11-05 20:37:49 · 63 阅读 · 0 评论 -
“21天好习惯”第十四期-14
2021-11-04视图的作用合理的使用视图能够带来许多的好处。1.视图可以简化用户的操作。视图机制使用户可以将注意力集中在所关系的数据上。2.视图使用户能够以多种角度看待同一数据。当许多不同种类的用户共享同一个数据库时,这种灵活是十分重要的。3.视图对重构数据库提供了一定程度的逻辑独立性。视图只能在一定程度上提供数据的逻辑独立性,比如由于对视图的更新是有条件的,因此应用程序中修改数据的语句可能仍会因基本表结构的改变而需要做相应的修改。4.视图能够对机密数据提供安全保护。有了视图机制,就原创 2021-11-04 20:46:15 · 65 阅读 · 0 评论 -
“21天好习惯”第十二期-12
2021-11-04更新视图在关系数据库中,并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义的转换成相对应基本表的更新。一般来说,行列子集视图是可更新的。除行列子集视图外,有些视图理论上是可更新的,但他们的确切特征还是尚待研究的课题。还有些视图从理论上就是不可更新的。目前,各个关系数据库管理系统一般都只允许对行列子集视图进行更新,而且各个系统对视图的更新还有更近一步的规定。由于各系统实现方法上的差异,这些规定也不尽相同。例如:DB2规定1.若视图是由两个以上基本表导出的,则视图不原创 2021-11-03 22:37:35 · 57 阅读 · 0 评论 -
“21天好习惯”第十一期-11
2021-11-02更新视图更新视图是指通过视图来插入(insert)、删除(delete)、修改(update)数据。由于视图是不实际的存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。像查询视图那样,对视图的更新操作也是通过视图消解,转换为对基本表的更新操作。为防止用户通过视图对数据进行增加、修改、删除时,有意无意地对不属于视图的范围内的基本表的数据进行操作,可在定义视图时加上 with check option子句。这样在视图上增、删、改数据时,关系数据库管理系统会检查视图定义中的条原创 2021-11-02 17:46:28 · 90 阅读 · 0 评论 -
“21天好习惯”第十期-10
2021-11-01查询视图例 在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩,语句为select sno,avg(grade)from scwhere avg(grade)>=90group by sno因为where子句中是不能用聚集函数作为条件表达式的,因此执行此修正后的查询将会出现语法错误。正确转换的查询语句应该是select sno avg(grade)from scgroup by snohaving avg(grade)>=90总结:目前多数关系原创 2021-11-01 21:09:52 · 253 阅读 · 0 评论 -
“21天好习惯”第九期-9
2021-10-31二、查询视图视图定义后,用户就可以像对基本表一样对视图进行查询了。例如:在信息系学生的视图中找出年龄小于20岁的学生。select sno,sagefrom is_studentwhere sage<20关系数据库管理系统执行对视图的查询时,首先进行有效检查,检查查询中涉及的表、视图等是否存在。如果存在,则从数据字典取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后在执行修正了的查询。这一转换过程称为视图消解。也就是说上例可换为原创 2021-10-31 23:08:07 · 57 阅读 · 0 评论 -
“21天好习惯”第八期-8
2021-10-30三.删除数据删除语句deletefrom 表名where 条件delete语句的功能是从指定表中删除满足where子句条件的所有元组。如果省略where子句则表示删除表中全部元组,但表的定义扔在字典中。也就是说,delete语句删除的是表中的数据,而不是关于表的定义。1.删除某一个元组的值删除学号为201215128的学生记录deletefrom studentwhere sno=‘201215128’2.删除多个元组的值删除所有的学生选课记录deletef原创 2021-10-30 21:27:15 · 44 阅读 · 0 评论 -
“21天好习惯”第七期-7
2021-10-29二、修改数据修改操作又称为更新操作update 表名set 列名=表达式,列名=表达式……from 表名,表名……where 条件其功能是修改指定表中满足where子句条件的元组,其中set子句给出表达式的值用于取代相应的属性列值。如果省略where子句,则要修改表中所有的元组。1.修改某一个元组的值将学生201215121的年龄改为22岁update studentset sage=22where sno=‘201215121’2.修改多个元组的值将所有学生原创 2021-10-29 20:00:30 · 228 阅读 · 0 评论 -
“21天好习惯”第六期-6
2021-10-28数据更新数据更新一共有三种操作:向表中添加若干行数据,修改表中的数据和删除表中的若干行数据。在sql中有相应的三类语句。一、插入数据sql的数据插入语句insert通常有两种形式,一种是插入一个元组,另一种是插入子查询结果。后者可以一次插入多个元组。例:插入一条选课记录(‘201215128’,‘1’)。insertinto sc(sno,cno)values(‘201215128’,‘1’,NULL);插入子查询例:对student 表按系分组求平均年龄,再把系名和原创 2021-10-28 22:03:28 · 50 阅读 · 0 评论 -
“21天好习惯”第五期-5
2021-10-27视图组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了视图的各个属性列名,则隐含该视图由子查询中select子句目标列中的诸字段组成。但在下列四种情况下必须明确指定组成视图的所有列名:1.某个目标列不是单纯的属性名,而是聚集函数或列表达式;2.目标列为*;3.多表连接时选出了几个同名列作为视图的字段;4.需要在视图中为某个列启用新的更合适的名字。例如:建立信息系选修了一号课程的学生的视图(包括学号、姓名、成绩)。create view IS-S1(sn原创 2021-10-27 22:18:31 · 117 阅读 · 0 评论 -
“21天好习惯”第四期-4
2021-10-26order by子句只能用于对最终结果排序而不能对中间结果排序。对集合操作结果排序时,order by字句中可用数字指定排序的属性。例如:第一列就用1来表示order by 1descselect sno,gradefrom scorder by grade desc...原创 2021-10-26 21:33:53 · 44 阅读 · 0 评论 -
“21天好习惯”第三期-3
2021-10-26连接查询包括等值查询,非等值查询,自然查询(是有损连接),还有自身连接,外连接(包括左外连接和右外连接)以及复合条件连接。–1、列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩select b.cno,cname,a.sno,sname,gradefrom student a,sc b,course cwhere a.sno=b.sno and c.cno=b.cno–2、查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名select sn原创 2021-10-25 21:54:07 · 210 阅读 · 0 评论 -
“21天好习惯”第二期-2
2021-10-24子查询的查询条件不依赖于父查询,称为不相关查询。实现同一个查询请求可以有多种方法,不同的方法其执行效率可能会有差别,这就是我们应该掌握的数据库性能调优技术。原创 2021-10-24 18:55:23 · 39 阅读 · 0 评论 -
“21天好习惯”第一期-1
2021-10-23原创 2021-10-23 19:58:01 · 45 阅读 · 0 评论