数据库技术自检自测Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】自检自测4一. 单项选择题1.下列所述功能中,不属于SQL语言功能的是(D)。
A.数据表的定义功能B.数据查询功能C.数据增、删、改功能D.提供方便的用户操作界面功能2.设某职工表中有用于存放年龄(整数)的列,下列类型中最适合年龄列的是(C)。
A.intB.smallintC.tinyintD.bit3.设某学生表中有用于存放学生编号的列,下列类型中最适合的是(D)。
A.intB.dateC.tinyintD.char4.下列约束中用于限制列的取值范围的约束是(B)。
A.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE5.下列约束中用于限制列取值不重的约束是(D)。
A.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE6.下列约束中用于实现实体完整性的是(A)。
A.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE7.下列关于DEFAULT约束的说法,错误的是(D)。
A.一个DEFAULT约束只能约束表中的一个列B.在一个表上可以定义多个DEFAULT约束C.DEFAULT只能定义在列级完整性约束处D.在列级完整性约束和表级完整性约束处都可以定义DEFAULT约束8.下列为变量赋值的语句中,错误的是(D)。
A.SET @X = 10B.SELECT @X = 10C.SET @X = 10 + 10D.SET @X = 10 + 'A'9.设有表T,现要在该表新增加一个列,列名为:c1,类型为int。
下列能实现该功能的语句是(A)。
A.ALTER TABLE T ADD COLUMN c1 intB.ALTER TABLE T ADD (c1 int)C.ALTER TABLE T ADD COLUMN c1D.ALTER TABLE T ADD c110.设有表M,将其中的Type列的数据类型改为NCHAR(4)。
下列能实现该功能的语句是(B)。
A.ALTER TABLE M ADD COLUMN Type NCHAR(4)B.ALTER TABLE M ALTER COLUMN Type NCHAR(4)C.ALTER TABLE M DROP COLUMN Type NCHAR(4)D.ALTER TABLE M ALTER Type NCHAR(4)11. 下列(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的结果为:'Good morning'。
(╳)4.SsexNCHAR(1) DEFAULT '男'语句中的DEFAULT约束表示Ssex变量的默认值为'男'。
(√ )5.SageTINYINTCHECK(Sage>=22 AND Sage<=60)中的变量Sage只能取值在22到60之间。
(√ )三.简答题1.简述SQL语言的功能,每个功能的作用是什么?答:SQL按其功能可分为四大部分:数据定义、数据控制、数据查询和数据操作。
数据定义功能用于定义、删除和修改数据库中的对象;数据查询功能用于实现查询数据的功能,查询数据是数据库中使用最多的操作;数据操作功能用于增加、删除和修改数据;数据控制功能用于控制用户对数据库的操作权限。
2.Transact-SQL支持的主要数据类型有哪些?答:数值类型(包括准确数值类型和浮点数值类型)、字符串类型(包括统一字符编码的字符串类型和普通字符编码的字符串类型)、日期时间类型以及二进制数据类型。
四.综合应用题例1.计算两个变量的和,然后显示其结果:DECLARE @x int = 10, @y int = 20, @z intSET @z = @x + @yPrint @z解析:DECLARE @x int = 10, @y int = 20, @z int声明了三个整型变量x,y,z,其中x的初值为10,y的初值为20。
利用SET语句为z赋值Print语句的作用是向客户端返回Z的值。
例2.If语句使用示例。
DECLARE @x int, @y int, @z intSET @x = 40SET @y = 30IF (@x > @y )SET @z = @x - @yELSESET @z = @y - @xPrint @z解析:语句DECLARE @x int, @y int, @z int声明了三个整型变量x,y,z,语句SET @x = 40和SET @y = 30给出变量x的初值是40,y的初值是30,语句IF (@x > @y ) 进行判断,决定进入哪个分支。
本例中,程序进入SET @z = @x - @yZ值为10。
例3.计算1 + 2 + 3 + … + 100的值。
解析:DECLARE @i int, @sum intSET @i = 1SET @sum = 0WHILE @i <= 100BEGINSET @sum = @sum + @iSET @i = @i + 1ENDPRINT @sum例4.创建表并给出约束。
用SQL语句创建如下三张表:学生表(Student)、课程表(Course)和学生修课表(SC),这三张表的结构和约束如表4-1到表4-3所示。
表4-1 Student表结构表4-2 Course表结构表4-3 SC表结构解析:创建满足约束条件的上述三张表的SQL语句如下:CREATE TABLE Student (SnoCHAR(9) PRIMARY KEY,Sname NCHAR(5) NOT NULL,SIDCHAR(18) UNIQUE,Ssex NCHAR(1) DEFAULT '男',Sage TINYINTCHECK(Sage>=15 AND Sage<=45),Sdept NVARCHAR(20))CREATE TABLE Course (CnoCHAR(6 )PRIMARY KEY,Cname NVARCHAR(20) NOT NULL,Credit NUMERIC(3,1) CHECK(Credit>0),Semester TINYINT )CREATE TABLE SC (Sno CHAR(9) NOT NULL,Cno CHAR(6) NOT NULL,Grade TINYINT,PRIMARY KEY (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno) )例5.为SC表添加“修课类别”列,此列的定义为:Type NCHAR(1),允许空。
解析:ALTER TABLE SC ADD Type NCHAR(1)例6.将新添加的Type列的数据类型改为NCHAR(2)。
解析:ALTER TABLE SC ALTER COLUMN Type NCHAR(2)例7.为Type列添加限定取值范围为{必修,重修,选修}的约束。
解析:ALTER TABLE SCADD CHECK(Type IN ('必修', '重修', '选修') )例8.删除SC表的“Type”列。
解析:ALTER TABLE SC DROP COLUMN Type例9.“图书表”结构如下:书号:统一字符编码定长类型,长度为6,主键;书名:统一字符编码可变长类型,长度为30,非空;第一作者:普通编码定长字符类型,长度为10,非空;出版日期:日期型;价格:定点小数,小数部分1位,整数部分3位,默认值为20。
写出创建表的SQL语句,要求在定义表的同时定义数据的完整性约束。
(表名和列名用中文)解析:createtable 图书表(书号nchar(6) primary key,书名nvarchar(30 )not null,第一作者char(10) not null,出版日期date,价格numeric(4,1) default20)10.为图书表添加“印刷数量”列,类型为整数。
解析:altertable 图书表add 印刷数量int。