国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL 基本操作1

這篇具有很好參考價(jià)值的文章主要介紹了MySQL 基本操作1。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

Create

insert

插入跟新 1

插入跟新 2

Retrive

select

where 子句查詢

1.查找數(shù)學(xué)成績(jī)小于 80 的同學(xué)。

2.查詢數(shù)學(xué)成績(jī)等于90分的同學(xué)。

3.查詢總分大于240 的學(xué)生

4.查詢空值或者非空值

5.查詢語文成績(jī)?cè)?0~80之間的同學(xué)

6.查詢英語成績(jī)是99 和 93 和 19 和 30

7.模糊匹配

排序

LIMIT


mysql 的基本操作就是:CURD

  • Create(創(chuàng)建)

  • Retrive(讀?。?/p>

  • Update(跟新)

  • Delete(刪除)

Create

insert

這里就對(duì)應(yīng)的是表數(shù)據(jù)的操作,而不是表結(jié)構(gòu)的操作,這里的 create 也表示的是插入也就是 insert

insert [into]
table_name [(column, ...)]
values(value_list), [(value_list)], ...
value_list: value, [value, ][... ,]

上面就是插入的語法,還是直接看一下插入示例:

mysql> create table exam_result(
 ?  -> id int primary key auto_increment,
 ?  -> name varchar(12) not null,
 ?  -> chinese tinyint unsigned,
 ?  -> math tinyint unsigned,
 ?  -> engilsh tinyint unsigned
 ?  -> );
Query OK, 0 rows affected (0.01 sec)
?
mysql> desc exam_result;
+---------+---------------------+------+-----+---------+----------------+
| Field ? | Type ? ? ? ? ? ? ?  | Null | Key | Default | Extra ? ? ? ?  |
+---------+---------------------+------+-----+---------+----------------+
| id ? ?  | int(11) ? ? ? ? ? ? | NO ? | PRI | NULL ?  | auto_increment |
| name ?  | varchar(12) ? ? ? ? | NO ? | ? ? | NULL ?  | ? ? ? ? ? ? ?  |
| chinese | tinyint(3) unsigned | YES  | ? ? | NULL ?  | ? ? ? ? ? ? ?  |
| math ?  | tinyint(3) unsigned | YES  | ? ? | NULL ?  | ? ? ? ? ? ? ?  |
| engilsh | tinyint(3) unsigned | YES  | ? ? | NULL ?  | ? ? ? ? ? ? ?  |
+---------+---------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

上面是創(chuàng)建一張表,考試成績(jī)表,下面插入數(shù)據(jù):

首先介紹一下語法:

  • into 是可以有也可以沒有,但是為了語法的完整性,還是帶上比較好。

  • 表名后面跟的是想要插入的列名,如果沒有寫表示全列插入。

  • values 后面表示要插入的值,插入值的順序要和表明后面的順序相同,如果沒有寫,那么就要按照表里面的值的順序來插入。

  • 插入不僅可以插入一行記錄,也可以插入多行記錄,插入插入多行數(shù)據(jù)的話要用逗號(hào)隔開。

mysql> insert into exam_result (id, name, chinese, math, english) values (1, '林黛玉', 98, 90, 99);
Query OK, 1 row affected (0.00 sec)
?
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name ? ?  | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉 ?  | ? ?  98 | ? 90 | ? ?  99 |
+----+-----------+---------+------+---------+
1 row in set (0.00 sec)

上面沒有省略,插入成功,下面我們省略表明后面的列名,全列插入:

mysql> insert into exam_result values (2, '沙和尚', 77, 87, 72);
Query OK, 1 row affected (0.00 sec)
?
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name ? ?  | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉 ?  | ? ?  98 | ? 90 | ? ?  99 |
|  2 | 沙和尚 ?  | ? ?  77 | ? 87 | ? ?  72 |
+----+-----------+---------+------+---------+
2 rows in set (0.00 sec)

全列插入就不能省略,這個(gè)也插入成功了,下面試一下全列插入:

mysql> insert into exam_result(name, chinese, math, english) values ('薛寶釵', 88, 90, 88), ('趙姨娘', 79, 90, 93), ('唐三藏', 72, 60, 56);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0
?
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name ? ?  | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉 ?  | ? ?  98 | ? 90 | ? ?  99 |
|  2 | 沙和尚 ?  | ? ?  77 | ? 87 | ? ?  72 |
|  3 | 薛寶釵 ?  | ? ?  88 | ? 90 | ? ?  88 |
|  4 | 趙姨娘 ?  | ? ?  79 | ? 90 | ? ?  93 |
|  5 | 唐三藏 ?  | ? ?  72 | ? 60 | ? ?  56 |
+----+-----------+---------+------+---------+
5 rows in set (0.00 sec)

上面就插入完成了。

插入跟新 1

insert ... on duplicate key update 列名 = value, ...

再插入了之后有可能會(huì)插入失敗,也就是里面的唯一鍵或者主鍵有重復(fù)等情況所以如果有重復(fù)插入失敗的話就跟新里面的值。

mysql> insert into exam_result values (2, '沙和尚', 77, 87, 72) on duplicate key update id = 6, name = '沙悟凈', chinese = 77, math = 87, english = 72;
Query OK, 2 rows affected (0.00 sec)
?
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name ? ?  | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉 ?  | ? ?  98 | ? 90 | ? ?  99 |
|  3 | 薛寶釵 ?  | ? ?  88 | ? 90 | ? ?  88 |
|  4 | 趙姨娘 ?  | ? ?  79 | ? 90 | ? ?  93 |
|  5 | 唐三藏 ?  | ? ?  72 | ? 60 | ? ?  56 |
|  6 | 沙悟凈 ?  | ? ?  77 | ? 87 | ? ?  72 |
+----+-----------+---------+------+---------+
5 rows in set (0.00 sec)

而跟新后的值也是自己設(shè)定的。

插入跟新 2

mysql> replace into exam_result (id, name, chinese, math, english) values(7, '白龍馬', 90, 46, 50);
Query OK, 1 row affected (0.00 sec)
?
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name ? ?  | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉 ?  | ? ?  98 | ? 90 | ? ?  99 |
|  3 | 薛寶釵 ?  | ? ?  88 | ? 90 | ? ?  88 |
|  4 | 趙姨娘 ?  | ? ?  79 | ? 90 | ? ?  93 |
|  5 | 唐三藏 ?  | ? ?  72 | ? 60 | ? ?  56 |
|  6 | 沙悟凈 ?  | ? ?  77 | ? 87 | ? ?  72 |
|  7 | 白龍馬 ?  | ? ?  90 | ? 46 | ? ?  50 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)

這個(gè)語法就是如果沒有重復(fù)那么就是插入,如果有重復(fù)就講重復(fù)替換。

下面看一下重復(fù)后替換:

mysql> replace into exam_result (id, name, chinese, math, english) values(7, '小白龍', 99, 20, 19);
Query OK, 2 rows affected (0.00 sec)

mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   60 |      56 |
|  6 | 沙悟凈    |      77 |   87 |      72 |
|  7 | 小白龍    |      99 |   20 |      19 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)

下面就是重復(fù)后替換。

Retrive

select

select 是mysql 里面最常用的一個(gè),下面看一下查詢。

查詢?nèi)繑?shù)據(jù):

select [表達(dá)式][列名] from table_name;

簡(jiǎn)單查詢的語法下面看一下:

mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   60 |      56 |
|  6 | 沙悟凈    |      77 |   87 |      72 |
|  7 | 小白龍    |      99 |   20 |      19 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)

想要查詢所有的數(shù)據(jù)就是 select * ,但是如果數(shù)據(jù)庫(kù)里面數(shù)據(jù)量太大的話, select * 傳輸?shù)臄?shù)據(jù)太大,所以不適合 select * 查詢,但是如果在自己的數(shù)據(jù)庫(kù)里面,那么就是無所謂的。

select 不光能查詢表里面的數(shù)據(jù),還可以在后面輸入表達(dá)式:

mysql> select 1 + 1;
+-------+
| 1 + 1 |
+-------+
|     2 |
+-------+
1 row in set (0.00 sec)

mysql> select NULL;
+------+
| NULL |
+------+
| NULL |
+------+
1 row in set (0.00 sec)

mysql> select database();
+------------+
| database() |
+------------+
| CURD       |
+------------+
1 row in set (0.00 sec)

select 后面還可以跟函數(shù)。

下面看一下select 查詢表里面的數(shù)據(jù):

mysql> select id, name, chinese, math, english from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   60 |      56 |
|  6 | 沙悟凈    |      77 |   87 |      72 |
|  7 | 小白龍    |      99 |   20 |      19 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)

也可以這樣查詢表里面的數(shù)據(jù),也可以改變查詢的內(nèi)容:

mysql> select name, id from exam_result;
+-----------+----+
| name      | id |
+-----------+----+
| 林黛玉    |  1 |
| 薛寶釵    |  3 |
| 趙姨娘    |  4 |
| 唐三藏    |  5 |
| 沙悟凈    |  6 |
| 小白龍    |  7 |
+-----------+----+
6 rows in set (0.01 sec)

既然 select 后面可以計(jì)算,那么也可以計(jì)算,下面可以算一下他們的總分:

mysql> select name, chinese, math, english, chinese+math+english from exam_result;
+-----------+---------+------+---------+----------------------+
| name      | chinese | math | english | chinese+math+english |
+-----------+---------+------+---------+----------------------+
| 林黛玉     |      98 |   90 |      99 |                  287 |
| 薛寶釵     |      88 |   90 |      88 |                  266 |
| 趙姨娘     |      79 |   90 |      93 |                  262 |
| 唐三藏     |      72 |   60 |      56 |                  188 |
| 沙悟凈     |      77 |   87 |      72 |                  236 |
| 小白龍     |      99 |   20 |      19 |                  138 |
+-----------+---------+------+---------+----------------------+
6 rows in set (0.00 sec)

但是這里看到輸出出來的數(shù)據(jù)不好看,其實(shí) myslq 也可以重命名的:

... as new_name
mysql> select name, chinese, math, english, chinese+math+english as 總分 from exam_result;
+-----------+---------+------+---------+--------+
| name      | chinese | math | english | 總分   |
+-----------+---------+------+---------+--------+
| 林黛玉     |      98 |   90 |      99 |    287 |
| 薛寶釵     |      88 |   90 |      88 |    266 |
| 趙姨娘     |      79 |   90 |      93 |    262 |
| 唐三藏     |      72 |   60 |      56 |    188 |
| 沙悟凈     |      77 |   87 |      72 |    236 |
| 小白龍     |      99 |   20 |      19 |    138 |
+-----------+---------+------+---------+--------+
6 rows in set (0.00 sec)

除了上面的 as 重命名,其實(shí)也可以不帶 as 直接空格也可以:

mysql> select name, chinese, math, english, chinese+math+english 總分 from exam_result;
+-----------+---------+------+---------+--------+
| name      | chinese | math | english | 總分   |
+-----------+---------+------+---------+--------+
| 林黛玉     |      98 |   90 |      99 |    287 |
| 薛寶釵     |      88 |   90 |      88 |    266 |
| 趙姨娘     |      79 |   90 |      93 |    262 |
| 唐三藏     |      72 |   60 |      56 |    188 |
| 沙悟凈     |      77 |   87 |      72 |    236 |
| 小白龍     |      99 |   20 |      19 |    138 |
+-----------+---------+------+---------+--------+
6 rows in set (0.00 sec)

where 子句查詢

select 查詢除了可以查詢表里面的數(shù)據(jù),還可以篩選,而 where 就可以篩選。

where 既然可以篩選,那么也可以有判斷,下面看一下 where 后面跟些判斷的內(nèi)容。

運(yùn)算符 說明
>, >=, <, <= 大于,大于等于,小于,小于等于
= 等于,NULL 不安全,例如 NULL = NULL 的結(jié)果是 NULL
<=> 等于,NULL 安全,例如 NULL <=> NULL 的結(jié)果是 TRUE(1)
!=, <> 不等于
BETWEEN a and b 范圍匹配,[a0,a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option) 如果是 option 中的任意一個(gè),返回 TRUE(1)
IS NULL 是 NULL
IS NOT NULL 不是 NULL
LIKE 模糊匹配。% 表示任意多個(gè) (包括 0 個(gè)) 任意字符,_表示任意一個(gè)字符
運(yùn)算符 說明
AND 多個(gè)條件必須都為 TRUE()1結(jié)果才是 TRUE(1)
OR 任意一個(gè)條件為 TRUE1), 結(jié)果為 TRUE(1)
NOT 條件為 TRUE(1),結(jié)果為 FALSE(0)

上面就是 where 后面可以跟的運(yùn)算符。

根據(jù)下面的表來看一下運(yùn)算符:

+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉     |      98 |   90 |      99 |
|  3 | 薛寶釵     |      88 |   90 |      88 |
|  4 | 趙姨娘     |      79 |   90 |      93 |
|  5 | 唐三藏     |      72 |   60 |      56 |
|  6 | 沙悟凈     |      77 |   87 |      72 |
|  7 | 小白龍     |      99 |   20 |      19 |
+----+-----------+---------+------+---------+
1.查找數(shù)學(xué)成績(jī)小于 80 的同學(xué)。
mysql> select name, math from exam_result where math<90;
+-----------+------+
| name      | math |
+-----------+------+
| 唐三藏    |   60 |
| 沙悟凈    |   87 |
| 小白龍    |   20 |
+-----------+------+
3 rows in set (0.00 sec)

上面就查詢到了數(shù)學(xué)小于90分的同學(xué)。

2.查詢數(shù)學(xué)成績(jī)等于90分的同學(xué)。
mysql> select name, math from exam_result where math=90;
+-----------+------+
| name      | math |
+-----------+------+
| 林黛玉    |   90 |
| 薛寶釵    |   90 |
| 趙姨娘    |   90 |
+-----------+------+
3 rows in set (0.00 sec)

上面看到 = 顯示 NULL 不安全,= 不能查詢 NULL,下面看一下:

3.查詢總分大于240 的學(xué)生
mysql> select name, chinese+english+math from exam_result where chinese+english+math > 240;
+-----------+----------------------+
| name      | chinese+english+math |
+-----------+----------------------+
| 林黛玉    |                  287 |
| 薛寶釵    |                  266 |
| 趙姨娘    |                  262 |
+-----------+----------------------+
3 rows in set (0.00 sec)

雖然查詢出來了,但是上面的寫法太難看了,我們可以使用重命名:

mysql> select name, chinese+english+math 總分 from exam_result where chinese+english+math > 240;
+-----------+--------+
| name      | 總分   |
+-----------+--------+
| 林黛玉    |    287 |
| 薛寶釵    |    266 |
| 趙姨娘    |    262 |
+-----------+--------+
3 rows in set (0.00 sec)

這樣寫就好多了,但是后面 where 這樣寫也有點(diǎn)長(zhǎng)罵我們可不可以用 重命名:

mysql> select name, chinese+english+math 總分 from exam_result where 總分 > 240;
ERROR 1054 (42S22): Unknown column '總分' in 'where clause'

這里顯示不認(rèn)識(shí) “總分”為什么?

這里其實(shí)是因?yàn)閙ysql 的執(zhí)行是有順序的,如果我們想要查詢得到的數(shù)據(jù),書不是先要有數(shù)據(jù),也就是有表,有了表之后我們還要對(duì)數(shù)據(jù)進(jìn)行篩選也就是 where 等篩選之后才可以講數(shù)據(jù)得到然后在顯示出來,所以說 where 一定在顯示重命名之前,所以數(shù)據(jù)還沒有重命名然后就被拿來當(dāng)篩選,那么當(dāng)然是不認(rèn)識(shí)的,那么我們能不能在 where 處之間重命名然后在前面使用?

mysql> select name, 總分 from exam_result where chinese+english+math 總分 > 240;
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 '總分 > 240' at line 1

這樣也是不可以的,因?yàn)榕c發(fā)出規(guī)定 where 后面不能重命名。

所以我們?cè)趯?sql 語句的時(shí)候一定要注意其執(zhí)行順序,否則就是一條錯(cuò)誤的 sql 語句。

4.查詢空值或者非空值

下面重新創(chuàng)建一個(gè)表插入一些空值:

mysql> create table test_null(
    -> id int,
    -> name varchar(12));
Query OK, 0 rows affected (0.01 sec)

mysql> desc test_null;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(12) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

下面插入數(shù)據(jù),插入部分空值:

mysql> insert into test_null(id, name) values(1, '張三');
Query OK, 1 row affected (0.00 sec)

mysql> insert into test_null(id, name) values(null, '李四');
Query OK, 1 row affected (0.00 sec)

mysql> insert into test_null(id, name) values(3, null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from test_null;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 張三   |
| NULL | 李四   |
|    3 | NULL   |
+------+--------+
3 rows in set (0.00 sec)

下面測(cè)試 = NULL:

mysql> select * from test_null where name=NULL;
Empty set (0.00 sec)

mysql> select * from test_null where id=null;
Empty set (0.00 sec)

上面兩個(gè)查詢都沒有查詢到結(jié)果,想要查詢的NULL 的話可以使用 <=>

mysql> select * from test_null where id<=>null;
+------+--------+
| id   | name   |
+------+--------+
| NULL | 李四   |
+------+--------+
1 row in set (0.00 sec)

mysql> select * from test_null where name<=>null;
+------+------+
| id   | name |
+------+------+
|    3 | NULL |
+------+------+
1 row in set (0.00 sec)

這樣就查詢到了,下面要是查詢不為空的呢?能不能用 !=(不等于):

mysql> select * from test_null where name != null;
Empty set (0.00 sec)

mysql> select * from test_null where id != null;
Empty set (0.00 sec)

上面都沒有查詢到,其實(shí)查詢不為空的話可以使用 <>:

但是其實(shí)查詢 null 或者不為 null 還是喜歡用 is null 或者是 is not null:

mysql> select * from test_null where name is null;
+------+------+
| id   | name |
+------+------+
|    3 | NULL |
+------+------+
1 row in set (0.00 sec)

mysql> select * from test_null where name is not null;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 張三   |
| NULL | 李四   |
+------+--------+
2 rows in set (0.00 sec)
5.查詢語文成績(jī)?cè)?0~80之間的同學(xué)
mysql> select name, chinese from exam_result where chinese between 70 and 80;
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 趙姨娘     |      79 |
| 唐三藏     |      72 |
| 沙悟凈     |      77 |
+-----------+---------+
3 rows in set (0.00 sec)
6.查詢英語成績(jī)是99 和 93 和 19 和 30
mysql> select name, english from exam_result where english=99 or english=93 or english=19 or english=30;
+-----------+---------+
| name      | english |
+-----------+---------+
| 林黛玉    |      99 |
| 趙姨娘    |      93 |
| 小白龍    |      19 |
+-----------+---------+
3 rows in set (0.00 sec)

除了上面的方法還有一種方法:

mysql> select name, english from exam_result where english in (99, 93, 19, 30);
+-----------+---------+
| name      | english |
+-----------+---------+
| 林黛玉    |      99 |
| 趙姨娘    |      93 |
| 小白龍    |      19 |
+-----------+---------+
3 rows in set (0.00 sec)

下面的這個(gè)看起更好一點(diǎn)。

7.模糊匹配

%可以表示任意一個(gè)或者多個(gè)字符,_表示任意一個(gè)字符。

查詢名字叫黛玉的:

mysql> select id, name from exam_result where name like '_黛玉';
+----+-----------+
| id | name      |
+----+-----------+
|  1 | 林黛玉    |
+----+-----------+
1 row in set (0.00 sec)

上面就是匹配任意一個(gè)字符,下面看一下匹配任意字符。

查詢名字里面有“三” 的:

mysql> select id, name from exam_result where name like '%三%';
+----+-----------+
| id | name      |
+----+-----------+
|  5 | 唐三藏    |
+----+-----------+
1 row in set (0.00 sec)

排序

有時(shí)候我們需要對(duì)查詢出來的數(shù)據(jù)進(jìn)行排序,我們現(xiàn)在查詢一下總分的排序:

mysql> select *, chinese+math+english from exam_result order by chinese+english+math;
+----+-----------+---------+------+---------+----------------------+
| id | name      | chinese | math | english | chinese+math+english |
+----+-----------+---------+------+---------+----------------------+
|  7 | 小白龍    |      99 |   20 |      19 |                  138 |
|  5 | 唐三藏    |      72 |   60 |      56 |                  188 |
|  6 | 沙悟凈    |      77 |   87 |      72 |                  236 |
|  4 | 趙姨娘    |      79 |   90 |      93 |                  262 |
|  3 | 薛寶釵    |      88 |   90 |      88 |                  266 |
|  1 | 林黛玉    |      98 |   90 |      99 |                  287 |
+----+-----------+---------+------+---------+----------------------+
6 rows in set (0.00 sec)

我們上面這樣寫太繁瑣了,我們可不可以使用重命名?

mysql> select *, chinese+math+english 總分 from exam_result order by 總分;
+----+-----------+---------+------+---------+--------+
| id | name      | chinese | math | english | 總分   |
+----+-----------+---------+------+---------+--------+
|  7 | 小白龍    |      99 |   20 |      19 |    138 |
|  5 | 唐三藏    |      72 |   60 |      56 |    188 |
|  6 | 沙悟凈    |      77 |   87 |      72 |    236 |
|  4 | 趙姨娘    |      79 |   90 |      93 |    262 |
|  3 | 薛寶釵    |      88 |   90 |      88 |    266 |
|  1 | 林黛玉    |      98 |   90 |      99 |    287 |
+----+-----------+---------+------+---------+--------+
6 rows in set (0.00 sec)

這里又可以使用總分了,但是前面 where 不可以使用總分,為什么?

還是執(zhí)行順序的問題,首先我們要排序是不是要前面的數(shù)據(jù)都準(zhǔn)備好了才進(jìn)行排序,也就是說排序在重命名的后面,所以既然已經(jīng)又重命名了所以排序就可以使用重命名。

我們看到上面的排序都是降序那么怎樣可以讓其升序呢?

order by 列名 ASC 降序 默認(rèn)
			 desc 升序

下面可以試一下:

mysql> select *, chinese+math+english 總分 from exam_result order by 總分 ASC;
+----+-----------+---------+------+---------+--------+
| id | name      | chinese | math | english | 總分   |
+----+-----------+---------+------+---------+--------+
|  7 | 小白龍    |      99 |   20 |      19 |    138 |
|  5 | 唐三藏    |      72 |   60 |      56 |    188 |
|  6 | 沙悟凈    |      77 |   87 |      72 |    236 |
|  4 | 趙姨娘    |      79 |   90 |      93 |    262 |
|  3 | 薛寶釵    |      88 |   90 |      88 |    266 |
|  1 | 林黛玉    |      98 |   90 |      99 |    287 |
+----+-----------+---------+------+---------+--------+
6 rows in set (0.00 sec)

mysql> select *, chinese+math+english 總分 from exam_result order by 總分 DESC;
+----+-----------+---------+------+---------+--------+
| id | name      | chinese | math | english | 總分   |
+----+-----------+---------+------+---------+--------+
|  1 | 林黛玉    |      98 |   90 |      99 |    287 |
|  3 | 薛寶釵    |      88 |   90 |      88 |    266 |
|  4 | 趙姨娘    |      79 |   90 |      93 |    262 |
|  6 | 沙悟凈    |      77 |   87 |      72 |    236 |
|  5 | 唐三藏    |      72 |   60 |      56 |    188 |
|  7 | 小白龍    |      99 |   20 |      19 |    138 |
+----+-----------+---------+------+---------+--------+
6 rows in set (0.00 sec)

LIMIT

在 mysql 查詢的時(shí)候其實(shí)防止一次性查出來的數(shù)據(jù)太多還有一個(gè) limit 可以讓數(shù)據(jù)可以分多次打印。

下面看一下 limit 的使用:

mysql> select * from exam_result limit 1;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
+----+-----------+---------+------+---------+
1 row in set (0.00 sec)

mysql> select * from exam_result limit 3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)

其實(shí) limit 還可以打印中間的內(nèi)容:

mysql> select * from exam_result limit 0,3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)

mysql> select * from exam_result limit 3,3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  5 | 唐三藏    |      72 |   60 |      56 |
|  6 | 沙悟凈    |      77 |   87 |      72 |
|  7 | 小白龍    |      99 |   20 |      19 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)

還可以給兩個(gè)數(shù)字,前面的表示從第一個(gè)數(shù)字的下一行開始打印,第二個(gè)數(shù)字表示打印幾行。

limit 還可以結(jié)合 offset 使用:

mysql> select * from exam_result limit 3 offset 0;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)

mysql> select * from exam_result limit 3 offset 1;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  3 | 薛寶釵    |      88 |   90 |      88 |
|  4 | 趙姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   60 |      56 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)

也可以讓 limit 后面跟一個(gè)數(shù)字,然后加 offset 后面跟一個(gè)數(shù)字,其中 limit 后面的數(shù)字代表打印幾行, offset 后面的數(shù)字代表從第幾行開始打印。文章來源地址http://www.zghlxwxcb.cn/news/detail-689060.html

到了這里,關(guān)于MySQL 基本操作1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Mysql的基本操作詳解

    當(dāng)涉及到MySQL數(shù)據(jù)庫(kù)的基本操作時(shí),我們通常會(huì)涉及到創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建表格、插入數(shù)據(jù)、查詢數(shù)據(jù)等操作。下面是一個(gè)簡(jiǎn)要的MySQL基本操作的博客: --- MySQL基本操作詳解 MySQL是一個(gè)廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),為許多應(yīng)用程序提供了可靠的數(shù)據(jù)存儲(chǔ)。本博客將介紹M

    2024年01月25日
    瀏覽(18)
  • MySQL所有基本操作詳解

    MySQL所有基本操作詳解

    首先sql操作中的的是大小寫不敏感的,create 和CREATE是一樣的。 1.1 查看數(shù)據(jù)庫(kù) 語法: 示例: show 和databases 之間有一個(gè)或者多個(gè)空格 注意是databases而不是database 結(jié)尾分號(hào)是英文形式,分號(hào)在SQL中是表示一行執(zhí)行+ 代碼的,如果語句后面么有分號(hào),那么默認(rèn)是要一句代碼

    2024年02月08日
    瀏覽(18)
  • 【MySQL】記錄的基本操作

    【MySQL】記錄的基本操作

    為表中所有字段插入數(shù)據(jù) 基本語法 INSERT INTO 表名(字段名1,字段名2,…) VALUES (值 1,值 2,…); 示例 為表中指定字段插入數(shù)據(jù) 基本語法 INSERT INTO 表名(字段名1,字段名2,…) VALUES (值 1,值 2,…); 示例 同時(shí)插入多條數(shù)據(jù) 基本語法 INSERT INTO 表名 [(字段名1,字段名2,…)]VALUES (值 1,值

    2024年02月08日
    瀏覽(16)
  • 【MySQL】表的基本操作

    【MySQL】表的基本操作

    數(shù)據(jù)類型 大小 說明 bit[(M)] M指定位數(shù),默認(rèn)為1 二進(jìn)制,M范圍從1到64,存儲(chǔ)數(shù)值范圍從0到2^M-1 tinyint 1字節(jié) smallint 2字節(jié) int 4字節(jié) bigint 8字節(jié) float(M,D) 4字節(jié) 單精度,M指定長(zhǎng)度,D 指定小數(shù)位數(shù),會(huì)發(fā)生精度丟失 double(M,D) 8字節(jié) decimal(M,D) M/D最大值+2 雙精度,M指定長(zhǎng)度,D表示小

    2023年04月22日
    瀏覽(56)
  • MYSQL基本命令和操作

    MYSQL基本命令和操作

    ??作者 : D. Star. ??專欄 : JAVA ??今日提問 : 你好,我的朋友,在你的人生途中,會(huì)面臨很多選擇,不管選什么樣的結(jié)果,我們都多少會(huì)有些后悔。如果是你,你會(huì)選擇愛你的,還是懂你的? Oracle(最好),Mysql( 最廣泛–免費(fèi) ),SQL Server(好用不火),SQLite(輕量級(jí)) MongoDB,Redis,

    2024年02月12日
    瀏覽(22)
  • MYSQL數(shù)據(jù)庫(kù)基本操作-DQL-基本查詢

    MYSQL數(shù)據(jù)庫(kù)基本操作-DQL-基本查詢

    一.概念 數(shù)據(jù)庫(kù)管理系統(tǒng)一個(gè)重要功能就是數(shù)據(jù)查詢。數(shù)據(jù)查詢不應(yīng)是簡(jiǎn)單返回?cái)?shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù),還應(yīng)該根據(jù)需要對(duì)數(shù)據(jù)進(jìn)行篩選以及確定數(shù)據(jù)以什么樣的格式顯示。 MySQL提供了功能強(qiáng)大,靈活的語句來實(shí)現(xiàn)這些操作。 MySQL數(shù)據(jù)庫(kù)使用select語句來查詢數(shù)據(jù)。 二:語法 ?

    2024年01月25日
    瀏覽(24)
  • [MySQL]基本數(shù)據(jù)類型及表的基本操作

    [MySQL]基本數(shù)據(jù)類型及表的基本操作

    哈嘍,大家好!我是保護(hù)小周?,本期為大家?guī)淼氖?MySQL 數(shù)據(jù)庫(kù)常用的數(shù)據(jù)類型,數(shù)據(jù)表的基本操作:創(chuàng)建、刪除、修改表,針對(duì)修改表的結(jié)構(gòu)進(jìn)行了講解,隨后是如何向數(shù)據(jù)表中添加數(shù)據(jù),淺淺的提了一下表中數(shù)據(jù)的查詢,更多相關(guān)知識(shí)敬請(qǐng)期待:保護(hù)小周? *★,°*:.☆

    2024年02月02日
    瀏覽(16)
  • 01:mysql基本操作---DDL

    01:mysql基本操作---DDL

    目錄 前言: 1:SQL分類 2:類型 3:sql表的創(chuàng)建----簡(jiǎn)單版本 前言: 1:SQL語句可以單行或多行書寫,以分號(hào)結(jié)尾。 2:SQL語句可以使用空格/縮進(jìn)來增強(qiáng)語句的可讀性。 3:MySQL數(shù)據(jù)庫(kù)的SQL語句不區(qū)分大小寫,建議使用大寫 4:注釋: 單行注釋:-- 注釋內(nèi)容或#注釋內(nèi)容(MySQL特有) 多行注釋

    2024年02月04日
    瀏覽(17)
  • 【Linux】Mysql的基本操作

    【Linux】Mysql的基本操作

    目錄 一、查看數(shù)據(jù)庫(kù) 二、切換數(shù)據(jù)庫(kù) 三、查看數(shù)據(jù)庫(kù)中的表 四、表的增刪改查;? 五、字段的修改與添加 六、算術(shù)運(yùn)算符 七、 聚合函數(shù)在表查詢中的使用 ?count() ?max() ?min() ?avg() ?sum() 八、條件查詢 ?使用in查詢 使用BETWEEN AND查詢 使用空值查詢 使用LIKE關(guān)鍵

    2024年03月09日
    瀏覽(25)
  • MySQL數(shù)據(jù)庫(kù)基本操作

    MySQL數(shù)據(jù)庫(kù)基本操作

    功能 sql 查看所有數(shù)據(jù)庫(kù) show databases; 創(chuàng)建數(shù)據(jù)庫(kù) create? database [if not exists] mydb1 [charset=utf8] 切換數(shù)據(jù)庫(kù) use mydb1; 刪除數(shù)據(jù)庫(kù) drop database?[if exists]?mydb1 ; 修改數(shù)據(jù)庫(kù)編碼 alter database mydb1 character set utf8; 數(shù)值類型 字符串類型 日期類型 功能 sql 查看當(dāng)前數(shù)據(jù)庫(kù)所有名稱 show tabl

    2024年02月02日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包