《数据库知识点总结参考.doc》由会员分享,可在线阅读,更多相关《数据库知识点总结参考.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库知识点总结数据库知识点总结数据库系统:数据库数据库管理系统应用系统数据库管理员数据库特点:永久贮存有组织可共享-较小的冗余度较高的数据独立性易扩展性用户共享数据库管理员:决定信息内容和结构储存结构和存取策略定义安全性完整性监控使用运行改进重组重构DBMS的主要功能:数据定义数据操作数据库的运行管理数据库的建立和维护数据库系统特点:数据结构化共享性高冗余度低以扩充数据独立性高由DBMS统一管理完整性安全性多用户并发控制故障恢复数据模型组成:数据结构数据操作完整性约束数据字典系统中各类数据描述的集合基本关系代数运算传统的关系运算专门关系运算连接Sql组成:数据定义数据操纵数据控制嵌入式sql
2、SQL语言特点:统一综合高度非过程化面向集合操作自含嵌入语言简洁数据定义模式定义:createschemaauthorization删除:dropschema基本表定义:createtable(.)修改:altertableadd新列完整性约束条件drop删除Modify修改索引定义createunion唯一cluster聚簇indexon删除dropindex数据查询selectfromorderby排序groupby分组Where子句作用于基本表或试图having作用于组选择满足条件的组数据更新插入insert()into()value()修改updataset=删除deletefrom视
3、图定义createviewas删除dropview查询select.from更新updata.set.数据库设计步骤:需求分析概念结构设计逻辑结构设计数据库的物理设计数据库实施授权grantontabletowithgrantoption;回收revokeonfromcascade级联角色createrole授权的集合授权grantonnameto角色授予其他granttowithadminoption收回revokeonfrom完整性约束constraintprimarykey.|foreignkey.|check.ConstraintprimarykeyForeignkeysnorefer
4、encesstudent(sno)数据库安全性控制:用户标识和鉴别存取控制试图机制审计数据加密事务的特性:原子性一致性隔离性持续性并发控制:丢失修改不可重复读读脏数据Odbc的流程:配置数据源初始化环境建立连接分配语句句柄执行sql语句结果及处理终止处理结束后,释放语句句柄释放连接句柄并断开连接释放环境句柄可串行化非串行化时间T1T2T3时间T1T2T3t1slockAt1slockAT2x=A=0t2slockAT3unlockAt3x=A=0T4xlockAt4x=A=0T5slockAt5unlockAT6a=x+2等t6slockAT7unlockAt7unlockAT8x=A=2t8
5、x=A=0T9unlockAt9unlockAT10xlockAt10xlockAT11slockAt11A=x+2T12A=x+2等t12xlockAT13unlockAt13unlockAT14x=A=4t14xlockAT15unlockAt15A=x*2T16xlockAt16A=x*xT17A=x*xt17unlockAT18unlockAt18unlockA不产生死锁的可串行化调度(t3t1t2)T1T2T3T1xlockAT2x=A=0T3xlockAT4等A=x*xT5unlockAT6x=A=0T7xlockAT8A=x+2等T9unlockAT10x=a=2T11A=x*2
6、T12unlockA等扩展阅读:数据库知识点总结题型:一、选择题(每题1分,共10分)二、简答题:(每题10分,共30分)三、应用题:(第1题15分,第2题45分,共60分)考试范围:第一章1、数据、的定义描述事物的符号记录称为数据。数据库是长期储存在计算机内的、有组织的、可共享的数据集合。2、数据库、数据库系统的特点(了解)3、DBMS的功能(了解)4、实体间联系的三种类型(1:1,1:n,m:n)5、E-R图的画法a、不必画出中间步骤。b、标出实体间联系的类型。c、只需画出关键字对应的属性。6、数据库系统的组成、核心7、数据库设计的步骤第二章认识关系运算符第五章1、数据库的创建CREATE
7、DATABASE2、创建表CREATETABLE3、数据插入INSERT4、数据修改UPDATE5、数据删除DELETE第六章1、相关子查询和非相关子查询之间的区别2、视图的优点(了解)3、数据查询SELECT:1)内连接2)分组、统计函数3)排序4)非相关子查询第七章1、触发器的写法小结(第一章课件34到56第五章课件64到75第六章课件(SELECT语句,内连接,分组、统计函数,排序,非相关子查询)重点第七章课件58到71)数据(DATA,简称D)定义:描述事物的符号记录称为数据。数据库(DataBase,简称DB).定义:是长期储存在计算机内的、有组织的、可共享的数据集合。.特点:(1)
8、数据库中的数据按照一定的数据模型组织、描述和储存。(2)具有较小的冗余度。(3)较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统(DBMS)主要功能:1)数据定义功能:。2)数据组织、存储和管理功能:3)数据操纵功能:4)数据库的事务管理和运行管理5)数据库的建立和维护功能简答题:1.相关子查询和非相关子查询之间的区别a)非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。b)相关子查询是内层子查询条件依赖于外层父查询的某个属性值的子查询,外部查询执行一行,子查询就执行一次。2.数据库设计的步骤1需求分析;2概念结构设计;3逻辑结构设计;4数据
9、库物理设计数据库实施;5数据库运行和维护3.视图的优点(了解)(1)为用户集中数据,简化用户的数据查询和处理。(2)屏蔽数据库的复杂性。(3)简化用户权限的管理。(4)便于数据共享。(5)可以重新组织数据以便输出到其他用程序中。例5-1创建一个名为BookSys的数据库。例5-2创建一个名为KEJI_DB的数据库。要求有三个文件,其中,主数据文件为10MB,最大大小为50MB,每次增长20%;辅助数据文件属于文件组Fgroup,文件为10MB,大小不受限制,每次增长10%;事务日志文件大小为20MB,最大100MB,每次增长10MB。文件存储在c:db路径下。CREATEDATABASEKEJ
10、I_DB/*数据库名*/ONPRIMARY/*主文件组*/(NAME=KEJI_DB_Data1,/*主文件逻辑名称*/FILENAME=c:dbKEJI_DB_Data1.mdf,/*主文件物理名称*/SIZE=10mb,MAXSIZE=50mb,FILEGROWTH=20%),FILEGROUPFgroup/*文件组*/(NAME=KEJI_DB_Data2,/*主文件逻辑名称*/FILENAME=c:dbKEJI_DB_Data2.ndf,/*主文件物理名称*/MAXSIZE=UNLIMITED,/*增长不受限制*/SIZE=10Mb,FILEGROWTH=10mb)LOGON(NAME
11、=KEJI_DB_Log,/*日志文件逻辑名称*/FILENAME=c:dbKEJI_DB_Log.ldf,/*日志文件物理名称*/SIZE=20mb,MAXSIZE=100mb,FILEGROWTH=10mb)使用SQL语句(1)修改数据库内容语法:ALTERDATABASEdatabase_nameADDFILE,nTOFILEGROUPfilegroup_name/*在文件组中增加数据文件*/|ADDLOGFILE,n/*增加事务日志文件*/|REMOVEFILElogical_file_name/*删除数据文件*/|ADDFILEGROUPfilegroup_name/*增加文件组*/
12、|REMOVEFILEGROUPfilegroup_name/*删除文件组*/|MODIFYFILE,n/*修改文件属性*/|MODIFYNAME=new_dbname/*更新数据库名称*/例:使用触发器判断插入的工资数据,如果工资超过100,000则不允许插入。CREATETABLEtrig_example(idINT,nameVARCHAR(10),salaryMONEY)GOCREATETRIGGERinsertrigONtrig_exampleFORINSERTASIF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary100000)0BEGINPRINT数据插
13、入错误:您试图插入一个大于$100,000的工资数据!ROLLBACKTRANSACTION-事务回滚END1.使用后级触发器的插入和删除例题:使用(后级)触发器判断插入的工资数据,如果工资超过100,000则不允许插入。CREATETABLEtrig_example(idINT,nameVARCHAR(10),salaryMONEY)GOCREATETRIGGERinsertrigONtrig_exampleFORINSERTASIF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary100000)0BEGINPRINT数据插入错误:您试图插入一个大于$100,000
14、的工资数据!ROLLBACKTRANSACTION-事务回滚END练习:使用后级触发器对数据删除操作进行检查,如果删除工资大于5000的记录时提示错误信息,并回滚到删除前的状态。Insertintotrig_exampleValues(1,tom,2022)Insertintotrig_exampleValues(2,marry,6000)Insertintotrig_exampleValues(3,rose,8000)CREATETRIGGERdeletedONtrig_exampleFORdeleteASIF(SELECTCOUNT(*)FROMdeletedWHEREsalary1000
15、00)0BEGINPRINT数据插入错误:您试图删除一个大于$100,000的工资数据!ROLLBACKTRANSACTION-事务回滚END.使用前级级触发器的插入和删除1.使用前级触发器判断插入trig_example表的工资数据,如果工资超过100,000则不允许插入。CREATETRIGGERinsert_trig_exampleONtrig_exampleInsteadofinsertASdeclaresalarymoneyselectsalary=salaryfrominsertedIFsalary1000printwongdata!elsebegininsertintotrig_
16、exampleselect*frominsertedend2.使用前级触发器对trig_example表的数据删除操作进行检查,如果删除工资大于5000的记录时提示错误信息,不删除记录;否则删除相应记录。CREATETRIGGERdelete_trig_exampleONtrig_exampleInsteadofdeleteASdeclareidint,salarymoneyselectid=idfromdeletedIFsalary100000print删除的数据大于!elsebegindeletetrig_examplewhereid=idend五、(12分)某商店管理涉及商店、商品和职工
17、三个实体,它们分别具有下列属性:商店:商店编号,店名,店址,店经理商品:商品编号,商品名,单价,产地职工:职工编号,职工名,性别,工资这些实体间的联系如下:百货公司管辖若干个连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。职工参加某商店工作有开始时间,商店销售商品的有月销售量。请画出商店、商品和职工的ER图。将该ER图转换为关系数据模型。答:实体:商店(商店编号,店号,店址,店经理)(0.5分)商品(商品编号,商品名,单价,产地)(0.5分)职工(职工编号,职工名,性别,工资)(0.5分)联系:P1商店销售商品的有销售量间(0.5分)P2职工参加某商店工作的开
18、始时(0.5分)ER图:(5分)关系模式集:商店模式(商店编号,店号,店址,店经理)(0.5分)商品模式(商品编号,商品名,单价,产地)(0.5分)职工模式(职工编号,职工名,性别,工资,商店编号,开始时间)分)P1模式(商店编号,商品编号,月销售量)(0.5分)2使用sql语句创建表authors,结构如下表所示(本题8分)列名数据类型大小是否为空默认值说明authorIDint4N编号(主键),自动增长authorNamenvarchar50N姓名Phonenvarchar13Y电话addressnvarchar255Y地址2.createtableauthors(authoridinti
19、dentity(1,1)primarykeynotnull,authornamenvarchar(50)notnull,phonenvarchar(13)null,addressnvarchar(255)3使用SQL语句对2中创建的authors表进行如下修改:(每小题5分,共15分)(1)添加Sex列char(2),city列varchar(20)。(2)删除city列。(3)修改作者信息表authors中的address列将该列的属性的长度更改为500。3.(1)altertableauthorsaddsexchar(2)null,citynvarchar(20)null;(2)alter
20、tableauthorsdropcolumncity(3)altertableauthorsaltercolumnaddressnvarchar(500)notnull5.表结构的修改1(使用SQL语句将ygqk表的“姓名”列的数据类型改为varchar,长度为20;使用SQL语句在xmqk表中添加新列立项时间,类型为datetime;使用SQL语句删除xmqk表中的立项时间列。useyeelgoaltertableygqkaltercolumnnamevarchar(20)useyeelgoaltertablexmqkaddlixiangshijiandatetimeuseyeelgoalt
21、ertablexmqkdropcolumnlixiangshijian4.表中数据的修改和删除使用SQL语句将ygqk表中第一条记录的邮政编码改为450044删除ygqk表中出生日期在1960-1-1日之前的员工信息;useyeelgoupdateygqksetzip=450044useyeelgodeleteygqkwherebirthdayaltertable成绩表add总成绩floatupdate成绩表set总成绩=数学+英语+数据库+操作系统/*4*/altertable成绩表add平均成绩floatupdate成绩表set平均成绩=(数学+英语+数据库+操作系统)/4selectsn
22、o学号,(数学+英语+数据库+操作系统)/4平均成绩from成绩表where数学=60and英语=60and数据库=60and操作系统=60/*5*/6.1.4函数的使用练习:1.查询男生(女生)的人数。2.查询计算06班的最小年龄selectcount(*)fromstudentwheressex=男selectmax(sbirthday)fromstudent6.1.5查询结果排序练习:1.查询所有学生的信息,将结果按系别降序、班级升序排列。2.查询信息系年龄最大的3个学生的信息select*fromstudentorderbydepartdescselecttop3sno,sname,s
23、age,departfromstudentwheredepart=信息系orderbysagedesc6.1.6使用分组练习:1.查询人数大于等于3的班级。2.查询各个姓氏的学生人数。selectclass,count(*)fromstudentgroupbyclasshavingcount(*)=3selectleft(sname,1)as姓氏,count(*)as人数fromstudentgroupbyleft(sname,1)6.2.1连接查询2.查询学生的学号,所选课程的课程号、课程名和学分。3.查询学生的学号、姓名,所选课程的课程号、课程名和成绩信息。selectsno,o,cnam
24、e,o=o/*92页题*/selectsname,student.sno,o,cname,degreefromcourse,score,studentwherestudent.sno=o=o/*92页题*/6.2.1连接查询3.查询每门课程间接先行课的先行课o,frist.cpno,second.cpno,third.cpnofrom课程表frist,课程表second,课程表thirdwherefrist.cpno=oandsecond.cpno=oandthird.cpnoisnotnull/*109页题*/6.2.3子查询练习:1.查询选修了C语言的学生学号。selectsnofromscorewherecno=(selectcnofromcoursewherecname=C语言)/*139页题*/6.2.3子查询3.查询选修了“C语言”的学生姓名selectsnamefromStudentwheresnoin(selectsnofromScorewherecno=(selectcnofromCoursewherecname=c语言)/*145页第三题*/第 10 页 共 10 页