SQL数据定义与数据查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库上机报告
——数据定义与数据查询
一、写明实验所采用的实验环境:
硬件环境:普通联网的PC机;
操作系统:Windows 2000或者Windows XP;
数据库管理系统:MS SQL Server 2005。
二、给出实验内容与完成情况:
(一)使用命令行方式建立学生课程数据库
(1) 用SQL语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如SC_3112liyan;
CREATE DATABASE SC_1224cxj
ON
(NAME= SC_1224cxj_dat,
FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\
SC_1224cxj_dat.mdf')
LOG ON
(NAME= SC_1224cxj_log,
FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\ SC_1224_log.ldf');
(2) 用SQL语言在学生课程数据库中建立3个表,要求进行完整性定义:
学生关系Student(Sno,Sname,Ssex,Sage,Sdept)其中Sno不能为空,值是唯一的,并且Sname取值也唯一,Sage自定义约束“大于16”
课程关系Course(Cno,Cname,Cpno,Ccredit) 其中Cno不能为空,值是唯一的,并且Cname取值也唯一
教师关系Teacher(Tno,Tname,Department,Email,Salary) 其中Tno不能为空,值是唯一的
选修关系SC(Sno,Cno,Grade) 其中Sno和Cno不能为空,(Sno, Cno)为主码,
Grade的数据类型为int
建立Student表:
CREATE TABLE Student
(Sno CHAR(9)PRIMARY KEY,
Sname CHAR(40)UNIQUE,
Ssex CHAR(2),
Sage SMALLINT CHECK(Sage>16),
Sdept CHAR(20)
);
建立Course表:
CREATE TABLE Course
(Cno CHAR(4)PRIMARY KEY,
Cname CHAR(40)UNIQUE,
Cpno CHAR(4),
Credit SMALLINT,
CONSTRAINT FK_C FOREIGN KEY(Cpno)REFERENCES Course(Cno)
);
建立Teacher表:
CREATE TABLE Teacher
(Tno CHAR(4)PRIMARY KEY,
Tname CHAR(40),
Department CHAR(20),
Email CHAR(100),
Salary INT
);
建立SC表:
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
CONSTRAINT FK_SC1 FOREIGN KEY(Sno)REFERENCES Student(Sno),
CONSTRAINT FK_SC2 FOREIGN KEY(Cno)REFERENCES Course(Cno)
);
(3) 修改数据表:
✓将SC表中Grade的数据类型改为float;
ALTER TABLE SC ALTER COLUMN Grade FLOAT;
✓在Student表中增加一个属性Scome记录学生的入学时间,其数据类型为DATETIME;
ALTER TABLE Student ADD Scome DATETIME;
✓删除Student表中新增加Scome属性;
ALTER TABLE Student DROP COLUMN Scome;
✓删除表Teacher表中的Email属性;
ALTER TABLE Teacher DROP COLUMN Email;
✓删除Student表中对Sname属性创建的Unique约束。(无法删除未建立名字的约束)
建立约束语句:
ALTER TABLE Student ADD CONSTRAINT S_CHECK UNIQUE(Sname);
删除约束语句:
ALTER TABLE Student DROP S_CHECK;
*(4) 用SQL语言分别在3个数据表中插入数据(具体数据可见教材P.82):INSERT
INTO Student
VALUES('200215121','李勇','男',20,'CS');
INSERT
INTO Student
VALUES('200215122','刘晨','女',19,'CS');
INSERT
INTO Student
VALUES('200215123','王敏','女',18,'MA');
INSERT
INTO Student
VALUES('200215125','张立','男',19,'IS');
INSERT
INTO Course
VALUES('1','数据库','5',4);
INSERT
INTO Course
VALUES('2','数学',NULL,2);
INSERT
INTO Course
VALUES('3','信息系统','1',4);
INSERT
INTO Course
VALUES('4','操作系统','6',3);
INSERT
INTO Course