电大数据库系统与应用形考册第4章习题集和参考答案.docx
第4章习题与参考答案一.单项选择题1.以下所述功能中,不属于SQL语言功能的是(D)oA.数据表的定义功能B.数据查询功能C.数据增、删、改功能D,提供方便的用户操作界面功能2 .设某职工表中有用于存放年龄(整数)的列,以下类型中最适合年龄列的是(C)。A. intB. SmallintC. tinyintD. bit3 .设某学生表中有用于存放学生编号的列,以下类型中最适合的是(D)。A. intB. dateC. tinyintD. char4 .以下约束中用于限制列的取值范围的约束是(B)。A. PRIMARYKEYB. CHECKC. DEFAULTD. UNIQUE5 .以下约束中用于限制列取值不重的约束是(D。A. PRIMARYKEYB. CHECKC. DEFAULTD. UNIQUE6 .以下约束中用于实现实体完整性的是(八)。A. PRIMARYKEYB. CHECKC. DEFAULTD. UNIQUE7 .以下关于DEFAULT约束的说法,错误的选项是(D)。A,一个DEFAULT约束只能约束表中的一个列8 .在一个表上可以定义多个DEFAULT约束C.DEFAULT只能定义在列级完整性约束处D.在列级完整性约束和表级完整性约束处都可以定义DEFAULT约束8 .以下为变量赋值的语句中,错误的选项是(D)。A. SETX=10B. SELECTX=10C. SETX=10+10D. SETX=10+,A'9 .设有表T,现要在该表新增加一个列,列名为:cl,类型为int0以下能实现该功能的语句是(八)。A. ALTERTABLETADDCOLUMNclintB. ALTERTABLETADD(c1int)C. ALTERTABLETADDCOLUMNc1D. ALTERTABLETADDcl10 .设有表M,将其中的TyPe列的数据类型改为NCHAR(4)。以下能实现该功能的语句是(B)oA. ALTERTABLEMADDCOLUMNTypeNCHAR(4)B. ALTERTABLEMALTERCOLUMNTypeNCHAR(4)C. ALTERTABLEMDROPCOLUMNTypeNCHAR(4)D. ALTERTABLEMALTERTypeNCHAR(4)H.以下(B)固定占用10个字节的空间。A. varchar(10)B. char(10)C. nchar(10)D. nvarchar(10)12.关于numeric(p,s)说法错误的选项是(C)。A. p代表整个数值的数字位数B. q代表小数点后的数字位数C. numeric(p,s)是近似数值类型D.最大的存储空间是17字节二.判断题1. decimal(p,s)数据类型属于字符型。(×)2. /*/之间的内容用于表示注释,对程序无影响。()3. 'Good'+morning的结果为:Goodmoniing'。(×)4. SsexNCHAR(I)DEFAUL男语句中的DEFAULT约束表示Ssex变量的默认值为,男,。N)5. SageTINYINTCHECK(Sage>=22ANDSage<=60)中的变量Sage只能取值在22到60之间。3)三.简答题1 .简述SQL语言的功能,每个功能的作用是什么答:SQL按其功能可分为四大局部:数据定义、数据控制、数据查询和数据操作。数据定义功能用于定义、删除和修改数据库中的对象;数据查询功能用于实现查询数据的功能,查询数据是数据库中使用最多的操作;数据操作功能用于增加、删除和修改数据;数据控制功能用于控制用户对数据库的操作权限。2 .TranSaCt-SQL支持的主要数据类型有哪些答:数值类型(包括准确数值类型和浮点数值类型)、字符串类型(包括统一字符编码的字符串类型和普通字符编码的字符串类型)、日期时间类型以及二进制数据类型。四.综合应用题例1.计算两个变量的和,然后显示其结果:DECLARExint=10,yint=20,zintSETz=x÷yPrintz解析:DECLARExint=10,yint=20,zint声明了三个整型变量x,y,z,其中X的初值为10,y的初值为20。利用SET语句为z赋值Print语句的作用是向客户端返回Z的值。例2.If语句使用例如。DECLARExint,yint,zintSETy=30IF(x>y)SETz=x-yELSESETz=y-xPrintz解析:语句DECLARExint,yint,zint声明了三个整型变量x,y,z,语句SETx=40和SETy=30给出变量x的初值是40,y的初值是30,语句IF(x>y)进展判断,决定进入哪个分支。本例中,程序进入SETZ=X-yZ值为IOo例3.计算1+2+3+100的值。解析:DECLAREiint,sumintSETi=1WHILEi<=100BEGINSETsum=sum+iSETi=i+1ENDPRINTsum例4.创立表并给出约束。用SQL语句创立如下三张表:学生表(Student),课程表(Course)和学生修课表(SC),这三张表的构造和约束如表4-1到表4-3所示。表4-1StUdent表构造列名含义数据类型约束Sno学号CHAR(7)i,Sname姓名NCHAR(5)非空SID身份证号CHAR(18)取值不重Ssex性别NCHAR(I)默认值为“男Sage年龄TINYINT取值范围为15-45Sdept所在系NVARCHAR(20)表4-2Course表构造列名含义数据类型约束Cno课程号CHAR(6)主键Cname课程名NVARCHAR(20)非空Credit学分NUMERIC(3J)大于OSemester学期TINYINT表4-3SC表构造列名含义数据类型约束Sno学号CHAR(7)主键,引用StUdent的外键Cno课程名CHAR(6)主键,引用Course的外键Grade成绩TINYINT解析:创立满足约束条件的上述三张表的SQL语句如下:CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameNCHAR(5)NOTNULL,SIDCHAR(18)UNIQUE,SsexNCHAR(I)DEFAULrr男',SageTINYINTCHECK(Sage>=15ANDSage<=45),SdeptNVARCHAR(20)CREATETABLECourse(CnoCHAR(6)PRIMARYKEY,CnameNVARCHAR(20)NOTNULL,CreditNUMERIC(3,1)CHECK(CredioO),SemesterTINYINT)CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(6)NOTNULL,GradeTINYINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno)例5.为SC表添加“修课类别”歹J,此列的定义为:TypeNCHAR(I),允许空。解析:ALTERTABLESCADDTypeNCHAR(I)例6.将新添加的Type列的数据类型改为NCHAR(2)。解析:ALTERTABLESCALTERCOLUMNTypeNCHAR(2)例7.为TyPe列添加限定取值范围为(必修,重修,选修的约束。解析:ALTERTABLESCADDCHECK(TypeIN(,必修重修丁选修)例8.删除SC表的“Type”列。解析:ALTERTABLESCDROPCOLUMNType例9.“图书表”构造如下:书号:统一字符编码定长类型,长度为6,主键;书名:统一字符编码可变长类型,长度为30,非空;第一普通编码定长字符类型,长度为10,非空;出版日期:日期型;价格:定点小数,小数局部1位,整数局部3位,默认值为20。(表名和列名写出创立表的SQL语句,要求在定义表的同时定义数据的完整性约束。用中文)解析:Createtable图书表(书号nchar(6)primarykey,书名nvarchar(30)notnull,第一作者char(10)notnull,出版日期date,价格numeric(4J)default20)10.为图书表添加“ER刷数量列,类型为整数。解析:altertable图书表add印刷数量int