SQL练习(1)
设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。
用SQL语句创建四个表并完成相关题目:
表1-1数据库的表结构
表(一)Student (学生表)
属性名 | 数据类型 | 可否为空 | 含义 |
---|---|---|---|
Sno | varchar (20) | 否 | 学号(主码) |
Sname | varchar (20) | 否 | 学生姓名 |
Ssex | varchar (20) | 否 | 学生性别 |
Sbirthday | datetime | 可 | 学生出生年月 |
Class | varchar (20) | 可 | 学生所在班级 |
表(二)Course(课程表)
属性名 | 数据类型 | 可否为空 | 含义 |
---|---|---|---|
Cno | varchar (20) | 否 | 课程号(主码) |
Cname | varchar (20) | 否 | 课程名称 |
Tno | varchar (20) | 否 | 教工编号(外码) |
表(三)Score(成绩表)
属性名 | 数据类型 | 可否为空 | 含 义 |
---|---|---|---|
Sno | varchar (20) | 否 | 学号(外码) |
Cno | varchar (20) | 否 | 课程号(外码) |
Degree | Decimal(4,1) | 可 | 成绩 |
主码:Sno+ Cno |
表(四)Teacher(教师表)
属性名 | 数据类型 | 可否为空 | 含 义 |
---|---|---|---|
Tno | varchar (20) | 否 | 教工编号(主码) |
Tname | varchar (20) | 否 | 教工姓名 |
Tsex | varchar (20) | 否 | 教工性别 |
Tbirthday | datetime | 可 | 教工出生年月 |
Prof | varchar (20) | 可 | 职称 |
Depart | varchar (20) | 否 | 教工所在部门 |
表1-2数据库中的数据
表(一)Student
Sno | Sname | Ssex | Sbirthday | class |
---|---|---|---|---|
108 | 曾华 | 男 | 1977-09-01 | 95033 |
105 | 匡明 | 男 | 1975-10-02 | 95031 |
107 | 王丽 | 女 | 1976-01-23 | 95033 |
101 | 李军 | 男 | 1976-02-20 | 95033 |
109 | 王芳 | 女 | 1975-02-10 | 95031 |
103 | 陆君 | 男 | 1974-06-03 | 95031 |
表(二)Course
Cno | Cname | Tno |
---|---|---|
3-105 | 计算机导论 | 825 |
3-245 | 操作系统 | 804 |
6-166 | 数字电路 | 856 |
9-888 | 高等数学 | 831 |
表(三)Score
Sno | Cno | Degree |
---|---|---|
103 | 3-245 | 86 |
105 | 3-245 | 75 |
109 | 3-245 | 68 |
103 | 3-105 | 92 |
105 | 3-105 | 88 |
109 | 3-105 | 76 |
101 | 3-105 | 64 |
107 | 3-105 | 91 |
108 | 3-105 | 78 |
101 | 6-166 | 85 |
107 | 6-166 | 79 |
108 | 6-166 | 81 |
表(四)Teacher
Tno | Tname | Tsex | Tbirthday | Prof | Depart |
---|---|---|---|---|---|
804 | 李诚 | 男 | 1958-12-02 | 副教授 | 计算机系 |
856 | 张旭 | 男 | 1969-03-12 | 讲师 | 电子工程系 |
825 | 王萍 | 女 | 1972-05-05 | 助教 | 计算机系 |
831 | 刘冰 | 女 | 1977-08-14 | 助教 | 电子工程系 |
题目及答案
create database lalala;
use lalala;
create table Student (Sno varchar (20), Sname varchar (20) not null, Ssex varchar (20) not null, Sbirthday datetime, Class varchar (20), primary key (Sno));
create table Course (Cno varchar (20), Cname varchar (20) not null, Tno varchar (20) not null, primary key (Cno));
create table Score (Sno varchar (20), Cno varchar (20) not null, Degree Decimal(4,1), primary key(Sno, Cno));
create table Teacher (Tno varchar (20) primary key, Tname varchar (20) not null, Tsex varchar (20) not null, Tbirthday datetime, Prof varchar (20), Depart varchar (20) not null);
alter table Score add constraint fkSno foreign key (Sno) references Student (Sno);
alter table Score add constraint fkCno foreign key (Cno) references Course (Cno);
alter table Course add constraint fkTno foreign key (Tno) references Teacher(Tno);
-- alter table Score drop foreign key fk1;
-- alter table Score drop foreign key fk2;
-- select * from student;
insert into Student value ('108', '曾华', '男', '1977-09-01', '95033');
insert into Student value ('105', '匡明', '男', '1975-10-02', '95031');
insert into Student value ('107', '王丽', '女', '1976-01-23', '95033');
insert into Student value ('101', '李军', '男', '1976-02-20', '95033');
insert into Student value ('109', '王芳', '女', '1975-02-10', '95031');
insert into Student value ('103', '陆君', '男', '1974-06-03', '95031');
insert into course value ('3-105', '计算机导论', '825');