MySQL查詢語句的45道練習
一、設有一資料庫,包括四個表:學生表(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 | 助教 | 電子工程系 |
#建學生資訊表student create table student ( sno varchar(20) not null primary key, sname varchar(20) not null, ssex varchar(20) not null, sbirthday datetime, class varchar(20) ); #建立教師表 create table teacher ( tno varchar(20) not null primary key, tname varchar(20) not null, tsex varchar(20) not null, tbirthday datetime, prof varchar(20), depart varchar(20) not null ); #建立課程表course create table course ( cno varchar(20) not null primary key, cname varchar(20) not null, tno varchar(20) not null, foreign key(tno) references teacher(tno) ); #建立成績表 create table score ( sno varchar(20) not null primary key, foreign key(sno) references student(sno), cno varchar(20) not null, foreign key(cno) references course(cno), degree decimal ); #新增學生資訊 insert into student values('108','曾華','男','1977-09-01','95033'); insert into student values('105','匡明','男','1975-10-02','95031'); insert into student values('107','王麗','女','1976-01-23','95033'); insert into student values('101','李軍','男','1976-02-20','95033'); insert into student values('109','王芳','女','1975-02-10','95031'); insert into student values('103','陸君','男','1974-06-03','95031'); #新增教師表 insert into teacher values('804','李誠','男','1958-12-02','副教授','計算機系'); insert into teacher values('856','張旭','男','1969-03-12','講師','電子工程系'); insert into teacher values('825','王萍','女','1972-05-05','助教','計算機系'); insert into teacher values('831','劉冰','女','1977-08-14','助教','電子工程系'); #新增課程表 insert into course values('3-105','計算機導論','825'); insert into course values('3-245','作業系統','804'); insert into course values('6-166','數位電路','856'); insert into course values('9-888','高等數學','831'); #新增成績表 insert into score values('103','3-245','86'); insert into score values('105','3-245','75'); insert into score values('109','3-245','68'); insert into score values('103','3-105','92'); insert into score values('105','3-105','88'); insert into score values('109','3-105','76'); insert into score values('103','3-105','64'); insert into score values('105','3-105','91'); insert into score values('109','3-105','78'); insert into score values('103','6-166','85'); insert into score values('105','6-166','79'); insert into score values('109','6-166','81');
1、 查詢Student表中的所有記錄的Sname、Ssex和Class列。
1 | select Sname,Ssex,Class from student |
2、 查詢教師所有的單位即不重複的Depart列。
1 | select distinct Depart from teacher |
3、 查詢Student表的所有記錄。
1 | select * from student |
4、 查詢Score表中成績在60到80之間的所有記錄。
1 | select * from Score
|