Mysql基礎教程 mysql進階

Mysql子查詢的形式



使用ANY|SOME或者ALL的子查詢


運算符     關鍵字

ANY

SOME

ALL

>、>=

最小值

最小值

最大值

<、<=

最大值

最大值

最小值

=

任意值

任意值


<>、!=



任意值


查詢獎學金表的記錄


mysql> SELECT * FROM scholarship;
+----+-------+
| id | level |
+----+-------+
|  1 |    90 |
|  2 |    80 |
|  3 |    70 |
+----+-------+
3 rows in set (0.00 sec)


查詢所有獲得獎學金的學員(運用ANY)


mysql> SELECT id,username FROM student WHERE score>=ANY(SELECT level FROM schloarship);
ERROR 1146 (42S02): Table 'cms.schloarship' doesn't exist


得到的結果


mysql> SELECT id,username FROM student WHERE score>=ANY(SELECT level FROM scholarship);
+----+----------+
| id | username |
+----+----------+
|  1 | king     |
|  6 | king5    |
|  7 | king6    |
|  8 | king7    |
+----+----------+
4 rows in set (0.10 sec)


得到的分數


mysql> SELECT id,username,score FROM student WHERE score>=ANY(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  6 | king5    |    75 |
|  7 | king6    |    80 |
|  8 | king7    |    90 |
+----+----------+-------+
4 rows in set (0.00 sec)


查詢所有獲得獎學金的學員(運用SOME)


mysql> SELECT id,username,score FROM student WHERE score>=SOME(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  6 | king5    |    75 |
|  7 | king6    |    80 |
|  8 | king7    |    90 |
+----+----------+-------+
4 rows in set (0.00 sec)


查詢所有學員中獲得一等獎學金的學員


mysql> SELECT id,username,score FROM student WHERE score >=ALL(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  8 | king7    |    90 |
+----+----------+-------+
2 rows in set (0.03 sec)


查詢學員表中沒有獲得獎學金的學員


mysql> SELECT id,username,score FROM student WHERE score<ALL(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  9 | king8    |    25 |
+----+----------+-------+
5 rows in set (0.00 sec)


查詢學員表中獲得獎學金的學員


mysql> SELECT id,username,score FROM student WHERE score<ANY(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  6 | king5    |    75 |
|  7 | king6    |    80 |
|  9 | king8    |    25 |
+----+----------+-------+
7 rows in set (0.01 sec)


查詢學員表中獲得獎學金的學員(<=any)


mysql> SELECT id,username,score FROM student WHERE score<=ANY(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  6 | king5    |    75 |
|  7 | king6    |    80 |
|  8 | king7    |    90 |
|  9 | king8    |    25 |
+----+----------+-------+
8 rows in set (0.00 sec)


(不顯示最大值)


查看獎學金表的記錄


mysql> SELECT * FROM scholarship;
+----+-------+
| id | level |
+----+-------+
|  1 |    90 |
|  2 |    80 |
|  3 |    70 |
+----+-------+
3 rows in set (0.00 sec)


查詢學員表的記錄


mysql> SELECT * FROM student;
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  6 | king5    |    75 |
|  7 | king6    |    80 |
|  8 | king7    |    90 |
|  9 | king8    |    25 |
+----+----------+-------+


查詢學員表中獲得獎學金的學員(=any)


相當于 in


mysql> SELECT id,username,score FROM student WHERE score=ANY(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  7 | king6    |    80 |
|  8 | king7    |    90 |
+----+----------+-------+
2 rows in set (0.00 sec)


查詢學員表中獲得獎學金的學員(=IN)


mysql> SELECT id,username,score FROM student WHERE score IN(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  7 | king6    |    80 |
|  8 | king7    |    90 |
+----+----------+-------+
2 rows in set (0.00 sec)


查詢學員表中獲得獎學金的學員( not  in)


相當于not in


mysql> SELECT id,username,score FROM student WHERE score NOT IN(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  6 | king5    |    75 |
|  9 | king8    |    25 |
+----+----------+-------+
7 rows in set (0.00 sec)


查詢學員表中獲得獎學金的學員(  <> ALL )


mysql> SELECT id,username,score FROM student WHERE score <> ALL(SELECT level FROM scholarship);
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  6 | king5    |    75 |
|  9 | king8    |    25 |
+----+----------+-------+
7 rows in set (0.00 sec)



將查詢結果寫入到數據表


INSERT [INTO] tbl_name [(col_name,...)]
SELECT ...



創建數據表同時將查詢結果寫入到數據表


CREATE TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
select_statement


創建text1表(錯誤的)


mysql> CREATE TABLE test1 (
    -> id TINYINT UNSIGNED ATUO_INCREMENT KEY,
    -> num TINYINT UNSIGNED
    -> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ATUO_INCREMENT KEY,
num TINYINT UNSIGNED
)' at line 2


創建text1表


mysql> CREATE TABLE test1 (
    -> id TINYINT UNSIGNED AUTO_INCREMENT KEY,
    -> num TINYINT UNSIGNED
    -> );
Query OK, 0 rows affected (0.39 sec)


查看text1的記錄


mysql> SELECT * FROM test1;
Empty set (0.05 sec)


插入導入學員表的記錄


mysql> INSERT test1(id,num) 
    -> 
    -> SELECT id,score FROM student;


(運用了子查詢)


Query OK, 9 rows affected (0.07 sec)
Records: 9  Duplicates: 0  Warnings: 0


查詢text1表的記錄


mysql> SELECT * FROM test1;
+----+------+
| id | num  |
+----+------+
|  1 |   95 |
|  2 |   35 |
|  3 |   45 |
|  4 |   55 |
|  5 |   65 |
|  6 |   75 |
|  7 |   80 |
|  8 |   90 |
|  9 |   25 |
+----+------+
9 rows in set (0.00 sec)


創建text2表時導入學員表的記錄


mysql> CREATE TABLE test2 (
    -> id TINYINT UNSIGNED AUTO_INCREMENT KEY,
    -> num TINYINT UNSIGNED
    -> )SELECT id,score FROM student;
Query OK, 9 rows affected (0.39 sec)
Records: 9  Duplicates: 0  Warnings: 0


查看text2表結構


mysql> DESC test2;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| num   | tinyint(3) unsigned | YES  |     | NULL    |                |
| id    | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
| score | tinyint(3) unsigned | YES  |     | NULL    |                |
+-------+---------------------+------+-----+---------+----------------+
3 rows in set (0.04 sec)


查詢text2表的數據


mysql> SELECT * FROM test2;
+------+----+-------+
| num  | id | score |
+------+----+-------+
| NULL |  1 |    95 |
| NULL |  2 |    35 |
| NULL |  3 |    45 |
| NULL |  4 |    55 |
| NULL |  5 |    65 |
| NULL |  6 |    75 |
| NULL |  7 |    80 |
| NULL |  8 |    90 |
| NULL |  9 |    25 |
+------+----+-------+
9 rows in set (0.00 sec)


創建text3表時導入學員表的記錄


mysql> CREATE TABLE test3 (
    -> id TINYINT UNSIGNED AUTO_INCREMENT KEY,
    -> score TINYINT UNSIGNED
    -> )SELECT id,score FROM student;
Query OK, 9 rows affected (0.42 sec)
Records: 9  Duplicates: 0  Warnings: 0


查看text3表結構


mysql> DESC test3;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| id    | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
| score | tinyint(3) unsigned | YES  |     | NULL    |                |
+-------+---------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)


查詢text3的記錄


mysql> SELECT * FROM test3;
+----+-------+
| id | score |
+----+-------+
|  1 |    95 |
|  2 |    35 |
|  3 |    45 |
|  4 |    55 |
|  5 |    65 |
|  6 |    75 |
|  7 |    80 |
|  8 |    90 |
|  9 |    25 |
+----+-------+
9 rows in set (0.00 sec)


查看學員表的記錄


mysql> SELECT * FROM student;
+----+----------+-------+
| id | username | score |
+----+----------+-------+
|  1 | king     |    95 |
|  2 | king1    |    35 |
|  3 | king2    |    45 |
|  4 | king3    |    55 |
|  5 | king4    |    65 |
|  6 | king5    |    75 |
|  7 | king6    |    80 |
|  8 | king7    |    90 |
|  9 | king8    |    25 |
+----+----------+-------+
9 rows in set (0.00 sec)



【本文由麥子學院獨家原創,轉載請注明出處并保留原文鏈接】

logo
? 2012-2016 www.jvbprd.live
蜀ICP備13014270號-4 Version 5.0.0 release20160127

免費領取價值1888元求職寶典!

客服熱線 400-862-8862

回到頂部

彩票安徽25选5 网上用手机浏览广告怎么赚钱 lol如何赚钱买装备 大众麻将下载官方 手机街机捕鱼游戏下载 terratech赚钱 1000元投资股票能赚钱 单机版麻将全集 有很多数据资源怎么赚钱 易点彩票安卓 魔域卖宝宝赚钱 奶爸可以做什么赚钱 小视频赚钱的app有哪些 第十二章 废墟赚钱 一个赚钱的淘宝店需要投多钱 帮人炒股赚钱 期货为哈都不赚钱