江苏科技大学SQLServer笔试题.doc
SQL Server笔试题(Sql2008常见笔试题)试题1: 一 单词解释(2分/个) 34分Data 数据 Database 数据库 RDBMS 关系数据库管理系统 GRANT 授权REVOKE 取消权限 DENY 拒绝权限 DECLARE 定义变量 PROCEDURE存储过程事务 Transaction 触发器 TRIGGER 继续 continue 唯一 unqiue主键 primary key 标识列 identity 外键 foreign key 检查 check约束 constraint二 编写SQL语句(5分/题) 50分 (包含 笔试题问题和解答答案)1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话Create table stu (学号 int ,姓名 varchar(8),年龄 int,性别 varchar(4),家庭地址 varchar(50),联系电话 int);2) 修改学生表的结构,添加一列信息,学历Alter table stu add 学历 varchar(6);3) 修改学生表的结构,删除一列信息,家庭住址Alter table stu drop column 家庭地址4) 向学生表添加如下信息:学号 姓名年龄性别联系电话学历1A22男123456小学2B21男119中学3C23男110高中4D18女114大学Insert into stu values(1,A,22,男,123456,小学)Insert into stu values(2,B,21,男,119,中学)Insert into stu values(3,C,23,男,110,高中)Insert into stu values(4,D,18,女,114,大学)5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”Update stu set 学历=大专 where 联系电话 like 11%6) 删除学生表的数据,姓名以C开头,性别为男的记录删除Delect from stu where 性别=男 and 姓名 like c%7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来Select 姓名,学号 from stu where 年龄<22 and 学历=大专8) 查询学生表的数据,查询所有信息,列出前25%的记录Select top 25 percent * from stu9) 查询出所有学生的姓名,性别,年龄降序排列Select 姓名,性别 from stu order by 年龄 desc10) 按照性别分组查询所有的平均年龄Select avg(年龄) from stu group by 性别三 填空(3分/题) 36分 (包含 笔试题问题和解答答案)1) 索引分为_聚集索引_和_非聚集索引_在一张表上最多可以创建1个 聚集索引_索引。但是可以创建_249个非 聚集索引 索引。2) 系统存储过程_sp-helptext_是用来显示规则,默认值,未加密的存储过程,用户定义函数,触发或视图的文本3) 事务开始:begin Transction提交事务:commit Transction回滚事务:rollback Transction四 问答题(5分/题) 60分 (包含 笔试题问题和解答答案)1) 数据库包含哪些那几种后缀名的文件必须,这些文件分别存放在什么的信息?主要数据文件(.mdf) 包含数据用户收集的信息,还有数据库其他相关的信息,日志数据文件(.ndf) 存放用户对数据库的增删改查的信息,用于备份恢复使用2) TRUNCATE TABLE 命令是什么含义?和Delete from 表名有什么区?TRUNCATE TABLE: 提供了一种删除表中所有记录的快速方法Delete from 表名:可以删除表的一个或多条记录3) 说出以下聚合数的含义:avg ,sum ,max ,min , count ,count(*)AVG:求平均值SUM:求和MAX:求最大值MIN:求最小值COUNT(*):返回所有行数COUNT返回满足指定条件的记录值4) inner join 是什么意思?作用是什么?写出基本语法结构INNER JOIN 内联接,用于返回两个表中要查询的列数据通信Select * from 表名1 inner join 表名2 on 条件表达式5) 左向外联接,右向外联接,全联接的关健字如何写?Left outer join 左向外联接Right outer join 右向外联接Full outer join 全联接6) 子查询分为几类,说明相互之间的别了查询分三种基本子查询: 1.使用in 查询返回一列或更多值2.比较运算符,返回单个值勤做为外查询的参数3.用exists 查询时相当于进行一次数据测试7) 实现实体完整性,实现域完整性,实现 完整性(引用完整性),实现自定义完整性分别使用什么手段?实现实体完整性: 主键约束 唯一约束 标识列实现域完整性: 默认值约束 检查约束 非空属性引和完整性: 外键引用8) 视图可以更新吗?会影响到实际表吗?视图是可以更新的,视图只是基于基本表上的虚拟表,对视图的更新会直接影响到实际表9) 谈谈这样几个角色, dbo , Sysadmin publicDbo : 是数据库的拥有者,对数据库拥有所有操作的权限Sysadmin : 可以对SQL SERVER执行任何活动Public : 自动创建的,能捕获数据库中用户的所有默认权限10) 何为动态游标?何为静态游标?动态游标及静态游标相对,反映结果集中所做的所有更改,静态游标的结果集在游标打开时,建立在tempdb中,总按照游标打开时的原样显示11) 什么是存储过程?为什么存储过程要比单纯的Sql 语句执行起来要快?存储过程:是一组预先编译好的T-SQL代码在创建存储过程时经过了语法和性能优化,执行不必重复的步骤,使用存储过程可提高运行效率12)什么是Inserted 表 ?什么是Deleted 表?Inserted表用于存储inserted和update语句影响的副本Deleted 表用于存储delect 和 update语句影响的行的副本选择题:(20分) 1、根据关系数据基于的数据模型关系模型的特征判断下列正确的一项:(_ B _) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。 C、能体现一对多、多对多的关系,但不能体现一对一的关系。 D、关系模型数据库是数据库发展的最初阶段。 2、在“连接”组中有两种连接认证方式,其中在(_ B _)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。 A、Windows身份验证 B、SQL Server 身份验证 C、以超级用户身份登录时 D、其他方式登录时 3、SQL Server 2000 在安装之前,应注意的事项:(_ C _) A、SQL Server 2000的任何版本在安装时都不用考虑操作系统的制约。 B、SQL Server 2000的安装对硬件的要求不作任何限制。 C、SQL Server 2000 在安装之前,必须在操作系统级启用TCP/IP。 D、在Windows NT Server 4.0上安装SQL Server 2000时,最低的要求是必须安装Service Pack 4(SP4)以上。 4、关系数据库中,主键是(1_A_),主键的建立有(2_C_)种方法,当运用Transact-SQL语句创建主键时,可以是(3 B_)。 A、为标识表中唯一的实体 B、创建唯一的索引,允许空值 C、只允许以表中第一字段建立 D、允许有多个主键的 A、一 B、二 C、三 D、四 A、create table table1 (column1 char(13) not null primary, column2 int not) on primary; B、alter table table1 with notcheck add constraint PK_table1 primary key nonclustered ( column1) on primary; C、alter table table1 column1 primary key ; 5、表在数据库中是一个非常重要的数据对象,它是用来(1C_)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2_D_)等方法来创建。 A、显示 B、查询 C、存放 D、检索 A、企业管理器 B、查询分析器 C、OSQL D、企业管理器和CREATE TABLE语句 6、为数据表创建索引的目的是(1_A_),可以在创建表时用(2_C_)来创建唯一索引,也可以用(2_)来创建唯一索引。 A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类 A、设置主键约束,设置唯一约束 B、Create table,Create index C、设置主键约束,Create index D、以上都可以7、 在Transact-SQL语法中,用来插入数据的命令是(A_),用于更新的命令是(_A_)。 A、INSERT,UPDATE B、UPDATE,INSERT C、DELETE,UPDATE D、CREATE,INSERT INTO 8、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1_B_),使用关键字(2_A_)可以把重复行 屏蔽,将多个查询结果返回一个结果集合的运算符是(3B_),如果在SELECT语句中使用集合函数时,一定在后面使用(4_A_)。 A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT A、DISTINCT B、UNION C、ALL C、TOP A、JOIN B、UNION C、INTO C、LIKE A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE 9、视图是一种常用的数据对象,它是提供(1_A_)和(1_)数据的另一种途径,可以简化数据库操作,当使用多个数据表来建立视图时,表的连接不能使用(2_A_)方式,并且不允许在该语句中包括(3B_)等关键字。 A、查看,存放 B、查看,检索 C、插入,更新 D、检索,插入 A、外连接 B、内连接 C、左连接 D、右连接 A、ORDER BY,COMPUTE B、ORDER BY,COMPUTE,COMPUTR BY C、ORDER BY,COMPUTE BY,GROUP BY D、GROUP BY,COMPUTE BY 10、在SQL SERVER服务器上,存储过程是一组预先定义并(1_B_)的Transact-SQL语句。可以用(2_D_)来声明游标。 A、保存 B、编译 C、解释 D、编写 A、CREATE CURSOR B、ALTER CURSOR C、SET CURSOR D、DECLARE CURSOR 填空题:(20分) 1、 更改 Microsoft SQL Server 登录的密码的命令是_ Sp_password _,2、 举例说明其语法格式:_ sp_password “12345”,”54321”_。 3、 Windows NT 授权认证模式只适用于_ Windows NT _平台,4、 对于Windows95/98操作系统下的SQL Server系统将不适用。 6、 SQL Server中索引类型包括的三种类型分别是_唯一索引,簇索引, _和_非簇索引_。 7、 在SELECT语句的FROM子句中最多可以指定_256_个表或视图, 相互之间要用_逗号_分隔,当所查询的表 不在当前数据库时,可用_”数据库.所有者名称.对象名称”_格式来指出表或视图对象。 14、 服务器网络实用工具的目的_为客户端网络实用工具提供参数_。 16、 在当SQL SERVER实例中有DBOA数据库,要将它设置成为单用户状态,请写出设置命令:_ sp_dboption DBOA,single use,true_。 19、 删除表命令是:_ drop table _。 20、 用SELECT进行模糊查询时,可以使用 like _或_ not like _匹配符,但要在条件值中使用_%_或_-_等通配符来配合查询。并且模糊查询只能针对字段类型是 字符_的查询。 24、 计算字段的累加和的函数是:_ Sum()_, 统计项目数的函数是: Count()_。 10、SQL SERVER 中的编程语言就是_ TranSact_SQL _语言。 判断题(10分) 1、在CREATE INDEX语句中,使用CLUSTERED来建立簇索引。( ) 2、可以在企业管理器中修改数据库的名称。(× ) 3、恢复数据,可以在查询分析器中使用这样的命令: BACKUP DATABASE database_name FROM backup ( × ) 4、在查询分析器中修改帐户时可以用系统存储过程Sp_modibaccess。( × ) 5、每个存储过程向调用方返回一个整数返回代码。如果存储过程没有显式设置返回代码的值,则返回代码为 0,表示成功。 6、在 Transact-SQL 语句中,对不符合所有标识符规则的标识符必须进行分隔。 7、在SQL SERVER中,触发器的执行是在数据的插入、更新或删除之前执行的。 ×8、在 Transact-SQL 语句的WHERE子句中,完全可以用IN子查询来代替OR逻辑表达式。× 9、通配符“_”表示某单个字符。 10、因为通过视图可以插入、修改或删除数据,因此视图也是一个实在表,SQL SERVER将它保存在syscommens系统表中。 ×简答题:(20分) 26、 写出关系型数据库的第一、第二、第三标准形式的各自要求。 第一标、 准形式:由原子值和主键值组成, 数据表中的每一个字段都不可以再分。(同一数据表中同类字段不允许重复出现,在一个字段内也不允许放置多个数据项) 第二标准形式:要求所有的非关键字段完全依赖于主键。(或类似的解释) 第三标准形式:每一个非主键字段列中没有可传递的的依赖性。(一个非主键列不能依赖于另一个非主键列) 28、 触发器的类型以及相对的语句命令? INSERT触发器、UPDATE触发器、DELETE触发器 相对应的语句:INSERT语句、UPDATE语句、DELETE语句 29、 自定义函数的类型?各自原返回值。 自定义函数类型:标量函数 返回值:单个数据值 内嵌表值函数 返回值:table, 多语句表值函数 返回值:table 30、 用户权限的种类有哪些?各自的作用? 对象权限 作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限 语句权限 作用:决定用户能否操作数据库和创建数据库对象 隐含权限 作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。分析编码题(20分) 31、 请使用Transact-SQL 建立如下表: 表名:雇员基本信息表; 字段名 数据类型 宽度 精度 可空性 要求 NO_ID CHAR 7 NOT NULL 设为主键 NAME CHAR 10 NOT NULL SEX CHAR 2 NOT NULL 默认值为”男” AGE INT NOT NULL DEPT VARCHAR 50 NULL PHONE VARCHAR 20 NULL NOTES VARCHAR 50 NULL CREATE TABLE 雇员基本信息表2分 (NO_ID char(7) not null primary key,2分 NAME char(10) not null,1分 SEX char( 2) not null default 男,2分 AGE int not null,1分 DEPT varchar(50) null,1分 PHONE varchar(20) null,0.5分 NOTES varchar(50) null0.5分 ) 32、 现有1销售表,33、 它们结构如下: id int (标识号) codno char(7) (商品编码) codname varchar(30) (商品名称) spec varchar(20) (商品规格) price numeric(10,2) (价格) sellnum int (销售数量) deptno char(3) (售出分店编码) selldate datetime (销售时间) 要求:写出查询销售时间段在2002-2-15日到2002-4-29之间,分店编码是01的所有记录。 SELECT * FROM 销售表 WHERE (selldate >= '2002-2-15' AND selldate <='2002-4-29') AND deptno = '01' 34、 在table1数据表中增加“No_id”字段, 数据类型char(12), 不可空,并将其设定为UNIQUE约束, 写出其命令语句。 ALTER TABLE table1 ADD No_id CHAR(12) NOT NULL CONSTRAINT table1_unique UNIQUE 编程填空题:(10分)填写出下列触发器中缺少的关键字,使下面语句完整: if update(lcostprice) update b_drug_data set scostprice = (select lcostprice from inserted _ GROUP BY _ codno,lcostprice,scostprice _ HAVING _ b_drug_data.codno = inserted.codno)/ (select fsco from b_drug_data _ GROUP BY _ codno,fsco _ HAVING _ b_drug_data.codno = (select codno from inserted group by codno) where b_drug_data.codno _ IN _ (select codno from inserted) *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*网络数据库SQL模拟试题参考答案 选择题:(20分) 注:每个选空1分 1、B,2、B,3、C,4、 A,C,B,5、C,D,6、A,C 7、A,A 8、B,A,B,A,9、A,A,B,10、B,D 填空题:(20分) 注:每空1分 1、 Sp_password,sp_password “12345”,”54321”,”abc” 2、 Windows NT 3、 唯一索引,簇索引,非簇索引 4、 256,逗号,”数据库.所有者名称.对象名称” 5、 为客户端网络实用工具提供参数。 6、 sp_dboption DBOA,single use,true 7、 drop table 8、 like,not like,”%”,”_”,字符 9、 Sum(),Count() 10、TranSact_SQL 判断题:(10分,每题1分) 1、 2、× 3、× 4、× 5、 6、 7、× 8、× 9、 10、× 简答题:(20分,1、2题每题5分) 1、 第一标、 准形式:由原子值和主键值组成, 数据表中的每一个字段都不可以再分。(同一数据表中同类字段不允许重复出现,在一个字段内也不允许放置多个数据项) 第二标准形式:要求所有的非关键字段完全依赖于主键。(或类似的解释) 第三标准形式:每一个非主键字段列中没有可传递的的依赖性。(一个非主键列不能依赖于另一个非主键列) 2、 类型:INSERT触发器、UPDATE触发器、DELETE触发器 相对应的语句:INSERT语句、UPDATE语句、DELETE语句 11、 自定义函数类型:标量函数 返回值:单个数据值 内嵌表值函数 返回值:table, 多语句表值函数 返回值:table 4、 权限类型及作用: 对象权限 作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限 语句权限 作用:决定用户能否操作数据库和创建数据库对象 隐含权限 作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。 五、(20分,1题10分,2题5 分,3题5分) 1、(答案中的英语单词不允许错误,男字只能用单引号括起来,否则不给分;) CREATE TABLE 雇员基本信息表2分 (NO_ID char(7) not null primary key,2分 NAME char(10) not null,1分 SEX char( 2) not null default 男,2分 AGE int not null,1分 DEPT varchar(50) null,1分 PHONE varchar(20) null,0.5分 NOTES varchar(50) null0.5分 ) 2、(答案中的英语单词不允许错误,日期要用引号括起来,否则不给分) SELECT * FROM 销售表 WHERE (selldate >= '2002-2-15' AND selldate <='2002-4-29') AND deptno = '01' 3、(答案中的大写单词不允许错误,其他不作要求) ALTER TABLE table1 ADD No_id CHAR(12) NOT NULL CONSTRAINT table1_unique UNIQUE (每空2分,共10分) GROUP BY,HAVING,GROUP BY,HAVING,IN*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*SQL Server数据库试题九及答案一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:( C)A.CREAT TABLE B.CREAT CURSOR C.UPDATE D.ALTER TABLE2、SQL数据库中的视图及下列哪项是对应的(C )。A.关系模式 B.存储模式 C.子模式 D.以上都不是3、下列选项中不是数据库复制类型的是( )。A.快照复制 B.差异复制 C.事务复制 D.合并复制4、下列说法错误的是: ( D)。A.一个基本表可以跨一个或多个存储文件B. 一个存储文件可以跨一个或多个基本表C.每个存储文件及外部存储器上一个物理文件对应D.每个基本表及外部存储器上一个物理文件对应5显示包含警告信息或其他信息的消息框,应该使用的操作是( D)。AEcho BMessage CWarn DMsgBox6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是(C )。A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引7. SQL Server的字符型系统数据类型主要包括( B)。A. Int、money、char B. char、varchar、textC. datetime、binary、int D. char、varchar、int8、以下选项中哪一项不是访问数据库系统的接口(C )。A.ODBC B.OLE DB C.API D.ADO9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是(A )A.* B.% C.- D.?10、SELECT语句中及HAVING子句同时使用的是( C)子句。A.ORDER BY B.WHERE C.GROUP BY D.无需配合1115题使用如下数据:当前盘当前目录下有数据库db_stock,其中有表stock的内容是:股票代码 股票名称 单价 交易所600600 青岛啤酒 7.48 上海600601 方正科技 15.20 上海600602 广电电子 10.40 上海600603 兴业房产 12.76 上海600604 二纺机 9.96 上海600605 轻工机械 14.59 上海000001 深发展 7.48 深圳000002 深万科 12.50 深圳11、有如下SQL语句create view stock_view as select * from stock where 交易所=”深圳”执行该语句后产生的视图包含的记录个数是( B)A.1 B.2 C.3 D.412、有如下SQL语句create view view_stock as select 股票名称 as 名称,单价 from stock执行该语句后产生的视图含有的字段名是(B )A.股票、名称、单价 B.名称、单价C 名称、单价、交易所 D 股票名称、单价、交易所13、执行如下SQL语句后select distinct 单价 from stock where 单价=(select min(单价) from stock)into dbf stock_x表stock_x中的记录个数是 (A)A.1 B.2 C.3 D.414、求每个交易所的平均单价的SQL语句是(D )A.SELECT(交易所,avg(单价)FROM stock GROUP BY 单价B. SELECT(交易所,avg(单价)FROM stock ORDER BY 单价C. SELECT(交易所,avg(单价)FROM stock ORDER BY 交易所D. SELECT(交易所,avg(单价)FROM stock GROUP BY交易所15、在当前盘当前目录下删除表stock的命令是( C)A.DROP stock B.DELETE TABLE stockC.DROP TABLE stock C.DELETE stock二、填空题(每空2分,共30分)1、SQL Server 2000支持5种类型的存储过程:系统存储过程、本地存储过程、远程存储过程临时存储过程、 和扩展存储过程。2、在Microsoft SQL Server系统中,数据库备份的类型包括:数据库备份、事务日志备份、差异备份和文件和文件组备份。3、触发器有3种类型,即INSERT类型、UPDATE类型和 DELETE类型。4、TransactSQL语言有4部分元素组成,分别是:数据控制语言(或DCL) 、数据定义语言、数据操作语言(或DML) 和一些附加的语言元素。1、2、3、4、5、事务的4个属性:原子性、一致性、隔离性和持久性。6、ADO的对象模型为层次结构,主要的ADO对象有3个:Connection 、Command 、和Recordset 。7、函数datediff(year,1998-10-12, 2005-1-17)的执行结果是7 ;函数str(1234.56,3,1)的执行结果是 *。三、简答题(共3题,20分) 2、简述INSERT触发器的工作原理(6分)答: 1、 为什么要创建索引(4分)创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加速表及表之间的连接,特别是实现数据的参考完整性方面特有意义。第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。2、 简述INSERT触发器的工作原理(6分)当向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。该inserted表是逻辑表,保存了所插入记录的拷贝,允许用户参考INSERT语句中的数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的哪些记录,总是触发表中一行或多行记录的冗余。3、根据所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的SQL查询语句。(每小题2分,共10分)在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int) 商品表2(商品代号 char(8),产地 char(6),品牌 char(6),)在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int)课程(课程号 char(4),课程名 char(10),课程学分 int选课(学生号 char(7),课程号 char(4),成绩 int)1select distinct 产地from 商品表2从商品库中查询出所有商品的不同产地。2select *from 学生where 学生号 in (select 学生号from 选课group by 学生号 having count(*)=1) 从教学库中查询出只选修了一门课程的全部学生。3select *from 学生where 学生号 in (select 学生号from 选课group by 学生号 having count(*)<=2 ) or not exists (select *from 选课where 学生.学生号=选课.学生号) 从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。4从商品库中查询出每类(即分类名相同)商品的最高单价。select 分类名,max(单价) as 最高单价 from 商品表1group by 分类名5从教学库中查询出至少选修了姓名为m1学生所选课程中一门课的全部学生。select distinct 学生.* from 学生,选课where 学生.学生号=选课.学生号 and 课程号=any(select 课程号from 学生,选课where 学生.学生号=选课.学生号 and 姓名=m1 )四、设计题(每题4分,共20分)有一个“学生课程”数据库,数据库中包括三个表:(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。(2) “课程”表Course由课程号(Cno)