目录
/* 预备任务:创建数据库“选课”,包含一个数据文件与一个日志文件 */
--1. 创建Department表(表设计参看P127表6-1)
--4. 创建Student表(表设计参看P127表6-4)
--1. 给Student表增加两个字段:birthday 日期时间型,memo 字符型,50位
/*******************************
第六单元:创建并管理数据表
********************************/
/* 预备任务:创建数据库“选课”,包含一个数据文件与一个日志文件 */
CREATE
DATABASE
选课
ON
PRIMARY
(
NAME
=
选课_data
,
FILENAME
=
'D:\选课_data.mdf'
,
SIZE
=
5MB
,
MAXSIZE
=
50MB
,
FILEGROWTH
=
10
%
)
LOG
ON
(
NAME
=
选课_log
,
FILENAME
=
'D:\选课_log.ldf'
,
SIZE
=
2MB
,
MAXSIZE
=
20MB
,
FILEGROWTH
=
2MB
);
USE
选课
GO
/* 任务:创建数据表(CREATE TABLE) */
--1. 创建Department表(表设计参看P127表6-1)
CREATE
TABLE
Department
(
DepartNo
nvarchar
(
2
)
NOT
NULL
PRIMARY
KEY
,
DepartName
nvarchar
(
20
)
NOT
NULL
);
--2. 创建Course表(表设计参看P127表6-2)
CREATE
TABLE
Course
(
CouNo
nvarchar
(
3
)
NOT
NULL
PRIMARY
KEY
,
CouName
nvarchar
(
30
)
NOT
NULL
,
Kind
nvarchar
(
8
)
NOT
NULL
,
Credit
decimal
(
2
,
1
)
NOT
NULL
,
Teacher
nvarchar
(
20
)
NOT
NULL
,
DepartNo
nvarchar
(
2
)
NOT
NULL
,
SchoolTime
nvarchar
(
10
)
NOT
NULL
,
LimitNum
decimal
(
5
,
0
)
NOT
NULL
,
WillNum
decimal
(
5
,
0
)
NOT
NULL
,
ChooseNum
decimal
(
5
,
0
)
NOT
NULL
);
--3. 创建Class表(表设计参看P127表6-3)
CREATE
TABLE
Class
(
ClassNo
nvarchar
(
8
)
NOT
NULL
PRIMARY
KEY
,
ClassName
nvarchar
(
20
)
NOT
NULL
,
DepartNo
nvarchar
(
2
)
NOT
NULL
);
--4. 创建Student表(表设计参看P127表6-4)
CREATE
TABLE
Student
(
StuNo
nvarchar
(
8
)
NOT
NULL
PRIMARY
KEY
,
StuName
nvarchar
(
10
)
NOT
NULL
,
Pwd
nvarchar
(
8
)
NOT
NULL
,
ClassNo
nvarchar
(
8
)
NOT
NULL
);
--5. 创建StuCou表(表设计参看P127表6-5)
CREATE
TABLE
StuCou
(
StuNo
nvarchar
(
8
)
NOT
NULL
,
CouNo
nvarchar
(
3
)
NOT
NULL
,
WillOrder
tinyint
NOT
NULL
,
State
nvarchar
(
2
)
NOT
NULL
DEFAULT
'报名'
,
RandomNum
nvarchar
(
50
)
NULL
,
PRIMARY
KEY
(StuNo
,CouNo
)
);
--6. 创建Test表(演示标识列的使用)
CREATE
TABLE
Test
(
id
int
NOT
NULL
IDENTITY
(
201501
,
1
),
name
nvarchar
(
8
)
NOT
NULL
,
gender
nvarchar
(
1
)
NOT
NULL
,
age
smallint
NOT
NULL
);
--7. 给Test表插入几条记录,不用管标识列
INSERT
INTO
Test
(name
,gender
,age
)
VALUES
(
'张三丰'
,
'男'
,
18
);
INSERT
INTO
Test
(name
,gender
,age
)
VALUES
(
'李晓霞'
,
'女'
,
19
);
INSERT
INTO
Test
(name
,gender
,age
)
VALUES
(
'甄云文'
,
'女'
,
18
);
INSERT
INTO
Test
(name
,gender
,age
)
VALUES
(
'杨过'
,
'男'
,
20
);
--8. 查看Test表的全部记录
SELECT
*
FROM
Test
;
/* 任务:查看表结构 */
--1. 查看Student表结构
sp_help
Student
--2. 查看Course表结构
sp_help
Course
--3. 查看所有表的概况
sp_help
/* 任务:修改表结构 */
--1. 给Student表增加两个字段:birthday 日期时间型,memo 字符型,50位
ALTER
TABLE
Student
ADD
birthday
datetime
NULL
,
memo
nvarchar
(
50
)
NULL
;
--2. 查看修改过的Student表结构
sp_help
Student
--3. 删除Student表的birthday字段
ALTER
TABLE
Student
DROP
COLUMN
birthday
;
--4. 查看修改过的Student表结构
sp_help
Student
--5. 修改memo字段长度为30位
ALTER
TABLE
Student
ALTER
COLUMN
memo
nvarchar
(
30
)
NOT
NULL
;
--6. 查看修改过的Student表结构
sp_help
Student
--7. 修改“memo”为“beizhu”
sp_rename
'Student.memo'
,
'beizhu'
,
'COLUMN'
--8. 查看修改过的Student表结构
sp_help
Student
/******************************************
知识拓展:临时表(本地与全局)与表变量
*******************************************/
/* 任务:创建一个本地临时表 #t */
CREATE
TABLE
#t
(
StuNo
nvarchar
(
8
)
NOT
NULL
,
StuName
nvarchar
(
10
)
NOT
NULL
)
--1. 往临时表#t里添加一条记录
INSERT
INTO
#t VALUES ('00000001','李晓丹')
--2. 查看临时表#t的内容
SELECT
*
FROM
#t
--3. 给Student表插入几条记录
INSERT
INTO
Student
VALUES
(
'00000002'
,
'李毓莲'
,
'qwerty'
,
'20000001'
,
'优秀'
);
INSERT
INTO
Student
VALUES
(
'00000003'
,
'王晓云'
,
'rttfty'
,
'20000001'
,
'良好'
);
INSERT
INTO
Student
VALUES
(
'00000004'
,
'吴鑫文'
,
'qddrty'
,
'20000001'
,
'中等'
);
INSERT
INTO
Student
VALUES
(
'00000005'
,
'郑智化'
,
'qwehhy'
,
'20000001'
,
'及格'
);
--4. 将Student表的数据插入到临时表#t
INSERT
#t
SELECT
StuNo
,StuName
FROM
Student
--5. 查看临时表#t的内容
SELECT
*
FROM
#t
/* 任务:创建表变量 @t */
DECLARE
@t
TABLE
(StuNo
nvarchar
(
8
)
NOT
NULL
,
StuName
nvarchar
(
10
)
NOT
NULL
)
--1. 在表变量@t里插入一条记录
INSERT
INTO
@t
VALUES
(
'20000009'
,
'王韵霞'
)
--2. 查看表变量@t的内容
SELECT
*
FROM
@t
--3. 将Student表的内容插入表变量@t
INSERT
@t
SELECT
StuNo
,StuName
FROM
Student
--4. 查看表变量@t的内容
SELECT
*
FROM
@t