設定有一個數據庫,裏面有4張表:mysql
表結構以下:sql
屬性名 | 數據類型 | 含 義 |
---|---|---|
sno | int | 學號(主鍵) |
sname | varchar | 學生姓名 |
ssex | varchar | 學生性別 |
sbirthday | date | 學生出生年月 |
classid | varchar | 學生所在班級 |
屬性名 | 數據類型 | 含 義 |
---|---|---|
cno | varchar | 課程號(主鍵) |
cname | varchar | 課程名稱 |
tno | int | 教師編號(外鍵) |
屬性名 | 數據類型 | 含 義 |
---|---|---|
sno | int | 學號(外鍵) |
cno | varchar | 課程號(外鍵) |
sdegree | float | 成績 |
屬性名 | 數據類型 | 含 義 |
---|---|---|
tno | int | 編號(主鍵) |
tname | varchar | 教師姓名 |
tsex | varchar | 教師性別 |
tbirthday | date | 教師出生年月 |
professional | varchar | 職稱 |
department | varchar | 教師所在部門 |
先建立數據庫mysql_test,而且設置這個數據庫的編碼字符集爲utf-8。數據庫
學生表:函數
create table student( sno int(10), sname varchar(10), ssex varchar(10), sbirthday date, classid varchar(10) ); alter table student add primary key(sno);
教師表:編碼
create table teacher( tno int(10), tname varchar(12), tsex varchar(10), tbirthday date, professional varchar(20), department varchar(20) ); alter table teacher add primary key(tno);
課程表:spa
create table course( cno varchar(10), cname varchar(20), tno int(10) ); alter table course add primary key(cno); alter table course add constraint fk_course_teacher foreign key(tno) references teacher(tno);
成績表:操作系統
create table score( sno int(10), cno varchar(10), sdegree float(5) ); alter table score add constraint fk_score_student foreign key(sno) references student(sno); alter table score add constraint fk_score_course foreign key(cno) references course(cno);
insert into student (sno,sname,ssex,sbirthday,classid) values(108,'曾華','男','1996-9-1','95033'),(105,'匡明','男','1995-10-2','95031'), (107,'王麗','女','1996-1-23','95033'),(101,'李軍','男','1996-2-20','95033'), (109,'王芳','女','1995-2-10','95031'),(103,'陸君','男','1994-6-3','95031'); insert into teacher(tno,tname,tsex,tbirthday,professional,department) values(804,'李誠','男','1978-12-2','副教授','計算機系'), (856,'張旭','男','1979-3-12','講師','電子工程系'), (825,'王萍','女','1982-5-5','助教','計算機系'), (831,'劉冰','女','1984-8-14','助教','電子工程系'); insert into course(cno,cname,tno) values('3-105','計算機導論',825),('3-245','操做系統',804), ('6-166','數字電路',856),('9-888','高等數學',831); insert into score(sno,cno,sdegree) values (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);
學生表:3d
教師表:code
課程表:blog
成績表:
注意:having 後面只能跟聚合函數,如avg、min、max、sum等聚合函數
CREATE TABLE GRADE(
LOW INT(3),
UPP INT(3),
RANK VARCHAR(1)
);
INSERT INTO GRADE VALUES(90,100,'A');
INSERT INTO GRADE VALUES(80,89,'B');
INSERT INTO GRADE VALUES(70,79,'C');
INSERT INTO GRADE VALUES(60,69,'D');
INSERT INTO GRADE VALUES(0,59,'E');
– 現查詢全部同窗的學號,所選課程號和等級(RANK列)