SQL数据定义与数据查询

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档