5SQL更新定义与安全控制.ppt
《5SQL更新定义与安全控制.ppt》由会员分享,可在线阅读,更多相关《5SQL更新定义与安全控制.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、swufe2.1关系数据库标准语言关系数据库标准语言关系数据库标准语言关系数据库标准语言SQLSQLn数据更新n数据定义n数据控制n嵌入式SQLswufe2.2新增数据新增数据n新增一门课程:(编号:10,名称:运筹学,学分:3)n“is系所有同学选修10号课程swufe2.3添加添加 数数 据据 命令命令 n插入数据:向指定表中插入一条或多条元组;nINSERTINTO()nVALUES()|子查询;nINTO子句n属性列的顺序可与表定义中的顺序不一致n可以只指定局部属性列必须包含主属性n如果不指定属性列:表示要插入的是一条完整的元组,且属性列顺序与表定义中的顺序一致不建议使用nVALUES
2、子句:用于插入知道具体属性值的单条元组;n子查询:用于插入从数据库中查询得到的多条元组;nVALUES子句提供的值n子查询SELECT子句的目标列必须与INTO子句匹配:值的个数值的类型swufe2.4添加数据例题续添加数据例题续添加数据例题续添加数据例题续现有一个新建的学生平均成绩表stu_avg(空表,用于存放每个学生的学号和平均成绩。SnoCHAR(8),Avg_gradenumber(5,1)请向表中插入数据:INSERTINTOstu_avg(Sno,Avg_grade)SELECTsno,AVG(grade)FROMScGROUPBYSno;swufe2.5修改数据修改数据修改数据
3、修改数据将所有学生的年龄增加1岁将10“课程名改为运筹学原理及应用,同时学分改为2将“IS系全体学生的成绩折算为总分值60分的成绩。swufe2.6修改数据命令修改数据命令修改指定表中满足WHERE子句条件的元组的指定列;UPDATE SET =,=WHERE ;注意:如果条件中涉及其他表的属性,应该在注意:如果条件中涉及其他表的属性,应该在WHERE中中用子查询。用子查询。swufe2.7删除数据删除数据删除年龄大于30岁的学生根本信息。删除“IS系的学生的选课记录。实际系统中删除信息不一定是真正的删除swufe2.8删除数据命令删除数据命令删除指定表中的元组DELETEFROMWHERE;
4、如果无WHERE子句,那么表示修改或删除表中的所有元组;如果WHERE条件中涉及其他表中的属性,使用子查询;swufe2.9更新数据与完整性约束更新数据与完整性约束更新数据与完整性约束更新数据与完整性约束DBMS在执行数据更新语句时会检查操作是否破坏表上已定义的完整性规那么:实体完整性:主属性不能插入空值;主码取值必须唯一。参照完整性:更新操作不能违背参照完整性;在删除某一外码引用的候选码值所在的行时,可能存在以下三种处理情况:不允许删除级联删除设为空值用户定义的完整性对于有NOTNULL约束的属性列是否提供了非空值对于有UNIQUE约束的属性列是否提供了非重复值对于有值域约束的属性列所提供的
5、属性值是否在值域范围内swufe2.10练习练习练习练习n将成绩在55到60之间的学生的成绩增加5分n将选修了学分大于3的课程的成绩增加5%n删除成绩为空的选修记录n删除学分为0的课程对应的选修信息n将“200215010,“张明,“20,“CS插入STUDENT表的SNO,SNAME,SAGE,SDEPTn200215010同学选修了所有课程swufe2.11数数 据据 定定 义义 swufe2.12定义根本表定义根本表CREATETABLE,;表名:所要定义的根本表的名字可以是模式名.表名列名:组成该表的各个属性列名列级完整性约束条件:涉及相应属性列的完整性约束条件表级完整性约束条件:涉及
6、一个或多个属性列的完整性约束条件swufe2.13SQL2标准中的常用数据类型标准中的常用数据类型n字符型字符型nchar(n)固定长度字符串固定长度字符串nvarchar(n)变长长度字符串变长长度字符串 ORACLE:VARCHAR2(N)n数值型数值型nInt 整型整型 NUMBER(P,D)nsmallint.短整型短整型(半字长整数半字长整数)nReal 双精度浮点型双精度浮点型nfloat(n)单精度浮点型,单精度浮点型,n为有效数位为有效数位nnumeric(p,d)/decimal(p,d 定点小数,定点小数,p为有效数位,为有效数位,d为小数位数。为小数位数。n日期时间型日期
7、时间型ndate.日期型日期型4位年。一般格式:位年。一般格式:yyyy-mm-dd 例如:例如:2004-7-27ntime.时间型。一般格式:时间型。一般格式:hh-mi-ss 例如:例如:09:00:30.75ntimestamp:时间戳。例如:时间戳。例如:.2001-7-27 09:00:30.75nBig object type(in oracle)nBlob;clob,nclob;BfilenRowid:nRowid,urowid数据类型确实定?数据类型确实定?swufe2.14常用完整性约束条件常用完整性约束条件n常用列级完整性约束条件nNOTNULLnPRIMARYKEY仅适
8、用于单属性主码nUNIQUEnCHECK定义域n常用表级完整性约束条件nPRIMARYKEY(主码)nCHECK(条件)nFOREIGNKEY(外码)REFERENCES表名与外码对应的主码nUNIQUE属性n数据约束与数据操作约束swufe2.15完整性约束处理完整性约束处理n定义n定义子句n命名:constraint名称定义子句n检查n数据更新语句增、删、改执行后或事务提交时n违约处理n拒绝操作NOACTION)n级联操作CASCADE)n设置为空SETNULLswufe2.16缺省值的设置缺省值的设置n列定义后跟:DEFAULT值n例如:createtablesc(gradenumber
9、(3,1)default0);swufe2.17定义根本表例题定义根本表例题 建立一个“学生表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号为主码,并且姓名取值非空。增加约束:Ssex取值为0表示男或1表示女;设置缺省值为0CREATETABLEStudent(SnoCHAR(5)PRIMARYKEY,SnameCHAR(20)constraints_nameNOTNULL,SsexCHAR(1),SageINT,SdeptCHAR(15);SsexCHAR(1)default0check(ssex=0orssex=1)swu
10、fe2.18例题例题 续续建立一个“学生选课表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。Grade取值0-100,Sno为外码,删除学生根本信息时,同时删除其选修信息。CREATE TABLE SC(Sno CHAR(5),Cno CHAR(3),Grade int check(grade=0 and grade=1ANDCREDIT=4);练习:建立一个“课程表course,它由课程号Cno,课程名cname、先修课pcno、学分credit组成,其中Cno为主码,cname 非空,学分为14,隐含为2。swufe2.20根据查询结果创立新表根
11、据查询结果创立新表nCREATETABLE表名(属性列表)AS子查询;e.gcreatetablesasselect*fromstudentwheresdept=is;swufe2.21修改根本表修改根本表ALTERTABLEADD或DROPcolumn|constraintMODIFY;:要修改的根本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的列或完整性约束条件很多数据库系统不支持删除列MODIFY子句:用于修改列的定义约束的重命名与禁止和激活swufe2.22修改根本表例题修改根本表例题 n向Student表增加“SCOME入学时间列,其数据类型为日期型。n不管根本表
12、中原来是否已有数据,新增加的列一律为空值n对SC增加CNO的参照完整性约束n将学生姓名的长度减少为10个字符n注:修改原有的列定义有可能会破坏已有数据n删除属性列很多数据库系统不支持该功能:swufe2.23删除根本表删除根本表 DROPTABLE;系统从数据字典中删去有关该根本表的描述删除Student表DROPTABLEStudent;swufe2.24索引索引 n建立索引是加快查询速度的有效手段n索引分类:聚簇索引ClusteredIndexn非聚簇索引:唯一索引、B树索引等n建立索引nDBA或表的属主即建立表的人根据需要建立n很多DBMS自动建立具有以下约束的列上的索引nPRIMARY
13、KEYnUNIQUEn维护和使用索引:DBMS自动完成swufe2.25建立和删除索引建立和删除索引 CREATEUNIQUECLUSTEREDINDEXON(,);索引可以建立在该表的一列或多列上,各列名之间用逗号分隔次序指索引值的排列次序,升序:ASC缺省值,降序:DESC。DROPINDEX;删除索引时,系统会从数据字典中删去有关该索引的描述ALTERindexrebuild;swufe2.26定义练习定义练习建立以下表和索引:1、书BOOK:书号BNO主码、书名BNAME非空、出版社PUBLISHER2、读者READER:学号SNO主码、姓名SNAME非空、班级SCLASS、可借书数量
14、SCOUNT取值为1-10,缺省为33、借书BORROW:学号SNO、书号BNO、借阅日期BDATE其中,学号SNO、书号BNO是主码学号SNO、书号BNO是两个外码4、为表BOOK按出版社升序建立索引IDX_BOOK5、在读者READER表中增加一个属性:性别SGENDER,取值为F女或M男6、将索引IDX_BOOK更名为IDX_PUBLISHER7、删除索引IDX_PUBLISHERswufe2.27视视视视 图图图图n视图的特点视图的特点n虚表,是从一个或几个根本表或视图导出的表虚表,是从一个或几个根本表或视图导出的表n数据库中只存放视图的定义,不会出现数据冗余数据库中只存放视图的定义,
15、不会出现数据冗余n基表中的数据发生变化,从视图中查询出的数据也随之改变基表中的数据发生变化,从视图中查询出的数据也随之改变n什么时候需要建立和使用视图?什么时候需要建立和使用视图?swufe2.28建立视图建立视图建立视图建立视图n语句格式CREATE VIEW ()AS WITH CHECK OPTION;省略视图的属性列:视图由子查询中SELECT目标列中的诸属性组成以下情况下需要明确指定视图的所有属性列:某个目标列是集函数或列表达式多表非自然连接时选出了同名属性需要在视图中为某个列启用新的更适宜的名字WITHCHECKOPTION带有WITHCHECKOPTION选项,表示通过视图进行增
16、删改操作时,不能破坏视图定义中子查询的条件表达式DBMS创立视图时只是把视图的定义存入数据字典,并不执行其中的SELECT语句。swufe2.29视图定义例题视图定义例题建立IS系学生的视图IS_Student。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERESdept=IS;或CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS WITH CHECK OPTION ;对修改操作、删除操作,DBMS自动加上Sdep
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 更新 定义 安全 控制
限制150内