SQL Server 关系表的创建、索引创建和数据插入
一、关系表的创建
COURSE表:
CNO CNAME CPNO CCREDIT
------ -------------------- ------ -------
1 SS 5 4
2 数学 NULL 4
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 NULL 2
7 PASCAL语言 6 4
STUDENT表:
SNO SNAME SSEX SAGE SDEPT
--------- ---------- ------ ------ ----------
200215121 李勇 M 20 CS
200215122 刘晨 F 19 CS
200215123 王敏 F 18 MA
200215125 张立 M 19 IS
SC表:
SNO CNO GRADE
--------- ------ ------
200215121 1 92
200215121 2 85
200215121 3 88
200215122 2 90
200215122 3 80
/****************************************
创建一个数据库 St
*****************************************/
1 CREATE DATABASE St; 2 3 USE St; /*使用ST数据库*/
/****************************************
创建学生表 Student
*****************************************/
1 CREATE TABLE Student ( 2 Sno CHAR(9) PRIMARY KEY, /*学号*/ 3 Sname VARCHAR(10), /*姓名*/ 4 Ssex VARCHAR(6), /*性别*/ 5 Sage SMALLINT, /*年龄*/ 6 Sdept VARCHAR(10) /*院系*/ 7 );
/******************************************
创建课程表 Course
******************************************/
1 CREATE TABLE Course ( 2 Cno SMALLINT PRIMARY KEY, /*课程号*/ 3 Cname VARCHAR(20), /*课程名称*/ 4 Cpno SMALLINT, /*先行课程*/ 5 Ccredit SMALLINT, /*学分*/ 6 FOREIGN KEY (Cpno) REFERENCES Course(Cno) /*定义外键*/ 7 );
/******************************************
创建学生选课表 Sc
*******************************************/
1 CREATE TABLE Sc ( 2 Sno CHAR(9), 3 Cno SMALLINT, 4 Grade SMALLINT, 5 PRIMARY KEY (Sno, Cno), 6 FOREIGN KEY (Sno) REFERENCES Student(Sno), 7 FOREIGN KEY (Cno) REFERENCES Course(Cno) 8 );
二、为关系表创建索引
/**********************************************
为三个表建立索引
***********************************************/
1 CREATE UNIQUE INDEX Courseid ON Course(Cno); 2 CREATE UNIQUE INDEX Studentid ON Student(Sno); 3 CREATE UNIQUE INDEX Scid ON Sc(Sno,Cno); /*默认为升序*/
三、为关系表插入数据
/*******************************************************
为学生表STUDENT插入数据
*********************************************************/
1 INSERT INTO STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES('200215121','李勇','M',20,'CS'); 2 INSERT INTO STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES('200215122','刘晨','F',19,'CS'); 3 INSERT INTO STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES('200215123','王敏','F',18,'MA'); 4 INSERT INTO STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES('200215125','张立','M',19,'IS');
/*************************************************
为课程表COURSE插入数据
**************************************************/
1 INSERT INTO COURSE(CNO, CNAME,CPNO,CCREDIT) VALUES(1,'SS',NULL,4); 2 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT) VALUES(2,'数学',NULL,4); 3 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT) VALUES(3,'信息系统',1,4); 4 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT) VALUES(4,'操作系统',NULL,3); 5 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT) VALUES(5,'数据结构',NULL,4); 6 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT) VALUES(6,'数据处理',NULL,2); 7 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT) VALUES(7,'PASCAL语言',NULL,4); 8 UPDATE COURSE SET CPNO=5 WHERE CNO=1; 9 UPDATE COURSE SET CPNO=6 WHERE CNO=4; 10 UPDATE COURSE SET CPNO=7 WHERE CNO=5; 11 UPDATE COURSE SET CPNO=6 WHERE CNO=7;
/***************************************************
为选课表SC插入数据
****************************************************/
1 INSERT INTO SC(SNO,CNO,GRADE) VALUES('200215121',1,92); 2 INSERT INTO SC(SNO,CNO,GRADE) VALUES('200215121',2,85); 3 INSERT INTO SC(SNO,CNO,GRADE) VALUES('200215121',3,88); 4 INSERT INTO SC(SNO,CNO,GRADE) VALUES('200215122',2,90); 5 INSERT INTO SC(SNO,CNO,GRADE) VALUES('200215122',3,80);