MySQL練習1
來源網路,整理後分享
上面是表結構,teacher是老師表,student是學生表,course是課程表,其中TNO欄位是任課老師的編號,SCORE是成績表,其中SNO欄位為學生編號,CNO欄位為課程編號,grade為分數評判表,如90~100分為A,80~89分為B
匯入SQL語句:
DROP DATABASE IF EXISTS test; CREATE DATABASE test; use test; CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL primary key, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR(5)) default charset=utf8; CREATE TABLE TEACHER (TNO VARCHAR(3) NOT NULL primary key, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6), DEPART VARCHAR(10) NOT NULL) default charset=utf8; CREATE TABLE COURSE (CNO VARCHAR(5) NOT NULL primary key, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(3) NOT NULL, foreign key(TNO) references TEACHER(TNO)) default charset=utf8; CREATE TABLE SCORE (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL, primary key(sno, cno), foreign key(SNO) references STUDENT(SNO), foreign key(CNO) references COURSE(CNO) ) default charset=utf8; create table grade( low int(3), upp int(3), rank char(1)); INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('108' ,'曾華' ,'男' ,'1977-09-01','95033'); INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('105' ,'匡明' ,'男' ,'1975-10-02','95031'); INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('107' ,'王麗' ,'女' ,'1976-01-23','95033'); INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('101' ,'李軍' ,'男' ,'1976-02-20','95033'); INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('109' ,'王芳' ,'女' ,'1975-02-10','95031'); INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES ('103' ,'陸君' ,'男' ,'1974-06-03','95031'); INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES ('804','李誠','男','1958-12-02','副教授','計算機系'); INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES ('856','張旭','男','1969-03-12','講師','電子工程系'); INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES ('825','王萍','女','1972-05-05','助教','計算機系'); INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES ('831','劉冰','女','1977-08-14','助教','電子工程系'); INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-105' ,'計算機導論','825'); INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-245' ,'作業系統' ,'804'); INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('6-166' ,'資料電路' ,'856'); INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('9-888' ,'高等數學' ,'825'); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('103','3-245',86); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('105','3-245',75); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('109','3-245',68); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('103','3-105',92); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('105','3-105',88); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('109','3-105',76); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('101','3-105',64); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('107','3-105',91); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('108','3-105',78); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('101','6-166',85); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('107','6-166',79); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES ('108','6-166',81); 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');
練習題目:
1、 查詢Student表中的所有記錄的Sname、Ssex和Class列。
2、 查詢教師所有的單位即不重複的Depart列。
3、 查詢Student表的所有記錄。
4、 查詢Score表中成績在60到80之間的所有記錄。
5、 查詢Score表中成績為85,86或88的記錄。
6、 查詢Student表中“95031”班或性別為“女”的同學記錄。
7、 以Class降序查詢Student表的所有記錄。
8、 以Cno升序、Degree降序查詢Score表的所有記錄。
9、 查詢“95031”班的學生人數。
10、查詢Score表中的最高分的學生學號和課程號。
11、查詢‘3-105’號課程的平均分。
12、查詢Score表中至少有5名學生選修的並以3開頭的課程的Cno和該課程平均分數。
13、查詢最低分大於70,最高分小於90的Sno列。
14、查詢所有學生的Sname、Cno和Degree列。
15、查詢所有學生的Sno、Cname和Degree列。
16、查詢所有學生的Sname、Cname和Degree列。
17、查詢“95033”班所選課程的平均分。
18、查詢所有同學的Sno、Cno和rank列。
19、查詢選修“3-105”課程的成績高於“109”號同學該課程成績的所有同學的sno。
20、查詢score中選學一門以上課程的同學中分數為不是該課程中最高分成績的sno, cno,
degree。
21、查詢成績高於學號為“109”、課程號為“3-105”的成績的sno, cno, degree。
22、查詢和學號為108的同學同年出生的所有學生的Sno、Sname和Sbirthday列。
23、查詢“張旭“教師任課的學生sno,課程cno,成績degree。
24、查詢選修某課程的同學人數多於5人的教師姓名。
25、查詢95033班和95031班全體學生的記錄。
26、查詢存在有85分以上成績的課程Cno.
27、查詢出“計算機系“教師所教課程的成績表。
28、查詢“計算機系”的教師中與“電子工程系“教師不同職稱的Tname和Prof。
29、查詢所有教師和同學的name、sex和birthday.
30、查詢所有“女”教師和“女”同學的name、sex和birthday.
31、查詢成績比該課程平均成績低的同學的成績表。
32、查詢所有任課教師的Tname和Depart.
33 查詢所有未講課的教師的Tname和Depart.
34、查詢至少有2名男生的班號。
35、查詢Student表中不姓“王”的同學記錄。
36、查詢Student表中每個學生的姓名和年齡。
37、查詢Student表中最大和最小的Sbirthday的學生sname, sbirthday。
38、以班號從大到小和年齡從大到小的順序查詢Student表中的sname, class, 年齡。
39、查詢“男”教師及其所上的課程。
40、查詢最高分同學的Sno、Cno和Degree列。
41、查詢和“李軍”同性別的所有同學的Sname.
42、查詢和“李軍”同性別並同班的同學Sname.
43、查詢所有選修“計算機導論”課程的“男”同學的成績表
參考答案下載:https://download.csdn.net/download/hielw/10368639