实验二 数据库表/视图的创建与维护实验
实验目的
1. 通过进行数据库表的建立操作,熟悉并掌握 SQL SERVER 数据库表的建立方法,理解
关系数据库表的结构,巩固 SQL 标准中关于数据库表的建立语句;
2. 通过进行数据库表数据的增加、删除和插入等维护操作,熟悉并掌握 SQL SERVER 数
据库数据的操作方法,巩固 SQL 中关于数据维护的语句;
3. 通过对 SQL SERVER 中建立、维护视图的实验,熟悉 SQL SERVER 中对视图的操作方
法和途径,理解和掌握视图的概念。
实验内容
建立相应的表并熟悉基本操作,例如数据增删改、表结构修改等。
实验环境
C/S 结构,SQL Server 企业版服务器及客户端;
数据库存储在服务器上,表和视图定义也存储在服务器上,同学可通过网络使用客户端
连接到服务器上进行操作。
实验要求
本实验内容比较繁多,要求同学一定要进行完整实验并做出详尽记录。
实验步骤
1. 熟悉课程实验背景知识;
2. 根据物理模式使用 SQL Server 创建相应的表(假设数据库已在上次实验做好,如
果没有做好,就需要先建立自己的数据库);
这里通过 SQL 语言建立表格,所编写的脚本内容如下:
--创建book表
CREATE TABLE book
(book_id varchar(15) PRIMARY KEY NOT NULL,
book_name varchar(50) NOT NULL,
publish_company varchar(30) NOT NULL,
author varchar(10) NOT NULL,
price money NOT NULL)
--创建course表
CREATE TABLE course
(course_id varchar(15) PRIMARY KEY NOT NULL,
course_name varchar(50) NOT NULL,
book_id varchar(15) NOT NULL,
total_perior int NOT NULL,
week_perior int NOT NULL,
credit int NOT NULL,
CONSTRAINT FK_COURSE_BOOK_ID FOREIGN KEY (book_id)
REFERENCES book)
--department表
CREATE TABLE department
(department_id varchar(10) PRIMARY KEY NOT NULL,
department_name varchar(20) NOT NULL,
department_header varchar(10) NOT NULL,
teacher_num int NOT NULL)
--class表
CREATE TABLE class
(class_id varchar(10) PRIMARY KEY NOT NULL,
monitor varchar(10) NOT NULL,
classroom char(20) NOT NULL,
department_id varchar(10) NOT NULL,
CONSTRAINT FK_CLASS_DEPARTMENT_ID FOREIGN KEY (department_id)
REFERENCES department)
--class_course表
CREATE TABLE class_course
(class_id varchar(10) NOT NULL,
course_id varchar(15) NOT NULL,
CONSTRAINT FK_CLASS_COURSE_CLASS_ID FOREIGN KEY (class_id) REFERENCES class,
CONSTRAINT FK_CLASS_COURSE_COURSE_ID FOREIGN KEY (course_id) REFERENCES course)
--student表
CREATE TABLE student
(student_id varchar(10) PRIMARY KEY NOT NULL,
student_name varchar(10) NOT NULL,
sex char(2) NOT NULL,
birth date NOT NULL,
class_id varchar(10) NOT NULL,
entrance_date date NOT NULL,
home_addr varchar(50),
CONSTRAINT FK_STUDENT_CLASS_ID FOREIGN KEY (class_id) REFERENCES class)
--student_course表
CREATE TABLE student_course
(course_id char(10) NOT NULL,
student_id varchar(10) NOT NULL,
grade int NOT NULL,
credit int NOT NULL,
semester int NOT NULL,
school_year char(10) NOT NULL,
CONSTRAINT FK_STUDENT_COURSE_STUDENT_ID FOREIGN KEY (student_id) REFERENCES student)
--teacher表
CREATE TABLE teacher
(teacher_id char(10) PRIMARY KEY NOT NULL,
teacher_name varchar(10) NOT NULL,
sex char(2) NOT NULL,
birth date NOT NULL,
department_id varchar(10) NOT NULL,
profession varchar(10) NOT NULL,
telephone varchar(15) NOT NULL,
home_addr varchar(50) NOT NULL,
postalcode char(6) NOT NULL,
CONSTRAINT FK_TEACHER_DEPARTMENT_ID FOREIGN KEY (department_id) REFERENCES department)
--teacher_course_class表
CREATE TABLE teacher_course_class
(teacher_id char(10) NOT NULL,
course_id varchar(15) NOT NULL,
class_id varchar(10) NOT NULL,
semester int NOT NULL,
school_year char(10) NOT NULL,
sourse_schedule char(15) NOT NULL,
course_classroom char(20) NOT NULL,
book_id varchar(15) NOT NULL,
CONSTRAINT FK_TEACHER_COURSE_CLASS_COURSE_ID FOREIGN KEY (course_id) REFERENCES course,
CONSTRAINT FK_TEACHER_COURSE_CLASS_CLASS_ID FOREIGN KEY (class_id) REFERENCES class,
CONSTRAINT FK_TEACHER_COURSE_CLASS_BOOK_ID FOREIGN KEY (book_id) REFERENCES book)
然后 F5 执行,没有报错,成功后建立表格。
3. 将教师提供的数据导入表;
1) 选中数据库“学生选课”->任务->导入数据
2) 接下来就进入 SQL Server 的数据导入向导了,不过由于老师给的基础实验数据不够
规范,不能直接进行导入,我们需要先对老师给的数据进行整理,建立相应的 excel
表格,然后在进行数据导入。以下以导入 book 表为例:
3) 选择数据源,我们选择 Microsoft Excel:
4)接下来是选择导入目标,我们选择 Microsoft OLE DB Provider for SQL Server:
5)下一步指定表复制或查询,选择第一个:
6)下一步,选择源表和目的视图,由于我们要将数据导入 book 表,自然选择 dbo.book:
7)下一步,查看数据类型映射: