实验1 应用SQL Server进行数据定义和管理
【实验目的】
1)熟悉SQL Server的配置和管理。
2)掌握数据库的定义和修改方法。
3)掌握表的定义和修改方法。
4)掌握使用SQL语句进行数据管理的方法。
【实验环境】
SQL Server 2012 Express(或SQL Server 2017 Express)
【实验内容】
实训1 服务器管理
启动,暂停和停止服务的方法很多,这里主要介绍SQL Server 配置管理器完成这些操作,其操作步骤如下:
- 单击“开始”---“Microsoft SQL Server 2012”-----“配置工具”,选择“SQL Server Configuration Manager”,打开SQL Setver配置管理器。单击“SQL Server 2012服务”选项,在右边的对话框里可以看到本地所有的SQL Server服务,包括不同实例的服务,如图1所示。
- 如果要启动、停止、暂停SQL Server服务的话,鼠标指向服务名称,单击右键,在弹出的快捷键菜单里选择“启动”、“停止”、“暂停”即可。
图1 SQL Server 配置服务管理器
实训2 创建和删除数据库
设有一学籍管理系统,其数据库名为“EDUC”,初始大小为6MB,最大为10MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为7MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“D:\DBMS\sql_data”。日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“D:\DBMS\sql_data”。
使用SQL Server Management Studio(简称SSMS)创建上述数据库。
【实验步骤】
1.启动SSMS
在开始菜单中执行SQL Server Management Studio
单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。
2.建立数据库
在“对象资源管理器”窗口,在数据库节点上右击选择“新建”。建立数据库EDUC。
3.使用SQL语句建立数据库
用SSMS删除添加建立的数据库EDUC,执行以下SQL语句
CREATE DATABASE [EDUC] ON PRIMARY
( NAME = N'student_data', FILENAME = N'C:\DBMS\sql_data\student_data.mdf' , SIZE = 6144KB , MAXSIZE = 51200KB , FILEGROWTH = 5%)
LOG ON
( NAME = N'student_log', FILENAME = N'C:\DBMS\sql_data\student_log.ldf' , SIZE = 7168KB , MAXSIZE = 51200KB , FILEGROWTH = 1024KB )
GO
4.基于“模板资源管理器”建立数据库
(1)在Management Studio的“视图”菜单上,选择“模板资源管理器”命令。找到创建数据库的模板,如下图所示。
(2)在“查询”菜单上,选择“指定模板参数的值”命令。
(3)在出现的“指定模板参数的值”对话框中,显示了当前模板中存在的参数、类型和值3列。在此输入相关设置,单击“确定”完成对脚本的编辑。
输入的参数会出现在模板中的合适位置,单击“执行”按钮,将完成利用模板创建新的数据库的操作。
实训3 建立表及数据查询
- 建立学生-课程数据库。
1. 建立“学生”表Student,学号是主码。可使用SQL语句直接执行,也可使用SSMS图形界面操作完成创建表。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY, /* 设为主键*/
Sname CHAR(20),
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
数据如下:
Sno | Sname | Ssex | Sage | Sdept |
200215121 | 李勇 | 男 | 20 | CS |
200215122 | 刘晨 | 女 | 19 | IS |
200215123 | 王敏 | 女 | 18 | MA |
200215125 | 张立 | 男 | 19 | IS |
2. 建立一个“课程”表Course。可使用SQL语句直接执行,也可使用SSMS图形界面操作完成创建表。
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Ccredit SMALLINT
);
数据如下:
Cno | Cname | Cpno | Ccredit |
1 2 3 4 5 6 7 | 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言 | 5
1 6 7
6 | 4 2 4 3 4 2 4 |
3. 建立一个“选课”表SC。可使用SQL语句直接执行,也可使用SSMS图形界面操作完成创建表。
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno) /* 主码由两个属性构成*/
);
数据如下:
Sno | Cno | Grade |
200215121 | 1 | 92 |
200215121 | 2 | 85 |
200215121 | 3 | 88 |
200215122 | 2 | 90 |
200215122 | 3 | 80 |
- 完成以下查询任务,写出SQL语句,并给出执行结果(拷屏形式给出)。
1.查询全体男生的姓名及其出生年份。
2.查询年龄在18~21岁(包括18岁和21岁)之间的男生的姓名、系别和年龄。
3.查询信息系(IS)和计算机科学系(CS)女生的姓名和性别。
4.查询男同学和女同学均选修的课程的课程号。
实训4 自定义数据类型及数据管理
(1) 创建用户定义的数据类型:编号(非空,长度为8的字符型)
创建“编号”类型的SQL语句:
(2) 创建图书数据库(BookSys),并在数据库中建立如下表,要求图书编号、读者编号使用用户定义类型:编号。
图书信息(tsxx)
图书编号 | 书名 | 价格 | 出版社 | 出版日期 | 作者 |
(tusbh) | (shum) | (jiag) | (chubs) | (chubrq) | (zuoz) |
说:图书编号、书名不能为空。
创建“tsxx”表的SQL语句:
读者信息(dzxx)
读者编号 | 姓名 | 身份证号 | 级别 |
(duzbh) | (xingm) | (shenfzh) | (jib) |
说明:读者编号、姓名不能为空。
创建“dzxx”表的SQL语句:
借阅信息(jyxx)
读者编号 | 图书编号 | 借阅日期 | 还书日期 | 是否续借 |
(duzbh) | (tusbh) | (jieyrq) | (huansrq) | (shifxj) |
说明:图书编号、读者编号不能为空。
创建“jyxx”表的SQL语句:
3.完成如下操作。
(1)向读者信息表中添加列:联系方式,可以为空。
SQL语句:
(2)修改列“出版社”的定义,长度修改为200。
SQL语句:
(3)删除“联系方式”一列。
SQL语句:
4.完成如下数据操作。
(1)向各表插入若干数据。
给出向“tsxx”表插入一条记录的SQL语句:
给出向“dzxx”表插入一条记录的SQL语句:
给出向“jyxx”表插入一条记录的SQL语句:
(2)修改读者信息表中编号为00001001的读者的级别为2级。
SQL语句:
Update dzxx
Set jib=’2级’
Where duzbh=’00001001’
(3)删除借阅信息表中读者编号为00001001借阅10010001图书的记录。
SQL语句:
Delete jyxx
Where duzbh =’00001001’ and tusbh =’10010001’