1.使用SQL命令建立学生表、课程表和学生作业表
数据类型说明:
1.由于学号,电话号码虽然为数字,但是不参与运算,用数字来存储来浪费空间,所以用char
2.姓名、性别、专业班级、课程名、任课老师为中文,要用ncahr(一个空间占两字节,如果中间有英文,可能会产生截断)。由于姓名、专业班级、课程名、任课老师长度不固定,所以要用nvarchar。
3.日期用date。如果是记录一天的时间(精确到秒)用time。datetime是前面二者的结合,既有日期,还有时间。
4.real是浮点型数据。
键的说明:
1.将学号设为学生表主码。
2.将课程号设为课程表主码。
3.将学号和课程号一起设为学生作业表的主码。其中,学号是来自学生表的外码,课程号是来自课程表的外码。
CREATE TABLE 学生表
(
学号 VARCHAR(10) NOT NULL CONSTRAINT 学号_Prim PRIMARY KEY,
姓名 NVARCHAR(20) NOT NULL,
性别 NVARCHAR NOT NULL,
专业班级 NVARCHAR(20),
出生日期 DATE,
联系电话 CHAR(11),
)
CREATE TABLE 课程表
(
课程号 VARCHAR(10) NOT NULL CONSTRAINT 课程号_Prim PRIMARY KEY,
课程名 NVARCHAR(20) NOT NULL,
学分数 REAL,
学时数 INT,
任课老师 NVARCHAR(20) NOT NULL,
)
CREATE TABLE 学生作业表
(
学号 VARCHAR(10) NOT NULL CONSTRAINT 学号_Fore FOREIGN KEY REFERENCES 学生表(学号),
课程号 VARCHAR(10) NOT NULL CONSTRAINT 课程号_Fore FOREIGN KEY REFERENCES 课程表(课程号),
PRIMARY KEY(学号,课程号),
作业1成绩 INT,
作业2成绩 INT,
作业3成绩 INT,
)
2.在各表中输入对应数据
注意:输入date数据要加引号,空值输入null。
INSERT INTO 学生表(学号,姓名,性别,专业班级,出生日期,联系电话)
VALUES ('0433','张艳','女','生物04','1986-9-13',''),
('0496','李越','男','电子04','1984-2-23','13812908941'),
('0529','赵欣','男','会计05','1984-1-27','13502229358'),
('0531','张志国','男','生物05','1986-9-10','13312562942'),
('0538','于兰兰','女','生物05','1984-2-20','13312004291'),
('0591','王丽丽','女','电子05','1984-3-20','13320804281'),
('0592','王海强','男','电子05','1986-11-1','')
INSERT INTO 课程表(课程号,课程名,学分数,学时数,任课老师)
VALUES ('K001','计算机图形学',2.5,40,'胡晶晶'),
('K002','计算机应用基础',3,48,'任泉'),
('K006','数据结构',4,64,'马跃先'),
('M001','政治经济学',4,64,'孔繁新'),
('S001','高等数学',3,48,'赵晓尘')
INSERT INTO 学生作业表(课程号,学号,作业1成绩,作业2成绩,作业3成绩)
VALUES ('K001','0433',60,75,75),
('K001','0529',70,70,60),
('K001','0531',70,80,80),
('K001','0591',80,90,90),
('K002','0496',80,80,90),
('K002','0529',70,70,85),
('K002','0531',80,80,80),
('K002','0538',65,75,85),
('K002','0592',75,85,85),
('K006','0531',80,80,90),
('K006','0591',80,80,80),
('M001','0496',70,70,80),
('M001','0591',65,75,75),
('S001','0531',80,80,80),
('S001','0538',60,null,80)
创建出的表格:
学生表:
课程表:
学生作业表: