每日一練6
Student表的定義
欄位名 |
欄位描述 |
資料型別 |
主鍵 |
外來鍵 |
非空 |
唯一 |
自增 |
Id |
學號 |
INT(10) |
是 |
否 |
是 |
是 |
是 |
Name |
姓名 |
VARCHAR(20) |
否 |
否 |
是 |
否 |
否 |
Sex |
性別 |
VARCHAR(4) |
否 |
否 |
否 |
否 |
否 |
Birth |
出生年份 |
YEAR |
否 |
否 |
否 |
否 |
否 |
Department |
院系 |
VARCHAR(20) |
否 |
否 |
是 |
否 |
否 |
Address |
家庭住址 |
VARCHAR(50) |
否 |
否 |
否 |
否 |
否 |
Score表的定義
欄位名 |
欄位描述 |
資料型別 |
主鍵 |
外來鍵 |
非空 |
唯一 |
自增 |
Id |
編號 |
INT(10) |
是 |
否 |
是 |
是 |
是 |
Stu_id |
學號 |
INT(10) |
否 |
否 |
是 |
否 |
否 |
C_name |
課程名 |
VARCHAR(20) |
否 |
否 |
否 |
否 |
否 |
Grade |
分數 |
INT(10) |
否 |
否 |
否 |
否 |
否 |
Student資料:
Score資料:
1) 建立student和score表
2)
3) 查詢student表的所有記錄
4) 查詢student表的第2條到4條記錄
5) 從student表查詢所有學生的學號(id)、姓名(name)和院系(department)的資訊
6) 從student表中查詢計算機系和英語系的學生的資訊
7) 從student表中查詢年齡18~22歲的學生資訊
8) 從student表中查詢每個院系有多少人
9) 從score表中查詢每個科目的最高分
10) 查詢李四的考試科目(c_name)和考試成績(grade)
11)
12) 計算每個學生的總成績
13) 計算每個考試科目的平均成績
14) 查詢計算機成績低於95的學生資訊
15) 查詢同時參加計算機和英語考試的學生的資訊
16) 將計算機考試成績按從高到低進行排序
17) 從student表和score表中查詢出學生的學號,然後合併查詢結果
18) 查詢姓張或者姓王的同學的姓名、院系和考試科目及成績
19) 查詢都是湖南的學生的姓名、年齡、院系和考試科目及成績
DROP TABLE IF EXISTS student;) ENGINE=INNODB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS score;
CREATE TABLE score (
Id INT(10) auto_increment PRIMARY KEY ,
Stu_id INT(10) NOT NULL,
C_name VARCHAR(20),
Grade INT(10)
) ENGINE=INNODB DEFAULT CHARSET=utf8; SELECT department,COUNT(Name) FROM student GROUP BY department; SELECT C_name,MAX(Grade) FROM score GROUP BY C_name; CREATE TABLE student (
Id INT(10) auto_increment PRIMARY KEY ,
Name VARCHAR(20) NOT NULL,
Sex VARCHAR(4),
Birth YEAR ,
Department VARCHAR(20) NOT NULL,
Address VARCHAR(50)
SELECT *FROM student LEFT JOIN score ON student.Id = score.Stu_id ; SELECT Name,SUM(Grade) FROM student LEFT JOIN score ON student.Id = score.Stu_id GROUP BY Name ORDER BY SUM(Grade); SELECT Name FROM student LEFT JOIN score ON student.Id = score.Stu_id WHERE C_name = '計算機' AND Grade < '95'; SELECT Name FROM student LEFT JOIN score ON student.Id = score.Stu_id WHERE C_name in('計算機','英語'); SELECT Id FROM student UNION SELECT Stu_id FROM score; SELECT DISTINCT Name FROM student LEFT JOIN score ON student.Id = score.Stu_id WHERE Name LIKE '%一%' OR Name LIKE '%二%';