SQL-2008实训含答案
sql server 2008案例教程及实训 第3章 数据类型与常用函数

3.1
系统数据类型
3.2
用户自定义数据类型
3.3
系统内置函数
认识表:
4个字段
3条记录
记录:表中的每一行被称为一条记录,表 由一条和多条记录组成。
字段:表中每一列成为一个字段,一张表 中最多有1024个字段。
数据类型:
在创建表的时候,要为表中的每个字 段定义一种数据类型,即每个字段数据的 格式,因此要对字段中的数据类型进行定 义。
例如:当不知道或暂时没有数据填入表格时, 可以使用___NULL_____.
3.2 用户自定义数据类型
1.创建用户自定义数据类型
创建用户自定义数据类型可以使用 Transact-SQL语句。 语法格式如下:
sp_addtype {新数据类型名},[,系统 数据类型][,'null_type']
【例3.1】创建一个用户定义的数据类型 CellPhone,其基于的系统数据类型是定长为11 的字符,不允许空。
【例3.10】计算半径为2CM的圆的周长。 Select 2*PI()*2
返回值为12.5663706143592。
3.3.1 数学函数
8. POWER函数 POWER函数用于返回数值表达式1的数值
表达式2次幂的结果,其语法格式如下: POWER(数值表达式1,数值表达式2)
【例3.11】计算9的三次方。 Select POWER(9,3)
返回值为729。
3.3.1 数学函数
9. ROUND函数 ROUND函数返回数值表达式指定精度的四
舍五入的结果,返回的数值和原数值的总位数没 有变化,其语法格式如下:
3.1.2 精确数字类型
数
sql-server-2008-数据库应用与开发教程--课后习题参考答案

sql-server-2008-数据库应用与开发教程--课后习题参考答案SQL Server 2008数据库应用与开发教程(第二版)第一章习题参考答案1.简述SQL Server 2008系统中主要数据库对象的特点。
答:主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。
“表”节点中包含了数据库最基本、最重要的对象——表。
表实际用来存储系统数据和用户数据,是最核心的数据库对象。
“视图”节点包含了数据库中的视图对象。
视图是一种虚拟表,用来查看数据库中的一个或多个表,视图是建立在表基础之上的数据库对象,它主要以SELECT语句形式存在。
在“同义词”节点中包含了数据库中的同义词对象。
这是Microsoft SQL Server 2008系统新增的一种对象。
4.工作?答:(1) 增强物理安全性(2) 使用防火墙(3) 隔离服务(4) 禁用NetBIOS和服务器消息块5.SQL Server 2008支持哪两种身份验证?答:Windows 身份验证或混合模式身份验证。
6.如何注册和启动SQL Server 服务器?答:1. 注册服务器使用Microsoft SQL Server Management Studio工具注册服务器的步骤如下:(1) 启动Microsoft SQL Server Management Studio工具,选择“视图”|“已注册”命令或者按下快捷键Ctrl+Alt+G,在打开的“已注册的服务器”窗口中选中“数据库引擎”图标。
(2) 在“数据库引擎”上单击鼠标右键,从弹出的快捷菜单中选择“新建”|“服务器注册”命令,即可打开如图1-20所示的“新建服务器注册”对话框。
选择“常规”选项卡,可以在该选项卡中输入将要注册的服务器名称。
(3) 选择“连接属性”选项卡,如图1-21所示,在该选项卡中可以设置连接到的数据库、网络以及其他连接属性。
上机实训03 SQL Server 2008之数据库综合实训

上机实训03 构建与管理数据库学号:_________ 姓名:______________综合实训1 学生信息管理数据库实训效果使用T-SQL语句创建数据库studentDB,并要求进行如下设置:其物理存放在D:\学号姓名文件夹中,数据文件stud_data的初始大小为5MB,文件增长量为2MB;日志文件stud_log的初始大小为2MB,文件增长量为10%。
(T-SQL语句):成果展示:维护数据库:(1)使用T-SQL语句向studentDB数据库中添加一个数据文件stud1_data,文件大小为2MB;(T-SQL语句):成果展示:(2)使用T-SQL语句向studentDB数据库中添加一个数据文件stud1_log,文件大小为1MB;成果展示:(3)使用T-SQL语句,将主数据文件stud_data的增长方式修改为10%。
(T-SQL语句):成果展示:(4)使用T-SQL语句,将日志文件stud_log的最大值修改为10MB。
(T-SQL语句):成果展示:(5)使用T-SQL语句,将删除日志文件stud1_log。
·2·成果展示:综合实训2 学生信息管理数据库学生成绩管理系统工作任务1. 创建学生成绩管理数据库-StudentDB任务描述利用T-SQL语句创建学生成绩管理系统的数据库StudentDB’,要求将数据文件student_data大小设置为5MB,增长方式为按增量2MB增长,无限制,日志文件student_log大小5MB,增长方式为自动增长,增量10%,存储路径为D:\学号姓名\下。
设计过程——用T-SQL创建数据库T-SQL语句:成果展示(截图):·3·2.创建相关的数据表任务描述利用Management Studio图形工具创建学生表,表名称及结构如下。
(1)表名:学生信息成果展示:·4·任务描述利用T-SQL语句创建课程表。
SQLSERVER2008实用教程实验参考答案(综合实验)

系统开发入门实习2 VISUAL C#2008/SQL Server2008员工信息管理系统一、新建项目1. 运行Visual Stutio2008,单击菜单“文件-新建-项目”,在弹出的对话框中选择“Visual C#-Windows窗体应用程序”模板,命名为SimpleCRM,确定。
2. 新建父窗体:右击项目名“添加-Windows窗体”,选择“MDI父窗体”,确定。
3. 设计父窗体:1)父窗体的Text属性值设置为:员工管理系统。
删除父窗体中原有的menuStrip和toolStrip 控件。
2)添加菜单。
从工具箱中拖放一个menuStrip菜单控件到父窗体中,分别添加员工管理和关于菜单。
并在菜单下分别添加员工管理、工资管理和关于、帮助子菜单。
3)删除原有代码。
按F7键打开代码页,删除MDIParent1部分类中除构造函数外的所有代码。
4)添加代码。
切换到窗体设计窗口,双击员工管理子菜单,在“员工管理ToolStripMenuItem1_Click”方法中添加如下代码。
Form1 form1 = new Form1();form1.MdiParent = this;form1.Show();5)将父窗体设置为首选执行窗体。
在解决方案资源管理器中打开“Program.cs”文件,将“form1”修改为“MDIParent1”6)修改父窗体和子窗体的Size。
父窗体Size改为1024,768。
子窗体改为800,600。
二、设计员工管理窗体员工管理窗体(Form1.cs)的功能包括:员工查询、员工添加、员工修改、员工删除。
主要操作数据库YGGL下的Employees表。
1)添加控件:2个GroupBox、4个Button、9个Label、9个TextBox、1个DataGridView。
调整控件布局,修改控件Text属性值。
2)DataGridView控件设置。
打开DataGridView的属性窗口,单击DataSource属性,添加项目数据源,弹出“数据源配置向导”对话框。
SQLSERVER2008实用教程实验参考答案(实验5)

实验5 T-SQL编程1. 自定义数据类型新建一个数据类型ID_Type,用于描述员工编号。
新建一个表Employees3,表结构与Employees 表类似,EmployeeID列的数据类型使用自定义的数据类型。
方法1:使用系统内置的存储过程sp_addtype。
USE YGGLEXEC sp_addtype'ID_Type','char(6)','not null'GO方法2:使用CREATE TYPE语句USE YGGLGOCREATE TYPE ID_Type FROM char(6)NOT NULL;--查看可编程性-类型-用户定义数据类型中的变化IF EXISTS(SELECT name FROM sysobjects WHERE name='Employees3')DROP TABLE Employees3CREATE TABLE Employees3(EmployeeID ID_Type PRIMARY KEY,Name char(10)NOT NULL,Education char(4)NOT NULL,Birthday date NOT NULL,Sex bit NOT NULL DEFAULT 1,WorkYear tinyint NULL,Address varchar(40)NULL,PhoneNumber char(12)NULL,DepartmentID char(3)NOT NULL)GO2. 变量的使用(1)创建一个名为Female的用户变量,并在Employees表中查询所有女员工的编号、姓名、性别DECLARE@Female bit--定义变量,指定变量数据类型SET@Female=0 --为该变量赋初值SELECT EmployeeID,Name,Sex FROM Employees WHERE Sex=@Female;(2)定义一个变量,将员工编号为102201的员工的电话号码赋值给该变量DECLARE@Phone char(12)SET@Phone=(SELECT PhoneNumber FROM Employees WHERE EmployeeID='102201')SELECT a.*,@Phone FROM Employees a WHERE EmployeeID='102201';(3)定义一个变量,用于描述Salary表中000001号员工的实际收入,然后查询该变量DECLARE@RealIncome floatSET@RealIncome=(SELECT InCome-OutCome FROM Salary WHEREEmployeeID='000001')SELECT@RealIncome;3. 运算符的使用(1)查询员工的实际收入SELECT InCome-OutCome AS实际收入FROM Salary;(2)查询工作时间大于5年的员工信息SELECT*FROM Employees WHERE WorkYear>5;4.流程控制语句(1)判断Employees表中是否存在编号为111006的员工,如果存在,则显示该员工信息,如果不存在,则显示查无此人IF EXISTS(SELECT Name FROM Employees WHERE EmployeeID='111006') SELECT*FROM Employees WHERE EmployeeID='111006'ELSESELECT'查无此人'(2)判断姓名为“王林”的员工的实际收入是否高于3000元,如果是,则显示其收入,如果不是,则显示“收入不高于3000元”--先查找实际收入,再进行IF判断IF(SELECT b.InCome-b.OutCome AS实际收入FROM Employees a,Salary b WHERE a.EmployeeID=b.EmployeeID AND ='王林')>3000SELECT b.InCome-b.OutCome AS实际收入FROM Employees a,Salary b WHERE a.EmployeeID=b.EmployeeID AND ='王林'ELSESELECT'收入不高于元'(3)假设变量X的初始值为0,每次加1,直到X变为5,并打印输出DECLARE@X INTSET@X=0WHILE@X<5BEGINSET@X=@X+1PRINT'X='+CONVERT(char(1),@X)ENDGO(4)使用循环输出一个用’*’组成的三角形DECLARE@i INTDECLARE@n INTSET@n=10SET@i=1WHILE (@i<@n)BEGIN--SPACE函数:返回指定个数重复的空格组成的字符串--REPLICATE函数:以指定的次数重复字符表达式PRINT (SPACE((@n-@i)/2)+REPLICATE('*',@i))SET@i=@i+2ENDGO(5)使用CASE语句对Employees表按部门进行分类SELECT EmployeeID,DepartmentID=CASE DepartmentIDWHEN 1 THEN (SELECT DepartmentName FROM Departments b WHEREb.DepartmentID='1')WHEN 2 THEN (SELECT DepartmentName FROM Departments b WHEREb.DepartmentID='2')WHEN 3 THEN (SELECT DepartmentName FROM Departments b WHEREb.DepartmentID='3')WHEN 4 THEN (SELECT DepartmentName FROM Departments b WHEREb.DepartmentID='4')WHEN 5 THEN (SELECT DepartmentName FROM Departments b WHEREb.DepartmentID='5')ENDFROM Employees ORDER BY DepartmentID;5. 自定义函数的使用定义一个函数CHECK_ID:对于一个给定的DepartmentID值,查询该值在Departments表中是否存在,如果存在,则返回1,不存在,则返回0。
SQL2008课后习题答案实验7

SQL2008课后习题答案实验71.存储过程1>创建存储过程,使⽤Employees表中的员⼯⼈数来初始化⼀个局部变量,并调⽤这个存储过程create procedure test @number1 int outputasbegindeclare @number2 intset @number2=(select COUNT (*)from Employees)set @number1=@number2end执⾏该存储过程,并查看结果;declare @num intexec test @num outputselect @num2>创建存储过程,⽐较两个员⼯的实际收⼊,若前者⽐后者⾼就输出0,否则输出1;create procedure COMPA @ID1 char(6),@ID2 char(6),@BJ int outputasbegindeclare @SR1 float,@SR2 floatselect @SR1=InCome-OutCome from Salary where EmployeeID=@ID1select @SR2=InCome-OutCome from Salary where EmployeeID=@ID2if @ID1>@ID2set @BJ=0elseset @BJ=1end执⾏该存储过程,并查看结果;declare @BJ intexec COMPA '000001','108991',@BJ outputselect @BJ3>创建添加职员记录的存储过程EmploeeAdd;create procedure EmployeeAdd(@EmployeeID char(6),@Name char(10),@Education char(4),@Birthday datetime,@WorkYear tinyint,@Sex bit,@Address char(40),@PhoneNumber char(12),@DepartmentID char(3))asbegininsert into Employeesvalues(@EmployeeID,@Name,@Education,@Birthday,@WorkYear,@Sex,@Address,@PhoneNumber,@DepartmentID) endreturngo执⾏该存储过程;exec EmployeeAdd '990230','刘朝','本科','840909',2,1,'洪武⼩洪⼭5号','85465213','3'4>创建⼀个带有output游标参数的存储过程,在Employees表中声明并打开⼀个游标;create procedure em_cursor @em_cursor cursor varying outputasbeginset @em_cursor=CURSOR forward_only staticFORselect * from Employeesopen @em_cursorend声明⼀个局部游标变量,执⾏上述存储过程,并将游标赋值给局部游标变量,然后通过该游标变量读取记录;declare @MyCursor cursorexec em_cursor @em_cursor=@MyCursor outputfetch next from @MyCursorwhile (@@FETCH_STATUS=0)beginfetch next from @MyCursorendclose @MyCursordeallocate @MyCursorgo5>创建存储过程,使⽤游标确定⼀个员⼯的实际收⼊是否排在前三名。
数据库实用技术SQL Server 2008练习题答案

《数据库实用技术SQL Server 2008》拓展练习参考答案第二章一、选择题1.C2.D3.A4.A5.C6.C7.B8.C二、填空题1.数据库系统2.共享性3. 数据操纵语言DML4.联系三、简答题1.答:数据库系统是在计算机系统中引入数据库后的一个人-机系统,数据库系统主要由计算机、操作系统、DBMS、数据库、应用程序等组成。
2.答:数据库系统的三级模式是指外模式、模式和内模式。
外模式是特定数据库用户的数据视图,是与某一具体应用相关的数据局部逻辑结构的描述。
模式是数据库中全体数据的总体逻辑结构描述,是所有用户的公共数据视图。
内模式是数据物理结构和存储方式的描述,定义数据在数据库内部的表示方式。
数据库系统的三级模式提供了三个层次的数据抽象。
这样做的一个优点是可以隐蔽数据存储细节和内部复杂性,保护了数据库安全性,简化系统的用户界面。
另一个优点是可以带来数据的独立性。
3.答:数据库设计分6个阶段:需求分析、概念设计、逻辑设计、物理设计、应用开发和运行维护阶段。
需求分析阶段:需求分析是整个数据库设计的基础,进行数据库设计首先要在给定的应用环境下,了解与分析用户的各种应用需求,形成需求说明书。
概念设计阶段:概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳和抽象,形成独立于任何数据库管理系统的概念模型。
概念设计的结果通常用E-R模型来描述。
逻辑设计阶段:逻辑设计是整个数据库的模式设计,是将概念设计的E-R图转换成具体数据库管理系统所支持的数据模型,并对数据进行优化处理,根据用户处理的要求,以及安全性的考虑,形成数据库的全局逻辑模式、外模式的过程。
物理设计阶段:物理设计就是确定数据库的存储结构。
主要任务包括:确定数据库文件和索引文件的记录格式和物理结构,选择存取方法,决定访问路径和外存储器的分配策略等,形成数据库的内模式。
应用开发阶段:运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试服务器端和客户端的各应用程序,组织数据入库并运行,做好数据库的转储和恢复工作。
数据库原理及应用(SQL Server 2008)第三章习题及实验答案

第三章习题及实验答案习题答案一、选择题1、A2、A3、C二、填空题1、程序2、MIN、SUM3、CONTINUE、BREAK三、简答题1、可以使用的运算符可以分为算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运算符、一元运算符及比较运算符等。
2、用户自定义函数可分为:标量函数和表值函数。
可使用CREATE FUNCTION语句创建函数,在调用用户自定义函数时,如果调用的是标量函数,则必须提供架构名。
如果调用的是表值函数,则可以不提供架构名。
用户可以将调用的函数用在赋值语句中,或作为表达式的操作数,或用在SQL命令中。
3、批处理是包含一个或多个Transaction-SQL语句的组,从应用程序一次性的发送到SQL Server执行。
批处理是使用GO语句将多条SQL语句进行分隔,其中每两个GO之间的SQL 语句就是一个批处理单元。
一个批处理中可以包含一条语句,也可以包含多条语句。
4、在SQL Server系统中,可以使用的流程控制语句有BEGIN…..END、IF…ELSE、CASE、WHILE…..CONTINUE….BREAK、GOTO、W AITFOR、RETURN等。
BEGIN…..END….: 在条件语句和循环语句等流程控制语句中,当符合特定条件需要执行两个或多个语句时,就应该使用BEGIN…END语句将这些语句组合在一起。
IF…..ELSE….: IF….ELSE语句是条件判断语句。
CASE:用于多重选择的条件判断语句,结果返回单个值。
在CASE中可根据表达式的值选择相应的结果。
WHILE…..CONTINUE….BREAK: SQL语言中的循环语句,用来重复执行SQL语句或语句块。
GOTO: SQL程序中的无条件跳转语句,可以使程序直接跳到指定的标识符位置处继续执行。
WAITFOR: SQL中起暂停正在执行的语句、语句块或者存储过程的调用,直到某时间、时间间隔到达后才继续执行。
数据库技术与应用SQLServer2008第4章习题参考答案

数据库技术与应用SQLServer2008第4章习题参考答案第4章习题解答1.思考题(1)在SQL的查询语句SELECT中,使用什么选项实现投影运算?什么选项实现连接运算?什么选项实现选择运算?答:在SQL的查询语句中,select选项实现(投影)运算,from选项实现(连接)运算,where选项实现(选择)运算。
(2)一个子SELECT的结果作为查询的条件,即在一个SELECT 语句的WHERE子句中出现另一个SELECT语句,这种查询称为什么查询?其功能是什么?答:称为嵌套查询。
嵌套查询是T-SQL语言的高级查询,它可以用多个简单的基本查询构成复杂的查询,从而增强其查询功能。
(3)在SELECT语句中,定义一个区间范围的特殊运算符是什么?检查一个属性值是否属于一组值中的特殊运算符又是什么?答:在SELECT 语句中,定义一个区间范围的特殊运算符是BETWEEN,检查一个属性值是否属于一组值的特殊运算符是IN。
(4)在T-SQL语句中,与表达式“工资BETWEEN 2000 AND 5000”功能相同的表达式如何写?答:工资>=2000 AND 工资<=5000(5)语句“SELECT * FROM 成绩表WHERE 成绩>(SELECT avg(成绩) FROM 成绩表)”的功能是什么?答:查询成绩表中所有成绩大于平均成绩的记录2.选择题(1)在SELECT语句中,需显示的内容使用“*”,则表示(B)。
A.选择任何属性B.选择所有属性C.选择所有元组D.选择主键(2)查询时要去掉重复的元组,则在SELECT语句中使用(D)。
A.All B.UNION C.LIKE D.DISTINCT(3)在SELECT语句中使用GROUP BY C_NO时,C_NO必须(C)。
A.在WHERE子句中出现B.在FROM子句出现C.在SELECT子句中出现D.在HAVING子句中出现(4)使用SELECT语句进行分组查询时,为了去掉不满足条件的分组,应当(B)。
《SQL_Server_2008_实验指导》课后作业

SQL Server 2008 实验指导课后作业问题一:创建数据库1.使用以下 SQL 语句创建一个名为myDB的数据库。
CREATE DATABASE myDB;2.使用以下 SQL 语句查询系统中的所有数据库。
SELECT name FROM sys.databases;问题二:创建表格1.在myDB数据库中,创建一个名为students的表格,包含以下字段:–id:学生编号,整数类型,主键;–name:学生姓名,字符串类型;–age:学生年龄,整数类型;–gender:学生性别,字符串类型。
USE myDB;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(100),age INT,gender VARCHAR(10));2.使用以下SQL 语句查询students表格的结构信息。
EXEC sp_columns students;问题三:插入数据1.使用以下SQL 语句向students表格插入一条记录。
INSERT INTO students (id, name, age, gen der)VALUES (1, '张三', 20, '男');2.使用以下 SQL 语句查询students表格中的所有记录。
SELECT*FROM students;问题四:更新数据1.使用以下 SQL 语句更新students表格中的一条记录。
UPDATE studentsSET age =21WHERE id=1;2.使用以下 SQL 语句查询更新后的students表格中的记录。
SELECT*FROM students;问题五:删除数据1.使用以下 SQL 语句删除students表格中的一条记录。
DELETE FROM studentsWHERE id=1;2.使用以下 SQL 语句查询删除后的students表格中的记录。
(word完整版)SQLServer2008数据库案例教程课后习题答案

(word完整版)SQLServer2008数据库案例教程课后习题答案《SQL Server 2008数据库案例教程》练习题及模拟试卷答案第1章⼀、判断题1. 数据库技术是是计算机数据处理与信息管理系统的核⼼。
(√)2. 数据是⽤于描述现实世界中具体事物或抽象概念,可存储的数字符号。
(×)3. 数据库是⼀个长期存储在计算机内的、有组织的、有共享的、统⼀管理的数据集合。
(√)4. 数据库管理系统是⼀个按数据结构来存储和管理数据的服务器管理系统。
(×)5. 关系数据库,是建⽴在关系模型基础上的数据库。
(√)⼆、单选题1. 数据(Data)是⼀些可存储并具有明确意义的(A)A. 符号B.图形C.⽂字D.数字2. ⼈⼯阶段计算机⽤于数值计算,没有操作系统及管理数据的软件。
这⼀阶段的年代是(C)A. 19世纪80年代B. 20世纪20年代C.20世纪50年代D. 20世纪80年代3. 在⽹页中常⽤的图像格式是(D)A..bmp和.jpgB..gif和.bmpC. .png和.bmpD. .gif和.jpg4.数据库系统的重要特征是什么?(D)A. 数据的独⽴性和动态性 B.数据的静态性和独⽴性C.数据的动态性和共享性 D.数据的独⽴性和共享性三、多选题1.与数据库技术密切相关的基本概念有(ABCD)A. 数据B. 数据库C. 数据库管理系统D. 数据库系统2.数据库可分为哪⼏种类型?(ABC)A. 关系型数据库B. ⽹状数据库C. 层次数据库D.树形数据库3. DBMS提供数据操作语⾔DML,为⽤户提供了哪些操作?(ABCD)A.数据的追加B.数据的删除C.数据的更新D.数据的查询4.DBMS要分类组织、存储和管理各种数据,包括哪些内容?(ABC)A. 数据字典B. ⽤户数据C. 存取路径D.服务器5. ⽬前,DBMS常见品牌有哪些公司?(ABC)A.微软公司的SQL Server B.IBM公司的DB2 C.甲⾻⽂公司的ORACLE D.索尼公司的MySQL四、填空题1.数据库(管理)技术经历了⼈⼯管理阶段和⽂件管理阶段。
《SQL Server 2008实训》==综合训练1

SQL Server上机实训(一)
01.使用T-SQL语句建立一个宾馆数据库,具体文件属性如下表所示。
02.使用T-SQL语句在上述数据库中创建客房标准信息表、订房信息表、客房信息表,3个表的结构如下,要求表字段使用英文名。
(1)roomtype(客房标准信息表)
(3)rooms(客房信息表)
【提示】:用T-SQL语言在上述数据库基础上,完成如下操作。
03.用T---SQL语句插入下列客房信息。
04.查询所有客户的身份证号、客房号、入住日期、结算日期等信息。
05.查询被预定的“标准房”(客房类型)的客房的客房编号,按客房号的升序排序。
06.查询统计各个客房(编号)的营业总金额。
07.查询身份证号为“310222************”的客户最近入住酒店的日期以及客房号,住了几天等信息。
(说明:函数datediff(day,参数1,参数2),此函数功能:计算两个日期类型数据间相差的天数,即参数2-参数1的天数。
)
08.创建存储过程proc_kroom,实现功能:根据客房类型号,查询是否有该类型的未被预定的房间,如果有,则显示提示信息“此类型的房间有未被预定的客房”;如果没有,则显示提示信息“此类型的房间已预定满!”。
09.创建触发器,实现如果删除客房标准信息表中某种客房类型记录,相应的客房信息表中所有此类型的客房记录都删除。
SQLSERVER2008实用教程实验参考答案(实验4)

实验4 数据库的查询和视图一、SELECT语句的基本使用1. 查询Employees表中所有数据2. 查询Employees表中指定字段数据3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话查询月收入高于2000元的员工号码查询1970年以后出生的员工的姓名和住址5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
7. 使用SELECT语句进行简单计算计算每个雇员的实际收入8. 使用内置函数获得员工总数计算Salary表中员工月收入的平均数获得Employees表中最大的员工号码计算Salary表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“中山”的雇员的号码及部门号找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历10. Between…And…和Or的使用找出收入在2000~3000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名5. 查找比所有财务部的雇员收入都高的雇员的姓名6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用内连接的方法查询名字为“王林”的雇员所在的部门4. 使用内连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)执行完命令后,分别查看Departments_View和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT*FROM Employees;2. 查询Employees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工号码SELECT EmployeeID FROM Salary WHERE InCome>2000;查询1970年以后出生的员工的姓名和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970'; SELECT Name,Address FROM Employees WHERE Birthday>'1970';5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话SELECT Address AS地址,PhoneNumber AS电话FROM Employees;查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期SELECT Name AS姓名,Birthday AS出生日期FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS姓名,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'ENDAS性别FROM Employees;查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
SQL-2008实训含标准答案

1.6综合实训实训名称SQL Server 2008常用工具的使用。
实训任务(1)ﻩ启动并使用SQL Server Management Studio。
(2)启动并使用SQL Server配置管理器。
实训目的(1) 掌握SQL Server Management Studio的基本操作方法。
(2)掌握SQL Server配置管理器的基本操作方法。
实训环境Windows Server平台及SQL Server 2008系统。
实训内容(1)ﻩ用SQL Server 2008的SSMS更改服务的状态。
(2) 用SQL Server 2008的配置管理器更改登录身份。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
1.7 拓展项目安装自己的SQL Server 2008管理系统,并根据需求对系统进行合理配置。
2.6综合实训实训名称创建并管理学生信息管理数据库(Students)。
实训任务(1) 使用SSMS对学生信息管理数据库(Students)进行创建、修改与删除等操作。
(2) 使用T-SQL命令对学生信息管理数据库(Students)进行创建、修改与删除等操作。
实训目的(1)规划学生信息管理数据库(Students)的主数据文件、辅助数据文件与日志文件的名称、大小、增长方式与存储路径等属性。
(2)在SSMS中完成学生信息管理数据库(Students)从创建、修改、分离、附加,直到删除的完整过程。
(3) 使用T-SQL语句完成学生信息管理数据库(Students)的创建、修改与删除等操作。
实训环境WindowsServer平台及SQL Server 2008系统。
实训内容Students数据库,该数据库包含一个主数据文件逻辑名‘StuInfodata1’,物理名‘C:\DATA\StuInfodata1.mdf’,初始容量3MB,最大容量10MB,每次增长量为15%;一个辅助数据文件逻辑名‘StuInfodata2’物理名‘D:\DATA\StuInfodat a2.ndf ’,初始默认,最大容量不受限,每次增长量为2MB;一个事务日志文件逻辑名‘St uInfolog’物理名‘D:\DATA\StuInfolog.ldf ’,其他参数默认。
SQLSERVER2008实用教程实验参考答案(实验2)

实验2 创建数据库和表1、在D盘根目录下新建文件夹,并命名为Data,用来存储实验环境新建的数据库。
2、使用T-SQL语句创建数据库:USE masterGO--YGGL数据库如果存在,则将其删除IF EXISTS(SELECT name FROM sys.databases WHERE name='YGGL') DROP DATABASE YGGLGOUSE masterGO--新建数据库CREATE DATABASE YGGLON(NAME='YGGL_Data',FILENAME='D:\Data\YGGL.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)LOG ON(NAME='YGGL_Log',FILENAME='D:\Data\YGGL_log.ldf',SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)3、在YGGL数据库下建三个表Employees、Departments、Salary。
--切换到数据库YGGL下USE YGGLGO--新建Employees表CREATE TABLE Employees(EmployeeID char(6)NOT NULL PRIMARY KEY,Name char(10)NOT NULL,Education char(4)NOT NULL,Birthday date NOT NULL,Sex bit NOT NULL DEFAULT 1,WorkYear tinyint NULL,Address varchar(40)NULL,PhoneNumber char(12)NULL,DepartmentID char(3)NOT NULL)--新建Departments表CREATE TABLE Departments(DepartmentID char(3)NOT NULL PRIMARY KEY,DepartmentName char(20)NOT NULL,Note varchar(100)NULL)--新建Salary表CREATE TABLE Salary(EmployeeID char(6)NOT NULL PRIMARY KEY,InCome float NOT NULL,OutCome float NOT NULL)--建立Employees表的外键ALTER TABLE Employees WITH CHECK ADD CONSTRAINTFK_Employees_Departments FOREIGN KEY(DepartmentID)REFERENCES Departments(DepartmentID)--启用外键约束ALTER TABLE Employees CHECK CONSTRAINT FK_Employees_Departments--建立Salary表的外键ALTER TABLE Salary WITH CHECK ADD CONSTRAINT FK_Salary_Employees FOREIGN KEY(EmployeeID)REFERENCES Employees(EmployeeID)--启用外键约束ALTER TABLE Salary CHECK CONSTRAINT FK_Salary_Employees。
SQL2008问题+答案

1.请写出SQL Server 2005中系统数据库的名称及其作用master数据库:数据库服务器的核心,用户不能直接修改该数据库,若是损坏,整个SQL SERVER服务器将不能工作。
model数据库:创建数据库的模板。
如用户希望所创建的数据库有相同的初始化文件大小,可以在该数据库中保存文件大小的信息。
msdb数据库:提供运行SQL SERVER Agent工作的信息。
SQL SERVER Agent是一个Windows服务,用来运行制定的计划任务。
tempdb数据库:临时数据库,用于存放临时对象或者中间结果,SQL SERVER关闭后,被清空。
常用系统存储过程sp_addgroup:在当前的数据库中创建一个组。
sp_addlogin:创建新的Microsoft® SQL Server™ 登录sp_addrole:当前数据库创建新的Microsoft® SQL Server™ 角色。
sp_addtype:创建用户定义的数据类型。
sp_adduser:为当前数据库中的新用户添加安全帐户。
sp_bindefault:将默认值绑定到列或用户定义的数据类型。
sp_bindrule:将规则绑定到列或用户定义的数据类型。
sp_dbfixedrolepermission:显示每个固定数据库角色的权限。
sp_dropgroup:从当前数据库中删除角色。
sp_droprole:当前数据库删除Microsoft® SQL Server™ 角色。
sp_droptype:从 systypes 删除用户定义的数据类型。
sp_dropuser:从当前数据库中删除Microsoft® SQL Server™ 用户或 Microsoft Windows NT®用户。
sp_help:报告有关数据库对象(sysobjects 表中列出的任何对象)、用户定义数据类型或Microsoft® SQL Server™ 所提供的数据类型的信息。
SQLSERVER2008实用教程实验参考答案(实验3)

实验3 表数据插入、修改和删除1. 准备数据样本--向Departments表中插入数据USE YGGLGOINSERT INTO Departments Values('1','财务部',NULL); INSERT INTO Departments Values('2','人力资源部',NULL);INSERT INTO Departments Values('3','经理办公室',NULL);INSERT INTO Departments Values('4','研发部',NULL); INSERT INTO Departments Values('5','市场部',NULL);--向Employees表中插入数据INSERT INTO Employees VALUES('000001','王林','大专','1966-01-23',1,8,'中山路-1-508','83355668','2'); INSERT INTO Employees VALUES('010008','伍容华','本科','1976-03-28',1,3,'北京东路-2','83321321','1'); INSERT INTO Employees VALUES('020010','王向容','硕士','1982-12-09',1,2,'四牌楼-0-108','83792361','1'); INSERT INTO Employees VALUES('020018','李丽','大专','1960-07-30',0,6,'中山东路-2','83413301','1'); INSERT INTO Employees VALUES('102201','刘明','本科','1972-10-18',1,3,'虎距路-2','83606608','5'); INSERT INTO Employees VALUES('102208','朱俊','硕士','1965-09-28',1,2,'牌楼巷-3-106','84708817','5'); INSERT INTO Employees VALUES('108991','钟敏','硕士','1979-08-10',0,4,'中山路-3-105','83346722','5'); INSERT INTO Employees VALUES('111006','张石兵','本科','1974-10-01',1,1,'解放路-1-203','84563418','5'); INSERT INTO Employees VALUES('210678','林涛','大专','1977-04-02',1,2,'中山北路-35','83467336','3'); INSERT INTO Employees VALUES('302566','李玉珉','本科','1968-09-20',1,3,'热河路-3','58765991','4'); INSERT INTO Employees VALUES('308759','叶凡','本科','1978-11-18',1,2,'北京西路-7-52','83308901','4');INSERT INTO Employees VALUES('504209','陈林琳','大专','1969-09-03',0,5,'汉中路-4-12','84468158','4');--向Salary表中插入数据INSERT INTO Salary VALUES('000001',2100.08,123.09);INSERT INTO Salary VALUES('010008',1582.62,88.03);INSERT INTO Salary VALUES('102201',2569.88,185.65);INSERT INTO Salary VALUES('111006',1987.01,79.58);INSERT INTO Salary VALUES('504209',2066.15,108.0);INSERT INTO Salary VALUES('302566',2980.7,210.2);INSERT INTO Salary VALUES('108991',3259.98,281.52);INSERT INTO Salary VALUES('020010',2860.0,198.0);INSERT INTO Salary VALUES('020018',2347.68,180.0);INSERT INTO Salary VALUES('308759',2531.98,199.08);INSERT INTO Salary VALUES('210678',2240.0,121.0);INSERT INTO Salary VALUES('102208',1980.0,100.0);2. 创建一个Employees3表,字段同Employees一致。
SQLServer2008数据库应用教程课后答案

SQLServer2008数据库应⽤教程课后答案第1章数据库基础⼀、单项选择题1.C 2.A 3.C 4.D 5.D6.B 7.A 8.B 9.B 10.D11.C 12.A 13.C 14.B 15.A16.B 17.A 18.D 19.B 20.B21.A; D 22.A 23.C 24.D 25.B26.B 27.B 28.D 29.B 30.B⼆、填空题1.概念;数据2.属性3.码4.⼀对⼀联系;⼀对多(或多对⼀)联系;多对多联系5.候选码6.候选码7.关系名(属性1,属性2,…,属性n)8.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;⽤户定义的;实体;参照10.空植11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运⾏和维护阶段12.准确了解并分析⽤户对系统的要求,尤其是⽤户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应⽤系统的⽬标,产⽣⽤户和设计者都能接受的需求说明书,做为下⼀步数据库概念结构设计的基础。
13.将需求分析得到的⽤户需求抽象为信息结构即概念模型。
14.将概念结构进⼀步转化为某⼀DBMS⽀持的数据模型,并对其进⾏优化。
15.为逻辑数据模型选取⼀个最适合应⽤环境的物理结构,包括数据库在物理设备上的存储结构和存取⽅法。
三、指出以下各缩写的英⽂意思和中⽂意思1.DB:DataBase2.DBMS:Database Management System3.RDBMS:4.DBS:DataBase System5.DBA:Relational Database Management System6.NF:Normal Form7.DDL:Data Definition Language四、按题⽬要求回答问题1.答:2.答:3.答:(1)关系R是2NF。
因为R的候选码为课程名,⽽课程名→教师名,教师名→教师地址,所以课程名→教师地址,即存在⾮主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。
sql server 2008 习题 实验

第九周【20110420/21,3节*2】复习及作业实验一、填空或改错或判断1、P12(1)也是一种模型,它是对现实世界(2)的抽象。
也就是说数据模型是用来(3)、(4)和(5)的。
(答案:1、数据模型;2、数据特征;3、描述数据;4、组织数据;5)对数据进行操作)2、P12通俗地讲,(1)就是现实世界的模拟。
(数据模型)3、P12在开发实施数据库应用系统时需要使用不同的数据模型:第一类为(1),第二类为(2)。
(1、概念模型;2、逻辑模型、物理模型)4、P12概念模型(Conceptual Model)也称信息模型,它是按用户观点来对数据和信息建模,主要用于(数据库设计)。
(问题:E-R图是概念数据模型?)5、P12(1)是按计算机系统的观点对数据建模,主要用于数据库管理系统(DBMS)的实现。
主要包括:层次模型、网状模型、(2)(Relational Model)、面向对象模型和对象关系模型。
(答:1、逻辑模型;2、关系模型)6、P12(1)是对数据最低层的抽象,它描述数据在系统内部的(2),在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
物理模型的具体实现是DBMS的任务,数据库设计人员需要了解和选择(3),一般用户不必考虑物理级的细节。
(1、物理模型;2、表示方式和存取方法;3、物理模型)7、P13(1)数据模型是数据库系统的核心和基础。
各种机器上实现的DBMS软件都是基于某种数据模型或者说是支持某种数据模型的。
(问题:SQL Server 2008是基于关系数据模型,或者说是支持关系数据模型的?)8、P13为了将现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,人们常常首先将现实世界抽象为(1)信息世界,然后将(1)信息世界转换为(2)机器世界。
也就是说将,首先把现实世界的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS 支持的数据模型,而是概念级的模型(如E-R图);然后再把概念模型转换为计算机上某一DBMS支持的数据模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.6 综合实训实训名称SQL Server 2008常用工具的使用。
实训任务(1) 启动并使用SQL Server Management Studio。
(2) 启动并使用SQL Server配置管理器。
实训目的(1) 掌握SQL Server Management Studio的基本操作方法。
(2) 掌握SQL Server配置管理器的基本操作方法。
实训环境Windows Server平台及SQL Server 2008系统。
实训内容(1) 用SQL Server 2008的SSMS更改服务的状态。
(2) 用SQL Server 2008的配置管理器更改登录身份。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
1.7 拓展项目安装自己的SQL Server 2008管理系统,并根据需求对系统进行合理配置。
2.6 综合实训实训名称创建并管理学生信息管理数据库(Students)。
实训任务(1) 使用SSMS对学生信息管理数据库(Students)进行创建、修改与删除等操作。
(2) 使用T-SQL命令对学生信息管理数据库(Students)进行创建、修改与删除等操作。
实训目的(1) 规划学生信息管理数据库(Students)的主数据文件、辅助数据文件与日志文件的名称、大小、增长方式与存储路径等属性。
(2) 在SSMS中完成学生信息管理数据库(Students)从创建、修改、分离、附加,直到删除的完整过程。
(3) 使用T-SQL语句完成学生信息管理数据库(Students)的创建、修改与删除等操作。
实训环境Windows Server平台及SQL Server 2008系统。
实训内容Students数据库,该数据库包含一个主数据文件逻辑名‘StuInfo data1’,物理名‘C:\DATA\StuInfo data1.mdf’,初始容量3MB,最大容量10MB,每次增长量为15%;一个辅助数据文件逻辑名‘StuInfo data2’物理名‘D:\DATA\StuInfo data2.ndf ’,初始默认,最大容量不受限,每次增长量为2MB;一个事务日志文件逻辑名‘StuInfo log’物理名‘D:\DATA\StuInfo log.ldf ’,其他参数默认。
(1) 使用SSMS创建该数据库,创建完成后即可在通过SSMS对其进行删除。
(2) 使用T-SQL语句创建该数据库,可使用最简单的语句实现以上功能。
(3) 使用T-SQL语句对该数据库进行修改,创建一个新的文件组newgroup,并在其中添加一个辅助数据文件,逻辑名为‘StuInfoAdd’,与前一数据文件放在同一目录下,初始大小为5M;添加一个事务日志文件,逻辑名为‘StuInfoLogAdd’,与前一日志文件放在同一目录下。
(4) 使用系统存储过程查看数据库信息。
(5) 使用系统存储过程修改数据库设置信息,将“自动收缩(AUTO SHRINK)”属性设置为TRUE。
(6) 使用SSMS和T-SQL两种方式对数据库进行分离操作。
(7) 用最简单的T-SQL语句创建数据库CeShi,创建成功后对数据库进行删除操作。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
参考答案(2)create database Students on(name= StuInfodata1, 'C:\DATA\StuInfodata1.mdf', size=3, maxsize=10MB, ), (name= StuInfodata2, 'D:\DATA\StuInfodata2.ndf',)log on(name= StuInfolog, 'D:\DATA\StuInfolog.ldf')go(3)--1alter database Students add newgroupgo--2alter database Students add file(name=StuInfoAdd, 'D:\DATA\StuInfoAdd.ndf',size=5) to newgroupgo--3alter database Students add log file(name=StuInfoLogAdd, 'D:\DATA\StuInfoLogAdd.ldf')Go(4) EXEC sp_helpdb Students(5) EXEC sp_dboption Students, AUTOSHRINK, TRUE2.7 拓展项目根据需求规划和创建corperation_msg(企业即时通)数据库,并对数据库文件实施修改操作,通过数据库的分离将数据库转移到其他数据库管理系统中。
3.6 综合实训实训名称绘制E-R图。
实训任务绘制学生信息管理数据库(Students)E-R图。
实训目的理解E-R图三要素,绘制E-R图。
实训环境Windows Server平台及SQL Server 2008系统。
实训内容涉及的实体有:●学生基本信息,属性有学号、姓名、性别、身份证号码、手机号码、考试科目数、所在班级。
●课程信息,属性有课程编号、课程名称、学分、课时数。
●成绩信息,属性有学号、课程号、考试次数、考试时间、考试成绩。
(1) 绘制出各实体属性E-R图。
(2) 绘制出全局E-R图,标注出实体间的联系。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
3.7 拓展项目绘制corperation_msg(企业即时通)数据库E-R图。
4.6 综合实训实训名称设计学生管理数据库(Students)中各表的列的数据类型和约束。
实训任务(1)根据实际情况,设计StudInfo、CourseInfo和Score三个数据表中列的数据类型。
(2)设计StudInfo、CourseInfo和Score三个数据表中列的约束。
实训目的(1) 掌握给数据表的列设定合理的数据类型(2) 掌握给数据表的列添加必要的约束。
实训环境SQL Server 2008系统。
实训内容(1)假设根据数据库的设计需求,已经将StudInfo、CourseInfo和Score的表的列列出,请根据实际情况确定各列的数据类型和约束条件。
(2)在教师的指导下,完成StudInfo表在SQL Server 2008中的设计,具体操作将在第五章中讲解。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
5.6 综合实训实训名称创建并管理学生信息管理数据库(Students)的所有表结构。
实训任务(1) 使用SSMS对学生信息管理数据库(Students)的3个表进行创建、修改与删除等操作。
(2) 使用T-SQL命令对学生信息管理数据库(Students)的3个表进行创建、修改与删除等操作。
实训目的(1) 掌握SSMS创建与管理表结构的基本操作方法。
(2) 掌握创建与管理表结构的T-SQL命令的格式与用法。
实训环境Windows Server平台及SQL Server 2008系统。
实训内容(3) 使用T-SQL语句完成3个表结构的定义、修改与表的删除等基本操作。
实训步骤操作具体步骤略,请参考相应案例。
实训结果在本次实训操作结果的基础上,分析总结并撰写实训报告。
参考答案Use StudentsgoCreate table StudInfo(StudNo char(12) not null primary key,Name char(8) not null,Sex bit not null default 0,IdNo char(18) not null unique,Mobile char(11),CourseNum int default 0,ClassName char(10) not null,constraint ck_StudInfo_Sex check(sex=0 or sex=1))GoCreate table CourseInfo(CourseNo char(6) not null primary key,CourseName varchar(20) not null,CourseXF int not null,CourseKS int not null)GoCreate table Score(StudNumber char(12) not null,CourseNumber char(6) not null,Times int not null default 1,KSTime datetime not null,Score decimal(5,2),Constraint pk_Score primary key(StudNumber, CourseNumber, Times),Constraint fk_Score_StudInfo_StudNo foreign key(StudNumber) references StudInfo(StudNo),Constraint fk_Score_CourseInfo_CourseNumber foreign key(CourseNumber) references CourseInfo(CourseNo),Constraint ck_Score_Score check(Score>=0 and Score<=100))Go5.7 拓展项目根据corperation_msg(企业即时通)数据库的表关系示意图(图5.9所示,其中每个表所含有的字段为参考内容,可根据需求进行增减),设计数据库中表的结构,注意确定表的主次关系、字段类型、字段长度、约束定义等内容的定义。
图5.9 corperation_msg(企业即时通)数据库的表关系示意图6.6 综合实训实训名称输入并编辑学生信息管理数据库(Students)的表数据内容。
实训任务(1) 使用SSMS对学生信息管理数据库(Students)表的记录进行输入、修改与删除等基本操作。
(2) 使用T-SQL命令对学生信息管理数据库(Students)表的记录进行输入、修改与删除等基本操作。
实训目的(1) 掌握SSMS输入与管理表数据的基本操作方法。
(2) 掌握输入与管理表数据的T-SQL命令的格式与用法。
实训环境Windows Server平台及SQL Server 2008系统。