资源与环境科学学院实验报告一、上机实习名称:SQL Server的安装及数据库的建立二、实验目的:1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。
2、熟悉对DBMS的操作3、熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。
三、实验内容:1、根据安装文件的说明安装数据库管理系统。
2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。
3、掌握管理工具的使用(1)SQL Server Management Studio的使用➢连接服务器的方法➢查询分析器的使用(2)配置管理器的使用4、了解数据库系统的逻辑组件:它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。
今后将学习如何操作这些数据库对象。
5.在SSMS中创建数据库和表四、实验步骤1. SQL Server 2008的体系结构和特点介绍SQL Server 是一个关系数据库管理系统。
由微软公司2008年第三季度正式发布, SQL Server 2008是一个重大的产品版本,在安全性、可用性、易管理性、可扩展性、商业智能等方面有了更多的改进和提高,对企业的数据存储和应用需求提供了更强大的支持和便利,使得它成为迄今为止最强大和最全面的SQL Server版本。
SQL Server 2008 版本体系:根据不同的用户类型和使用需求,微软公司推出了5种不同的SQL Server版本,包括企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、学习版(Express)和移动版(Compact)Microsoft SQL Server 2008系统由4个主要部分组成。
这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务。
2. SQL Server管理工作室的启动打开windows控制面板—管理—服务,启动SQL Server 服务,如下图(1)开始→程序→Microsoft SQL Server 2008→SQL Server Management Studio(如图1.1所示)。
图1.1 SQL Server 2008 服务器连接GUI(2)在服务器类型(T)右侧的下拉列表中选择服务器类型。
本例选择:数据库引擎。
在身份验证(A)右侧的下拉列表中选择身份验证方式。
本例选择:Windows 身份验证;如果选择SQL Server身份验证,则还需要在其下方输入用户名和密码。
在服务器名称(S)右侧的下拉列表中选择:<浏览更多…>,然后选择相应的数据引擎。
本例选择:ZJGSU-HAPPYYOU,单击确定。
该GUI设置后的界面如图1.2所示。
图1.2 选择数据库服务器(3)在如图1.3所示的界面中,单击:连接(C),连接数据库服务器,并且启动SQL Server管理工作室(如图1.3所示)。
在启动后的SQL Server管理工作室中,就可以创建数据库、数据表和视图等数据库管理操作。
图1.3 SQL Server 管理工作室2.应用界面操作创建数据库(4)创建数据库Student在SQL Server 2008数据库管理系统的左边栏“对象资源管理器”中右击数据库对象,在弹出的快捷菜单中单击“新建数据库”命令。
在弹出的“新建数据库”对话框右侧的数据库名称中输入数据库名称“Student”,然后单击确定。
5)在Student数据库中新建表”Student”单击SQL Server 2008数据库管理系统的左侧的“对象资源管理器”栏中的”刷新”按钮,以显示出新建的数据库“Student”。
依次展开左侧栏对象资源管理器中的“数据库”->“Student”,并右击Student数据库中的表项目,在弹出的快捷菜单中单击“新建表”命令。
列名数据类型完整性约束Sno CHAR(5) 主码Sname CHAR(10) 非空Ssex BIT 无Sage INT 无Sdept CHAR(15) 无单击文件菜单中的保存命令保存该表,并取名为“Student”。
5)在Student数据库中新建表”Student”单击SQL Server 2008数据库管理系统的左侧的“对象资源管理器”栏中的”刷新”按钮,以显示出新建的数据库“Student”。
依次展开左侧栏对象资源管理器中的“数据库”->“Student”,并右击Student数据库中的表项目,在弹出的快捷菜单中单击“新建表”命令。
列名数据类型完整性约束Sno CHAR(5) 主码Sname CHAR(10) 非空Ssex BIT 无Sage INT 无Sdept CHAR(15) 无单击文件菜单中的保存命令保存该表,并取名为“Student”。
五、实习结果创建了HRM数据库,并输入了数据1.对上节建立的表输入数据:DepartmentID DepartmentName Note1 财务部财务部2 研发部研发部3 人力资源部人力资源部Employee ID Name BirthdaySexAddressZip PhoneNumberEmailAddress DepartmentID1001 李勇78-3-12 0 河南47500111002 王敏80-11- 1 河南47500 12、练习下面简单的查询语句:a) 查询每个雇员的所有信息b) 查询每个雇员的地址和电话c) 查询EmployeeID为000001的雇员的地址和电话。
d) 查询女雇员地址和电话,并用AS子句将结果中各列的标题分别指定为“地址”和“电话”。
e) 计算每个雇员的实际收入。
f) 找出所有姓王的雇员的部门号。
思考:找出所有地址中含有“中山”的雇员的号码和部门号。
(Where Address like ‘%中山%’)3、练习多表连接查询和嵌套查询:a)查询每个雇员的情况及工资情况(工资=Income - Outcome)b)查询财务部工资在2200元以上的雇员姓名及工资情况c)查询研发部在1966年以前出生的雇员姓名及其工资详情d)查询人力资源部雇员的最高和最低工资e)将各雇员的情况按工资由低到高排列f)求各部门的雇员数g)找出所有在财务部和人力资源部工作的雇员的编号h)统计人力资源部工资在2500以上雇员的人数i)求财务部雇员的总人数j)求财务部雇员的平均工资k)查找比所有财务部的雇员工资都高的雇员的姓名l)查找财务部年龄不低于研发部所有雇员年龄的雇员的姓名m)查找在财务部工作的雇员的情况四、实验步骤SQL查询语句1、单击工具栏中的“新建查询”按钮,并在弹出的“连接到服务器”对话框中单击“连接”按钮,新建一个SQL脚本。
2、在SQL脚本中写数据查询语句执行;从表中查询数据:在查询分析器的查询窗口中输入SQL语句,如图所示。
点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图所示。
六、实习结果在HRM数据库中输入了数据用SQL语言进行了查询操作步骤:命令方式操作方法:实体完整性1.将“student”表的“sno”字段设为主键:当“student”表已存在则执行:alter table student add constraint pk_sno primary key (sno)当“student”表不存在则执行:Create table student(sno CHAR(5) primary key ,sname CHAR(10) NOT NULL,ssex CHAR(2),sage int,sdept CHAR(4))注:可用命令“drop table student”删除“student”表2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)Alter table student add id char(18) unique (id)3. 将“sc”表的“sno”和“cno”设置为主键:当“sc”表已存在则执行:alter table sc add constraint PK_SnoCno primary key (sno,cno)当“sc”表不存在则执行:Create table sc(sno CHAR(5),cno CHAR(2),grade INT NULL,constraint PK_SnoCno primary key (sno,cno))域完整性4. 将“ssex”字段设置为只能取“男”,“女”两值:当“student”表已存在则执行:alter table student add constraint CK_Sex check (ssex in ('男' ,'女'))当“student”表不存在则执行:Create table student(sno CHAR(5) primary key ,sname CHAR(10),ssex CHAR(2) check (ssex in ('男' ,'女')) ,sage int, sdept CHAR(4))5. 设置学号字段只能输入数字:alter table student add constraint CK_Sno_Format check (sno like '[0-9][0-9][0-9][0-9][0-9]')6. 设置身份证号的输入格式:alter table student add constraint CK_ID_Format check ((id like '[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR (id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))7. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)alter table student add constraint CK_ID_Format2 check (len(id)=18 and ( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) )6. 设置男生的年龄必须大于22, 女生的年龄必须大于20.Alter table student add constraint CK_age check (ssex='男' and sage>=22 or ssex='女' and sage>=20 )参照完整性9. 将“student”表和“sc”表中的“sno”字段设为参照:当“sc”表已存在则执行:alter table sc add constraint FP_sno foreign key (sno) references student(sno )当“sc”表不存在则执行:Create table sc(sno CHAR(5) constraint FP_snoforeign key references student(sno),cno CHAR(2),grade INT NULL,constraint PK_SnoCno primary key (sno,cno) )实习结果:(文字描述、绘图、截图)建立salary表的Income字段限定在0-9999之间。