资源描述
第三章课后习题,1、试述SQL语言的特点。1、综合统一2、高度非过程化3、面向集合的操作方式4、以同一种语法结构提供两种使用方式5、语言简捷,易学易用,2、试述SQL语言的功能。(1)数据定义(2)数据操纵(3)数据控制(4)嵌入式SQL和动态SQL,3、使用SQL语句建立第2章习题7中的4个表对于S表:S(SNO,SNAME,STATUS,CITY);建S表:CREATETABLES(SnoCHAR(2)PK,nameeCHAR(6),StatusCHAR(2),cityCHAR(4);,对于P表:P(PNO,PNAME,COLOR,WEIGHT);建P表:CREATETABLEP(PnoC(2)PK,PnameC(6),COLORC(2),WEIGHTINT);,对于J表:J(JNO,JNAME,CITY);建J表:CREATETABLEJ(JnoC(2)PK,JNAMEC(8),CITYC(4),建SPJ表:SPJ(SNO,PNO,JNO,QTY)CREATETABLESPJ(SNOC(2),PNOC(2),JNOC(2),QTYINT),PK(SNO,PNO,JNO),FK(SNO)REFERENCESS(SNO),FK(PNO)REFERENCESP(PNO),FK(JNO)REFERENCESJ(JNO);,4、完成第二章习题7中的查询。(1)SELECTDISTINCTSNOFROMSPJWHEREJNO=J1(2)SELECTDISTINCTSNOFROMSPJWHEREJNO=J1ANDPNO=P1,(3)SELECTSNOFROMSPJ,PWHEREJNO=J1ANDSPJ.PNO=P.PNOANDCOLOR=红,(4)SELECTDISTJNOFROMSPJWHEREJNONOTIN(SELECTJNOFROMSPJ,P,SWHERES.CITY=天津ANDCOLOR=红ANDS.SNO=SPJ.SNOANDP.PNO=SPJ.PNO),(5)SELECTJNOFROMSPJXWHERENOTEXISTS(SELECTPNOFROMSPJWHERESNO=S1)EXCEPT(SELECTPNOFROMSPJWHERESNO=X.SNO)ANDX.SNO!=S1;,5、针对习题3中的4各表使用SQL完成操作(1)SELECTSNAME,CITYFROMS(2)SELECTPNAME,COLOR,WEIGHTFROMP(3)SELECTDISTJNOFROMSPJWHERESNO=S1(4)SELECTPNAME,QTYFROMSPJ,PWHEREP.PNO=SPJ.PNOANDSPJ.JNO=J2,(5)SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDCITY=上海(6)SELECTJNAMEFROMSPJ,S,JWHERES.SNO=SPJ.SNOANDS.CITY=上海ANDJ.JNO=SPJ.JNO,(7)SELECTJNOFROMSPJWHEREJNONOTIN(SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY=天津),(8)UPDATEPSETCOLOR=蓝WHERECOLOR=红(9)UPDATESPJSETSNO=S3WHERESNO=S5ANDJNO=J4ANDPNO=P6(10)A、DELETEFROMSWHERESNO=S2B、DELETEFROMSPJWHERESNO=S2(11)INSERTINTOSPJVALUES(S2,J6,P4,200),6、表和视图的区别和联系。基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。,7、视图的优点视图能够简化用户的操作视图使用户能以多种角度看待同一数据视图对重构数据库提供了一定程度的逻辑独立性;视图能够对机密数据提供安全保护。,8、所有的视图是否都可以更新?不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。,9、举例说哪类视图可以,不可以更新。基本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。,11、CREATEVIEWSPQASSELECTSNO,PNO,QTYFROMSPJ,JWHERESPJ.JNO=J.JNOANDJ.JNAME=三建(1)SELECTDISTPNO,QTYFROMSPQ(2)SELECTDIST*FROMSPQWHERESNO=S1,12、(1)GRANTINSERTONTABLESTO张勇WITHGRANTOPTION;(2)GRANTUPDATE(QTY),SELECTONTABLESPJTO李天明;,13、(1)INSERTINTOSC(Sno,Cno,Grade)VALUES(2000012,1128,NULL);(2)SELECTSno,CnoFROMSCWHEREGradeISNULL;,(3)SELECTcname,gradeFROMcourse,ScWHEREo=oANDcname=英语orderbygrade,14、(1)GRANTSELECTON职工,部门TO王明(2)GRANTINSERT,DELETEON职工,部门TO李勇(3)GRANTSELECTON职工WHENUSER()=NAMETOALL(4)GRANTSELECT,UPDATE(工资)ON职工TO刘星,(5)GRANTALTERTABLEON职工,部门TO张新(6)GRANTALLPRIVILIGESON职工,部门TO周平WITHGRANTOPTION;,(7)CREATEVIEW部门工资ASSELECT部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM职工,部门WHERE职工.部门号=部门.部门号GROUPBY职工.部门号GRANTSELECTON部门工资TO杨兰;,
展开阅读全文