实验二:创建及管理数据表
一、实验目的
- 掌握数据库模式的创建方法;
- 掌握数据表的特点;
- 掌握在Management Stuio中创建、编辑及删除数据表;
- 掌握使用T-SQL创建、编辑及删除数据表;
二、实验学时
2学时
三、实验要求
- 完成创建数据库模式;
- 完成基本数据类型的定义;
- 根据T-SQL创建模式创建数据表的语法,完成相应模式和数据表定义和修改;
- 完成实验报告。
四、实验准备知识
- 创建模式(构架)的命令。
CREATE SCHEMA schema_name_clause [ <schema_element> [ ...n ] ]
<schema_name_clause> ::=
{
schema_name
| AUTHORIZATION owner_name
| schema_name AUTHORIZATION owner_name
}
说明:schema_name:在数据库内标识架构的名称。
AUTHORIZATION owner_name:指定将拥有架构的数据库级主体的名称。 此主体还可以拥有其他架构,并且可以不使用当前架构作为其默认架构。
- 创建数据表的命令
CREATE TABLE
[ database_name . [ schema_name ] . | schema_name . ] table_name
( { <column_definition> | <computed_column_definition>
| <column_set_definition> }
[ <table_constraint> ] [ ,...n ] )
FEDERATED ON ( distribution_name = column_name)
[ ; ]
<column_definition> ::=
column_name <data_type>
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ] DEFAULT constant_expression ]
| [ IDENTITY [ ( seed ,increment ) ]
]
[ <column_constraint> [ ...n ] ]
五、实验内容
1.创建及删除模式(构架)
- 在student数据库中新建一个用户test,并给该用户指定一个默认模式stu。
- 在student数据库中创建一个stu的模式给test用户。
- 删除student数据库中的stu模式。
2.界面方式下创建数据表
利用界面方式创建教师授课管理数据库JSSK,并在数据库JSSK中创建下列三张表;
表名:teachers
列名 | 数据类型 | 说明 | 描述 |
Tno | 字符型,长度7 | 主键 | 教师号 |
Tname | 字符型,长度10 | 非空 | 姓名 |
Tsex | 字符型,长度2 | 默认取值为“男” | 性别 |
Birthday | 小日期时间型 | 允许空 | 出生日期 |
Dept | 字符型,长度20 | 允许空 | 所在部门 |
Sid | 字符型,长度18 | 身份证号 |
表名: lessons
列名 | 数据类型 | 说明 | 描述 |
Cno | 字符型,长度10 | 主键 | 课程号 |
Cname | 字符型,长度20 | 非空 | 课程名 |
Credit | 短整型 | 学分 | |
property | 字符型,长度为10 | 课程性质 |
表名: shouke
列名 | 数据类型 | 说明 | 描述 |
Tno | 字符型,长度7 | 主键 | 教师号 |
Cno | 字符型,长度10 | 主键 | 课程名 |
Hours | 整数 | 课时 |
3.命令方式下创建数据表
1)使用T-SQL语句,在实验二中创建的数据库student中创建模式XSKC。
2)在student数据库中建立基于XSKC模式的数据表,表结构如下所示;
student(学生信息表)
字段名称 | 字段类型及长度 | 说明 | 备注 |
sno | char(9) | 学生学号 | 主关键字 |
sname | nvarchar(6) | 学生姓名 | 非空 |
ssex | nchar(1) | 学生性别 | 可为空 |
sage | int | 学生年龄 | 可为空 |
sdept | nvarchar(8) | 学生所在院系 | 可为空 |
course(课程信息表)
字段名称 | 字段类型及长度 | 说明 | 备注 |
cno | char(4) | 课程编号 | 主关键字 |
cname | nvarchar(20) | 课程名称 | 非空 |
cpno | char(4) | 先行课号 | 可为空 |
ccredit | int | 学分 | 可为空 |
sc(选课信息表)
字段名称 | 字段类型及长度 | 说明 | 备注 |
sno | char(9) | 学生学号 | 主关键字 |
cno | char(4) | 课程编号 | 主关键字 |
grade | int | 成绩 | 可为空 |
4.利用命令方式修改表结构
1)在shouke表里添加一个授课类别字段,列名为Type,类型为Char(4);
2)将shouke表的Hours的类型改为smallint;
3)删除lessons表中的property列;
4)在表shouke中删除字段Type;
5)修改表student中字段名为“sname”的字段长度由原来的6改为8;
6)删除数据表lessons;
六、实验步骤
Management界面方式下的操作步骤
打开已经创建的数据库名称前方的小加号,在【表】节点上右击,选择【新建表】命令,打开表设计器窗口。在表设计器窗口中输入列名。选择数据类型及是否允许为空的情况,并在主键字段的前方单击鼠标右键,选择【设置主键】选项。也可以在列属性的说明中标出每个字段代表的含义。设计完成后按Ctrl+S组合键保存,在弹出的对话框中输入表名,单击【确定】按钮。
T-SQL语句方式下的操作步骤:
在【SQL Server Management Studio】窗口左上方选择【新建查询】按钮,启动SQL编辑器窗口,在光标处输入T-SQL语句,单击【执行】按钮。
七、思考题
1.SQL Server中删除模式时,若模式中有数据对象则进行什么处理?
实验报告
1)
CREATE DATABASE student
ON
(NAME = stu,
FILENAME = ‘D:\stu_data.mdf’,
SIZE = 3MB,
MAXSIZE = 500MB,
FILEGROWTH = 10%)
LOG ON
(NAME = stu_log,
FILENAME = ‘D:\stu_log.ldf’,
SIZE = 3MB,
MAXSIZE = unlimited,
FILEGROWTH = 1MB)
2)
CREATE DATABASE Company
ON
(NAME = Company_data,
FILENAME = ‘C:\Company.mdf’,
SIZE = 10MB,
MAXSIZE = unlimited,
FILEGROWTH = 10%)
LOG ON
(NAME = Company_log,
FILENAME = ‘C:\Company.ldf’,
SIZE = 1MB,
MAXSIZE = 50MB,
FILEGROWTH = 1MB)
3)
CREATE DATABASE DB
ON
(NAME = DB_data1,
FILENAME = ‘D:\ceshi\DB_data1.mdf’,
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 10%),
(NAME = DB_data2,
FILENAME = ‘D:\ceshi\DB_data2.mdf’,
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 10%)
LOG ON
(NAME = Company_log,
FILENAME = ‘D:\ceshi\DB_log.ldf’,
SIZE = 3MB,
MAXSIZE = unlimited,
FILEGROWTH = 10%)
2.修改数据库
1)
ALTER DATABASE student
ADD FILE
( NAME = db2,
SIZE = 10MB,
MAXSIZE = 50MB,
FILENAME = ‘D:\db2.mdf’,
FILEGROWTH = 10%)
2)
ALTER DATABASE student
ADD LOG FILE
( NAME = df,
SIZE = 1MB,
MAXSIZE = unlimited,
FILEGROWTH = 1MB,
FILENAME = ‘D:\df.ldf’)
3)
ALTER DATABASE student
MODIFY FILE
( NAME = stu,
SIZE = 10MB,
FILEGROWTH = 20%)
3.删除数据库
1)
ALTER DATABASE student
remove FILE db2
go
ALTER DATABASE student
remove FILE df
2)
DROP DATABASE Company
4.创建及删除模式(构架)
1)
CREATE SCHEMA stu AUTHORIZATION dbo
2)
CREATE SCHEMA AUTHORIZATION test
3)
DROP SCHEMA stu、
七、思考题
右键:数据库名称——任务——分离;
再把数据库文件student从打开的文件夹里复制到文件夹‘D:\xxx‘,;
然后附加数据库:
右键:数据库(数据库名称的上一级)——附加;
在附加窗口中点添加按钮,找到你的数据库文件,然后确定;
这样数据库文件就移动到了新的文件夹了。
仅供参考