SqlServer复习
- 关系模型中,一个关键字是可有一个或多个其值能唯一表示该关系模式中任何元组的属性构成
- 数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,使用椭圆形图形表示
- 学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是一对多
- 数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构的特征的是模式
- 在数据管理技术的发展过程中,经历了三个阶段中,其中数据独立性最高的是数据库系统阶段
- 关系模型的结构是二维表结构
- 层次型、网状型和关系型数据库划分原则是数据之间的联系
- 数据模型通常由数据结构、数据操作和数据完整性约束三要素组成
- 大多数数据库系统总的体系结构上都具有三级模式
- E-R图是数据库设计的工具之一,它适用于建立数据库的概念模型
- 用树形结构表示实体一级实体键联系的数据模型为层次模型
- 数据库中,数据的逻辑独立性是指应用程序与数据库中数据的逻辑结构相互独立
- 在数据库的三级模式结构中,内模式有1个
- 数据库系统中,负责监督与控制数据库系统的使用和运行的人员是数据库管理员
- 数据库系统阶段的特点是结构化、数据独立、数据共享、统一管理和控制
- 有学生、选修和课程三个关系,S(学号,姓名,性别,年龄),C(课程号,课程名),SC(学号,课程号,成绩),外码(外键)是SC.学号
- 描述现实世界中各种具体事务或抽象概念的符号记录称为数据
- 在关系型数据库中,表与表时间的联系是通过参照完整性规则实现的
- 设属性A是关系R的主属性,则属性A不能取空值(NULL),这是因为实体完整性规则
- 关系规范化程度最高的是关系满足第三范式
- 数据库设计的关键阶段是需求分析阶段
- 从E-R模型向关系模型转换时,一个实体型转换为一个关系模式
- E-R图在概念上表示了一个数据库的信息组织情况,E-R图包括了实体、属性、联系这几种基本图素
- 设一位教师可讲授多门课程,一门课程可由多位讲师教授,教师与课程之间是多对多的联系
- UPDATE属于数据操纵语言
- 概念结构设计阶段得到的结果是E-R模型
- ALTER属于数据定义语言
- 如果想将一个SQL Server数据库中的数据复制到EXCEL电子表格中,可以采用SQL Server的导出数据功能
- 如果想修改数据库中某学生的成绩,采用UPDATE命令。
- 一个表中不是主关键字的候选关键字,用UNIQUE约束来设置
- DROP TABLE 学生表删除学生表
- 在创建学生表时,指定性别列取值范围是“男”或者“女”,这个约束叫做CHECK约束
- 如果想将一个EXCEL电子表格中的数据复制到SQL Server数据库中,可以采用SQL Server的导入数据功能
- 规定职工表的“部门”列只能取值为“人事部”、“销售部”、“技术部”、“管理部”:CHECK(部门 in(’人事部’,’销售部’,’技术部’,’管理部’))
- 在表中设置UNIQUE约束时,如果没有指定创建何种索引,系统将自动创建唯一性非聚集索引
- T-SQL提供的修改表的语句为ALTER TABLE
- 关系中每一行称为元祖,每一列称为属性
- E-R模型中,实体键的联系用菱形图形表示
- 实体之间的联系类型有三种,分别是 1对1、1对多和多对多
- 外模式是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述
- 内模式是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
- 数据库管理系统是数据库系统的一个重要组成部分,它的功能包括数据定义和操纵功能,数据库运行控制功能、数据库的建议和维护功能
- 数据库的三级模式结构和二级数据映像确保了数据的物理独立性和逻辑独立性
- 在数据库设计中,逻辑设计阶段是将E-R图转换成关系数据模型
- 数据库设计的需求分析中,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据
- 从数据管理的角度数据库技术经历了人工管理、文件系统、数据库管理三个发展阶段
- SqlServer中的数据库文件组分为主文件组和用户定义文件组
- 每个SqlServer2008数据库下都包括master、model、msdb、Tempdb四个系统数据库
- T-SQL语言的语法中,用方括号括起来某些内容,其含义是可选项语法
- SqlServer中,一个简单的数据库可以只用一个主数据文件和一个日志文件
- SqlServer2008的数据库分为系统数据库和用户数据库两种类型
- SqlServer中,一个简单的数据库可以只能有一个主数据文件,可以用0或多个次数据文件以及1或多个日志文件
- ALTER DATABASE命令的含义是修改数据库
- 数据库是SQL Server 2008存放表和索引等数据库对象的逻辑实体,数据库的存储结构分为逻辑存储结构和物理存储结构两种
- 创建一个数据库,名称为“STUDENT1”,其他所有参数均取默认值,其T-SQL语句为CREATE DATABASE STUDENT1
- DROP DATABASE命令的含义是删除数据库
- 将表中数据和表的结构从数据库中永久性地去除,T-SQL命令为DROP TABLE
- 当使用insert语句插入数据时,如果没有为某一列指定数据,那么DEFAULT约束就在该列中输入一个默认值
- T-SQL语句:DELETE 学生 WHERE 学号=’130100255’的含义是:删除学生表中“130100255”号学生的信息
- 在SQL中,主键约束的关键字为primary key,外键约束的关键字是foreign key
- 表中已经有了一个主键约束,如果需要在其他列上实现实体完整性,只能通过唯一性约束来实现
- 关系数据模型由哪三个要素组成:关系数据模型由关系数据结构、关系操作集合和关系完整性约束三部分组成
- 数据库的发展历史分哪几个阶段?各有什么特点?答:数据库技术经历了人工管理阶段、文件系统阶段和数据库系统三个阶段。
1)人工管理阶段
没有磁盘等直接存取存储设备;软件没有操作系统,没有管理数据的软件,没有高级语言,只有汇编语言。这个时期数据管理的特点是:(1)数据无独立性(2)数据不能共享
2)文件系统阶段
外部存储器已有磁盘、磁鼓等直接存取的存储设备;软件方面,出现了高级语言和操作系统,操作系统中的文件系统是专门管理外存的数据管理软件。这个阶段有如下几个特点:(1)数据以“文件”形式可长期保存在外部存储器的磁盘上(2)程序与数据之间具有了一定的独立性(3)程序与数据结构之间的依赖关系并未根本改变
3)数据库系统阶段
有了大容量的磁盘;软件方面,能够统一管理和共享数据的数据库管理系统应运而生。此阶段特点如下:(1)数据结构化 (2)较高的数据共享性 (3)较高的数据独立性 (4)数据由DBMS统一管理和控制 - 简述数据库管理系统的功能:答:数据库管理系统是数据库系统的核心软件,一般说来,其功能主要包括以下5个方面。
- 数据定义功能
- 数据操纵功能
- 数据库运行控制功能
- 数据库的组织、存储和管理
- 建立和维护数据库
- 什么是实体、属性、码、联系?实体的联系有哪三种?答:客观存在并可以相互区分的事物叫实体。
属性是实体所具有的某些特性,通过属性对实体进行描述。
一个实体往往有多个属性,这些属性之间是有关系的,它们构成该实体的属性集合。如果其中有一个属性或属性集能够唯一标识整个属性集合,则称该属性或属性集为该实体的码。
现实世界的事物之间是有联系的,即各实体型之间是有联系的。就两个实体型的联系来说,主要有以下3种情况:一对一联系(1:1)、一对多联系(1 : M)和多对多联系(M : N)。 - 名词解释:模式、内模式、外模式。答:模式是对数据库中全部数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
内模式是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
外模式是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。 - 数据库的三级模式和两级映像是什么。答:三级模式:外模式、模式和内模式。两级映像:外模式/模式映像,模式/内模式映像。
- 简述数据、数据库、数据库管理系统、数据库应用系统的概念。答:数据(Data) 是描述现实世界中各种具体事物或抽象概念的符号记录。
数据库(DataBase,简称DB)是指长期存储在计算机内有组织的、可共享的数据集合,即在计算机系统中按一定的数据模型组织、存储和使用的相关联的数据集合。
数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件。它建立在操作系统的基础上,位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的创建、查询、更新及各种数据控制等。
数据库应用系统:凡使用数据库技术管理其数据的系统都称为数据库应用系统。 - (1)创建学生表,包括学号(主键)、姓名(不允许为空)、身份证号(不允许为空)、性别(只能取男或女)、入学日期(默认值为系统当前日期)五个属性,要求类型和长度设置合适。(2)向学生表中插入一行数据:学号为“010221”,姓名为“张三”,身份证号为“130110190002020110”。(3)修改“张三”的身份证号为“130110199002020110”。
答:1)CREATE TABLE 学生( 学号 char(6) PRIMARY KEY,姓名 char(8) NOT NULL,身份证号 char(20) NOT NULL,入学日期 datetime DEFAULT getdate() ) (2)INSERT into 学生(学号,姓名,身份证号)VALUES(‘010221’,‘张三’,‘13011019000202110’)
(3)UPDATE 学生 SET身份证号=’130110199002020110’ WHERE姓名=’张三’ - 有学生选课表SC(S#,C#,GRADE),其中:S#为学号,C#为课程号,GRADE为成绩。查询成绩的平均值,平均值显示标题为“平均成绩”, 正确的T-SQL语句为:SELECT avg(GRADE) AS 平均成绩 FROM SC
- 有学生选课表SC(S#,C#,GRADE),其中:S#为学号,C#为课程号,GRADE为成绩。查询所有“成绩”为空的学生的学号、课程号和成绩,正确的T-SQL语句为:SELECT * FROM SC WHERE GRADE IS NULL
- SELECT中的FROM字句用于指定要从中检索数据的表名或视图名
- 有学生表S(S#,SN,SEX,AGE,DEPT) ,其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询男生和女生的人数,正确的T-SQL语句为SELECT SEX,count(SEX) 人数 FROM S GROUP BY SEX
- 有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,要想用T-SQL语句查询姓名中有“红”字的学生,条件表达式应写成SN LIKE ‘%红%’
- 有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询所有姓“张”的学生的信息,正确的T-SQL语句为SELECT * FROM S WHERE SN like ‘张%’
- 有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询”计算机”和”网络”系学生的姓名、学号和系名,正确的T-SQL语句为:SELECT SN,S#,DEPT FROM S WHERE DEPT IN (‘计算机’ , ‘网络’)
- 有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询学生表的系名称,滤掉重复行,正确的T-SQL语句为SELECT DISTINCT DEPT FROM S
- 模糊查找中,通配符示例LIKE 'abc%' 的含义为以任意一个字符开头,第3、4、5个字符为“abc”的字符串
- 有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询前三行学生信息,正确的T-SQL语句为:SELECT TOP 3 * FROM S
- 有课程表C (C#,CN,CRED),其中:C#为课程号,CN为课程名,CRED为学分。查询 “学分”最高的前两门课,正确的T-SQL语句为:SELECT TOP 2 * FROM C ORDER BY CRED DESC
- 有学生表S(S#,SN,SEX,AGE,DEPT),学生选课表SC(S#,C#,GRADE);其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,GRADE为成绩。查询查询选了课的学生的学号,正确T-SQL语句为SELECT S# FROM S EXCEPT SELECT S# FROM SC
- 有学生表S(S#,SN,SEX,AGE,DEPT) 其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,查询“计算机”系学生的学号、姓名和性别信息,并统计学生总人数,正确的T-SQL语句为SELECT S#,SN,SEX FROM S WHERE DEPT= ‘计算机’ COMPUTE COUNT(S#)
- 有学生表S(S#,SN,SEX,AGE,CLASS),学生选课表SC(S#,C#,GRADE);其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,CLASS为班级,C#为课程号,GRADE为成绩。将12网络工程班张丽选修的“C002”号课的成绩改为76分,正确的T-SQL语句为UPDATE SC SET GRADE=76 WHERE C#=‘C002’ AND S#=(SELECT S# FROM S WHERE SN=‘张丽’ AND CLASS=‘12级网络工程’)
- 有学生表S(S#,SN,SEX,AGE,DEPT),学生选课表SC(S#,C#,GRADE);其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,GRADE为成绩。T-SQL 查询语句“SELECT S# FROM S EXCEPT SELECT S# FROM SC”的含义为:查询没有选课的学生的学号
- 有学生表S(S#,SN,SEX,AGE,DEPT) 其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别。检索所有比“王华”年龄大的学生姓名、年龄和性别,正确的T-SQL语句为SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”)
- 以下局部变量的声明语句正确的是:DECLARE @a int,@b int
- 从游标中读取数据主要使用FETCH命令
- 因为多语句表值函数的返回值为table类型,所以在其他程序模块程序中调用此类函数时,只能通过SELECT语句
- 聚合函数不是用户自定义函数
- 假设标量函数average的功能为“求某门课的平均成绩”,如果需要求“C001”号课的平均成绩,则以下函数调用语句正确的是:SELECT dbo.average(‘C001’)
- 用户定义函数的创建命令为CREATE FUNCTION
- T-SQL语句SELECT UPPER (‘I am a student’)的运行结果为I AM A STUDENT
- T-SQL语句SELECT FLOOR(0.9) 的运行结果为0
- 用于删除字符串开始部分的空格的系统内置函数为LTRIM
- POWER不是SQL Server内置函数中的字符串函数
- LOWER不是SQL Server内置函数中的数学函数
- 以下局部变量的赋值语句正确的是SET @a =3
- 以下变量名中,完全合法的一组是:@x,@@y,@姓名,@myname
- GETDATE是非确定性函数,因为每次使用特定的输入值集调用时,可能返回不同的结果
- 有学生表S(S#,SN,SEX,AGE,DEPT),其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别。以简单CASE格式查询所有学生的所在系情况,包括学号,姓名和所在系的英文名,正确的T-SQL语句为:SELECT S#,SN, CASE DEPT WHEN ‘计算机’ THEN ‘Computer’ WHEN ‘网络’ THEN ‘Network’ WHEN ‘数学’ THEN ‘Math’ END AS DEPT FROM S
- 在使用IF…ELSE语句时,如果条件表达式中含有SELECT语句,必须用圆括号将SELECT语句括起来
- T-SQL编程中,加(+)运算、乘()运算、等于(= =)运算、与(&&)运算的优先级顺序由高到低是** 、+、= =、&&**
- 以下对索引的叙述错误的是:非聚集索引与表的物理顺序相同
- 关于视图的删除以下说法正确的是:视图的删除不会影响其所依附的基本表的数据
- SQL Server 2008提供了DROP VIEW语句删除视图
- 有学生的成绩表(学号,课程号,成绩),创建视图V1,求每个学生的平均成绩,正确的T-SQL语句为:CREATE VIEW V1 AS SELECT 学号,AVG(成绩) AS 平均分 FROM 成绩表 GROUP BY 学号
- 如果视图中没有包含表中某个不允许取空值又没有默认值约束的列,则不能利用视图插入数据
- 以下哪一个不是在视图上创建聚集索引之前视图必须满足的要求:创建视图时不能使用 SCHEMABINDING 选项
- 对于那些涉及对大量行进行复杂处理(如连接许多行)的视图,为每个引用视图的查询动态生成结果集的开销非常可观,可通过在视图上创建聚集、唯一索引来提高性能
- 执行语句CREATE TABLE 教师表(教师号char(6) PRAMARY KEY,姓名 char(8) UNIQUE )后,系统自动创建了两个索引,它们是:按“教师号”升序创建了一个聚集索引,按“姓名”升序创建了一个非聚集唯一索引
- 执行语句CREATE TABLE 学生表(学号char(6) PRAMARY KEY,姓名 char(8) )后,系统自动按“学号”创建了一个聚集、唯一、升序索引
- 若某视图依赖于多个基本表,如果想通过此视图插入、修改或删除基本表中的数据,以下操作可以进行的是修改
- 利用视图修改表中数据时,有可能插入并不满足视图查询的WHERE子句条件中的一行。为了限制此操作,可以在创建视图时使用WITH CHECK OPTION选项
- 创建“男生视图”,语句为CREATE VIEW 男生视图 AS SELECT 学号,姓名,性别,年龄 FROM 学生表WHERE 性别=‘男’,其中学生表中的学号为主键,以下语句可以执行的是:INSERT INTO 男生视图 VALUES (‘0110301’, ‘张三’, ‘女’, 20)
- SQL Server 2008提供了ALTER VIEW语句修改视图
- 创建视图V1,视图来自于学生表,其中包括“计算机”专业学生的学号和姓名。语句CREATE VIEW V1 SELECT 学号,姓名FROM 学生表WHERE 专业='计算机'的语法错误之处是:SELECT前缺少AS
- 可以执行系统存储过程sp_helptext,用于查看创建存储过程的命令语句
- 执行存储过程使用T-SQL 语句中的EXECUTE(或EXEC)命令
- SQL Server 2008中的许多管理活动都是通过一种特殊的存储过程执行的,这种存储过程被称为系统存储过程,系统过程主要存储在master数据库中并以**sp_**为前缀
- 某数据库中有学生表(学号,姓名,性别,年龄),创建带参数的存储过程,查询某个同学的基本信息,T-SQL语句为:CREATE PROCEDURE GetStudent @number char(7) AS SELECT * FROM 学生表 WHERE姓名=@姓名
- 在SQL Server Management Studio中可以直接浏览系统中的锁,也可以使用系统存储过程sp_helptext或查询系统表sys.dmtranlocks
- 如果要对某个元组加X锁,则需首先对关系及数据库加IS锁
- 常用的意向锁有三类:意向共享锁,简记为IS锁;意向排它锁,简记为IX锁;共享意向排他锁,简记为SIX锁
- 数据库中的锁是指一种软件机制,用来指示某个用户已经占用了某种资源,从而防止其他用户做出影响本用户的数据修改或导致数据库数据的非完整性和非一致性
- 事务处理的T-SQL语句中,提交一个事务的语句是commit tran[saction]
- 每条单独的T-SQL语句都是一个事务。根据运行模式的不同,SQL Server 2008将这种事务叫做自动提交事务
- 在SQL Server 2008中,事务要求处理时必须满足四个原则,即原子性(ACITVE)、一致性、隔离性和持久性
- 事务是并发控制的基本单元
- 事务处理的T-SQL语句中,回滚事务的语句是rollback transaction
- 事务:事务是一种机制、一个操作序列,包含了一组数据库操作命令
- 事务分为哪几类:显示声名的事务
自动提交事务
隐含事务 - 什么是事务?如果要提交或取消一个事务,使用什么语句?
事务就是需要在同一个处理单元中执行的一系列更新处理的集合
提交事务:commit tran[saction]
取消事务:rooback tran[saction] - 假设标量函数average的功能为“求某门课的平均成绩”,如果需要求“C001”号课的平均成绩,则以下函数调用语句正确的是:SELECT dbo.average(‘C001’)
- 视图可以视为另一种形式的表,是从一个或多个表中使用SELECT语句导出的虚表
- 删除“学生表”中名为“Index姓名”的索引,正确的T-SQL语句为:DROP INDEX 学生表. Index姓名
- 创建PRIMARY KEY或UNIQUE约束会在表中指定的列上自动创建唯一索引
- 一个表中最多只能创建一个聚集索引
- T-SQL的查询中,外连接可分为三类:左外连接、右外连接和全外连接
- 在SQL Server 中,可以通过SELECT语句来实现查询,即从数据库表中检索所需要的数据
- 在SELECT查询的WHERE子句中,连接多个条件,只要有一个条件成立就为真的逻辑运算符为OR
- 创建“男生视图”语句为:CREATE VIEW 男生视图 AS select 学号,姓名,性别,年龄from 学生表 where 性别=’男’,如果想防止通过此视图向“学生表”中插入一个“女”生,则需修改此视图,T-SQL语句为:CREATE VIEW 男生视图 AS select 学号,姓名,性别,年龄from 学生表 where 性别=’男’ with check option
- SQL Server 2008中,视图可以分为标准系统、索引视图和分区视图
- 视图创建完毕,就可以如同查询基本表一样通过视图查询所需要的数据
- 创建索引时如果使用了UNIQUE关键字表示创建的索引是唯一索引
- 创建“男生视图”语句为:CREATE VIEW 男生视图 AS select 学号,姓名,性别,年龄from 学生表 where 性别=’男’,从此视图查询17岁及以下男生信息的T-SQL语句为SELECT * FROM男生视图 WHERE 年龄<=17
- 简述游标的概念及类型:游标是处理数据的一种方法,它允许应用程序对查询语句SELECT 返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力,我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。
SQL Server 支持三种类型的游标:T-SQL 游标,API 服务器游标和客户游标。
由于API 游标和T-SQL 游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。服务器游标包含以下四种:静态游标、动态游标、只进游标、键集驱动游标。 - 什么是批处理?使用批处理有何限制?批处理的结束符是什么?
批处理是包含一个或多个T-SQL语句的集合,从应用程序一次性地发送到SQL Server 2012进行执行,因此可以节省系统开销。SQL Server 将批处理的语句编译为一个可执行单元,称为执行计划,批处理的结束符为“GO” - 注释有几类,它们分别是什么?
在T-SQL中可使用两类注释符:
(1) ANSI标准的注释符“–”用于单行注释;
(2) 与C语言相同的程序注释符号,即“/……/”,“/”用于程序注释开头,“/”用语程序注释结尾,可以在程序中多行文字标示为注释。 - 什么是局部变量?什么是全局变量?如何表示它们?
全局变量由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量。用户只能使用全局变量,不能对它们进行修改。全局变量的作用范围是整个SQL Server系统,任何程序都可以随时调用它们。
T-SQL语言中的变量是可以保存单个特定类型的数据值的对象,也称为局部变量,只在定义它们的批处理或过程中可见。在名称前加一个“@”符号为局部变量。 - 有学生表(学号,姓名,性别,年龄,学院)和学生的成绩表(学号,课程号,成绩),用函数实现下列题目: (1)求某个学院选修了某门课的学生人数。 (2)查询某个学院所有学生所选的每门课的平均成绩。
(1)CREATE FUNCTION renshu(@d char(10),@cn char(4)) RETURNS float
AS
BEGIN
DECLARE @cout float
SELECT @cout=( SELECT count(*) FROM 学生表,成绩表
WHERE学生表.学号=成绩表.学号 and课程号=@cn
and 学院=@d )
RETURN @cout
END
(2)CREATE FUNCTION average (@d char(10)) RETURNS table
AS RETURN
( SELECT 课程号,avg(成绩) FROM 学生表,成绩表
WHERE学生表.学号=成绩表.学号and 学院=@d
GROUP BY 课程号
) - 有三个表,分别为:商品(商品编号,商品名称,单价,生产商),仓库(仓库编号,仓库地址,电话,容量),库存(仓库编号,商品编号,库存数量)。 用SQL语句写出下列查询: (1)查询不是青岛生产的商品的信息。 (2)查询每个仓库“四川长虹”生产的商品的库存总量,并按降序排序。 (3)查询各生产厂家的商品库存总量,并存入”库存总量”表。 (4)删除“四川长虹”生产的商品的库存信息。
有三个表,分别为:商品(商品编号,商品名称,单价,生产商),仓库(仓库编号,仓库地址,电话,容量),库存(仓库编号,商品编号,库存数量)。 用SQL语句写出下列查询: (1)查询不是青岛生产的商品的信息。 (2)查询每个仓库“四川长虹”生产的商品的库存总量,并按降序排序。 (3)查询各生产厂家的商品库存总量,并存入”库存总量”表。 (4)删除“四川长虹”生产的商品的库存信息。 - 有学生表(学号,姓名,性别,年龄,专业)和学生的成绩表(学号,课程号,成绩),用函数实现下列题目: (1)求某门课的平均成绩。 (2)查询某个专业所有学生的学号、姓名、所选课程的课程号和成绩。
(1)CREATE FUNCTION average(@cn char(4)) RETURNS float
AS
BEGIN
DECLARE @aver float
SELECT @aver=( SELECT avg(成绩) FROM 成绩表 WHERE 课程号=@cn)
RETURN @aver
END
(2)CREATE FUNCTION stfunc(@major varchar(10)) RETURNS table
AS RETURN
( SELECT 学生表.学号, 学生表.姓名,课程号,成绩
FROM 学生表,成绩表
WHERE 专业=@major AND 学生表.学号=成绩表.学号) - 名词解释:游标
游标是处理数据的一种方法,它允许应用程序对查询语句SELECT 返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。 - 简述视图的优点。
(1) 为用户集中数据,简化用户的数据查询和处理。
(2)保证数据的逻辑独立性。
(3) 重新定制数据,使得数据便于共享。
(4) 提高了数据的安全性。 - 索引的优点
(1)大大加快数据的检索速度,这是创建索引的最主要的原因。
(2)创建唯一性索引,保证表中每一行数据的唯一性。
(3)加速表和表之间的连接。
(4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
(5)查询优化器可以提高系统的性能,但它是依靠索引起作用的。 - 聚集索引和非聚集索引有何异同?
聚集索引会对表和视图进行物理排序,所以这种索引对查询非常有效,在表和视图中只能有一个聚集索引。非聚集索引不会对表和视图进行物理排序。如果表中不存在聚集索引,则表是未排序的。 - 简述聚集索引和非聚集索引的区别。
聚集索引会对表和视图进行物理排序,所以这种索引对查询非常有效,在表和视图中只能有一个聚集索引。当建立主键约束时,如果表中没有聚集索引,SQL Server会用主键列作为聚集索引键。非聚集索引不会对表和视图进行物理排序。如果表中不存在聚集索引,则表是未排序的。在表或视图中,最多可以建立250个非聚集索引。 - 名词解释:视图
视图是一个虚表,可以视为另一种形式的表,是从一个或多个表中使用SELECT语句导出的虚表,那些用来导出视图的表称为基本表。用户通过视图来浏览数据表中感兴趣的部分或全部数据,而数据的物理存储位置仍然在基本表中。 - 数据库系统结构分为外模式、(概念模式)内模式三级模式结构。
- 实体间的联系类型有三种,分别为一对一,一对多和(多对多联系)
- SQL Server 提供了两种用户验证模式,即混合身份验证模式和(Windows 身份验证模式)
- 建立和使用(约束)的目的是为了保证数据的完整性
- 在一个表中可以定义(1)个聚焦索引,多个非聚焦索引
- SQL Server 中的数据表分为(永久表)和临时表
- 如果要回滚一个事务,应使用(rollback)语句
- 删除视图的命令是(drop view )。
- SQL Server 支持三种类型的游标,Transact-SQL 游标、API 游标、(客户)游标
- SQL Server 不具有数据的导入与导出功能。(错)
- 设计好的数据库管理系统再投入使用后出现问题由使用方负责。(错)
- 在数据库中建立的索引越多越好。(错)
- 并发性就是两个或两个以上的用户同时对数据执行的操作。(对)
- 主键字段允许为空。(错)第一范式