sql語句學習
針對一個表練習
1.建表
create table student(name Char(20),curriculum Char(20),score Char(20));
插入資料:
INSERT INTO student (name,curriculum,score) VALUES('王五','數學','100');
mysql> select * from student;
+--------+------------+-------+
| name | curriculum | score |
+--------+------------+-------+
| 張三 | 語文 | 81 |
| 張三 | 數學 | 75 |
| 李四 | 語文 | 76 |
| 李四 | 數學 | 90 |
| 王五 | 語文 | 81 |
| 王五 | 數學 | 100 |
+--------+------------+-------+
2.題目開始嘍
select distinct name from student where name not in (select distinct name from student where score<80);
+--------+
| name |
+--------+
| 王五 |
+--------+
select distinct * from student where name not in (select distinct name from student where score<80);
+--------+------------+-------+
| name | curriculum | score |
+--------+------------+-------+
| 王五 | 語文 | 81 |
| 王五 | 數學 | 100 |
+--------+------------+-------+
select distinct * from student where name not in (select distinct name from student where score<80) group by name;
+--------+------------+-------+
| name | curriculum | score |
+--------+------------+-------+
| 王五 | 語文 | 81 |
+--------+------------+-------+
(2)形成如下表格
+--------+--------+--------+
| name | 語文 | 數學 |
+--------+--------+--------+
| 張三 | 81 | 75 |
| 李四 | 76 | 90 |
| 王五 | 81 | 100 |
+--------+--------+--------+
答案:
select name,(select score from student s where curriculum='語文' and s.name=student.name) as 語文,
(select score from student s where curriculum='數學' and s.name=student.name) as 數學 from student group by name;
(3)顯示每一科是否及格,利用case when
+--------+------------+-------+-----------+
| name | curriculum | score | pass |
+--------+------------+-------+-----------+
| 張三 | 語文 | 81 | 及格 |
| 張三 | 數學 | 75 | 不及格 |
| 李四 | 語文 | 76 | 不及格 |
| 李四 | 數學 | 90 | 及格 |
| 王五 | 語文 | 81 | 及格 |
| 王五 | 數學 | 100 | 及格 |
+--------+------------+-------+-----------+
答案:
select name, curriculum,score,(CASE WHEN student.score>=80 THEN '及格' ELSE '不及格' END) as pass from student ;
(4)按分數排序order by
+--------+------------+-------+
| name | curriculum | score |
+--------+------------+-------+
| 王五 | 數學 | 100 |
| 李四 | 數學 | 90 |
| 張三 | 語文 | 81 |
| 王五 | 語文 | 81 |
| 李四 | 語文 | 76 |
| 張三 | 數學 | 75 |
+--------+------------+-------+
答案:(+0因為是char轉int)
select * from student order by score+0 desc ;
/********************************
* 本文來自部落格 “李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
相關文章
- SQL 語句學習SQL
- sql語句學習總結SQL
- mysql sql語句學習(一)MySql
- 簡單的SQL語句學習SQL
- Java學習筆記--sql語句Java筆記SQL
- SQL語句基礎學習之TRIMSQL
- 【SQL Server學習筆記】Delete 語句、Output 子句、Merge語句SQLServer筆記delete
- MyBatis學習 之 三、動態SQL語句MyBatisSQL
- sql 語句練習 In MySQLMySql
- sql 語句練習(2)SQL
- MySql 學習筆記一:SQL語句優化MySql筆記優化
- 學習筆記----一句SQL語句寫個乘法表筆記SQL
- sql 語句練習(3) In MySQLMySql
- shell學習-常用語句
- 學習Scala IF…ELSE 語句
- PLSQL學習——控制語句SQL
- shell 學習之for語句
- 快速學習MySQLSQL語句MySql
- Oracle SQL select練習語句OracleSQL
- SQL語句SQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- Java學習之分支結構---判斷語句:if語句和switch語句Java
- MyBatis學習 之 二、SQL語句對映檔案(1)resultMapMyBatisSQL
- SQL語句基礎學習之Alter Table [記不住呀呵呵]SQL
- SQLite語句學習筆記SQLite筆記
- 學習Rust 條件語句Rust
- python學習:for else語句Python
- 新學習的Java語句Java
- rust學習四、控制語句Rust
- 【MySQL】經典資料庫SQL語句編寫練習題——SQL語句掃盲MySql資料庫
- Java學習中迴圈語句的學習Java
- sql語句大全SQL
- 共享SQL語句SQL
- SQL語句整理SQL
- SQL基本語句SQL
- 精妙Sql語句SQL
- SQL語句集合SQL
- oracle sql語句OracleSQL