广东海洋大学学生实验报告书(学生用表)
实验名称实验1数据库及其对象创建与管理课程名称数据库原理及应用课程号学院(系)信息学院专业计算机科学与技术班级 1113学生姓名 学号 实验地点科技楼实验日期2013-3-31
实验实验目的或Transact-SQL语句修改数据库;
或Transact-SQL语句Student
IF EXISTS (
SELECT *
FROM sys.databases
WHERE NAME='Student'
)
DROP DATABASE Student
GO
CREATE DATABASE Student
ON PRIMARY
(
NAME=Student_dat,
FILENAME='D:\Student_dat.mdf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=Student_log,
FILENAME='D:\Student_log.ldf',
SIZE=5MB,
FILEGROWTH=10%
)
GO
(2)再修改学生课程数据库Student的主数据文件的大小,使其扩大两倍
ALTER DATABASE Student
modify file(
name = Student_dat,
size=30MB)
GO
2.
(1)创建如下四个表:
1) 创建S表:
CREATE TABLE S(
Sno INT PRIMARY KEY ,
Sname CHAR(10) NOT NULL UNIQUE,
Ssex CHAR(2) CHECK(Ssex='男' OR Ssex='女'),
Sage SMALLINT ,
Sdept CHAR(20) NULL DEFAULT '计算机系'
); 创建Course表:
CREATE TABLE Course(
Cno CHAR(4) PRIMARY KEY ,
Cname CHAR(10) NOT NULL,
Tno INT NOT NULL
);
3) 创建SC表:
CREATE TABLE SC(
Sno INT FOREIGN KEY REFERENCES S(Sno),
Cno CHAR(4) FOREIGN KEY REFERENCES Course(Cno),
Grade INT CHECK( Grade>=0 AND Grade<=100 )
);
4) 创建Teacher表:
CREATE TABLE Teacher(
Tno INT PRIMARY KEY ,
Tname CHAR(10) ,
Sdept CHAR(20) NULL DEFAULT '计算机系'
);
(2) 用SSMS修改将刚才所创建表:
①在Course表中插入如下两列:
ALTER TABLE SC ADD Cpno CHAR(4);
ALTER TABLE SC ADD Ccredit INT NOT NULL;
②将SC表中列Grade的类型改为smallint
ALTER TABLE SC DROP CONSTRAINT CK__SC__Grade__164452B1;
--必须先删除约束,再修改列属性
ALTER TABLE SC ALTER COLUMN Grade SMALLINT ;
③在S表中创建CHECK约束,约束名为Sagechk,要求实现年龄在15~45取值
ALTER TABLE S ADD CONSTRAINT Sagechk CHECK(Sage BETWEEN 15 AND 45);
④在Course表中创建外键约束,约束名为Fk_Tno,要求实现Course表中的Tno必须参照Teacher表的Tno取值。
ALTER TABLE Course ADD CONSTRAINT Fk_Tno FOREIGN KEY (Tno) REFERENCES Teacher(Tno) ;
⑤删除Course表中Tno列
--因受到外键Fk_Tno的约束,必须先删除约束Fk_Tno才能删除列Tno;ALTER TABLE Course DROP CONSTRAINT Fk_Tno;
ALTER TABLE Course DROP COLUMN Tno;
(3)删除将刚才所创建Teacher表
DROP TABLE Teacher;
(4)向表插入以下数据
INSERT INTO S( Sno,Sname,Ssex,Sage,Sdept )
VALUES