7. 设有关系模式Student(Sno, Sname, Sex, Birthday),Course(Cno, Cname, Credit),SC(Sno,Cno, Grade)。若在SQL Server 2000中建有与以上模式对应的关系表,并有如下操作: Ⅰ.定义Sno是Student关系表的主码,定义Cno是Course关系表的主码,定义Sno,Cno是SC关系表的主码 Ⅱ.定义Student关系表Sex列的取值只能为”男,或“女”,定义Course关系表Credit列的取值范围是[1, 4] Ⅲ.在Student关系表的Sname列上建立一个非聚集索引,在Course关系表的Cname列上建立一个非聚集索引- Ⅳ.定义SC关系表的Sno列的取值不能为空,并且其镶一个值必须在Student关系表的Sno列的值集中 以上操作对内模式结构有影响的是 A) 仅Ⅰ和Ⅲ B) 仅Ⅱ和Ⅲ C) 仅Ⅰ和Ⅳ D ) 仅Ⅰ和Ⅱ
1. 在SQL Server 2000中,某数据库中有角色Role和用户User,User是Role角色的成员,且只属于该角色。先对Table表给Role只授予SELECT和DELETE权限,并授予User对T表具有SELECT、UPDATE和DENY DELETE权限,则用户User对Table表可以执行的操作是______。
假设某数据库中有表SC(S#,C#,Grade) ,各属性分别表示为学号,课程号,及相应的成绩。请补充如下查询语句,求各个课程号及相应的选课人数。 SELECT______ FROM SC ______
15.
C$,COUNT(S$)
16.
GROUP BY C$
三、设计与应用题
1. 在SQLServer 2000的某数据库中有如下两张关系表: 学生表(学号,姓名,性别,系号),学号为主码 系表(系号,系名,系简称),系号为主码 ①在数据库中执行如下Transact—SQL代码: DECLARE @ DeptID varchar (10) DECLARE @cnt int set @cnt=0 DECLARE cursor1 cursor FOR SELECT 系号 FROM 系表 WHERE 系名 LIKE '%电%' OPEN cursor1 FETCH NEXT FROM cursor1 INTO @DeptID WHILE@ @FETCH_STATUS= 0 BEGIN DECLARE @temp_cnt int SELECT @temp_cnt=COUNT(*) FROM 学生表 WHERE系号=@DeptID set @cnt=@cnt+@temp cnt FETCH NEXT FROM cursor1 INTO @DeptID END CLOSE cursor1 DEALLOCATE cursor1 SELECT @cnt 执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此Transact-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。 ②设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率?并说明原因。 SELECT*FROM学生表WHERE系号='1'; SELECT*FROM学生表WHERE姓名='张三';