一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - MYSQL 表的全面總結(jié)

MYSQL 表的全面總結(jié)

2021-12-03 17:49隨風(fēng)去遠(yuǎn)方 Mysql

這篇文章主要介紹了MYSQL表,文章主要圍繞MySQL表的相關(guān)資料如創(chuàng)建表、刪除表、修改表、等展開內(nèi)容,需要的朋友可以參考一下,希望對你有所幫助

1、創(chuàng)建表

1.1、創(chuàng)建表基本語法

?
1
2
create table tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……)

column_name 是列的名字
column_type 是列的數(shù)據(jù)類型
contraints 是這個列的約束條件

1.1.1、創(chuàng)建一張簡單的表

?
1
2
mysql> create table orders (ordername varchar(10),createtime date,ordermoney decimal(10,2),ordernumber int(2));
query ok, 0 rows affected (0.23 sec)

1.1.2、查看創(chuàng)建表定義

結(jié)構(gòu)化定義:

?
1
2
3
4
5
6
7
8
9
10
mysql> desc orders;
+-------------+---------------+------+-----+---------+-------+
| field       | type          | null | key | default | extra |
+-------------+---------------+------+-----+---------+-------+
| ordername   | varchar(10)   | yes  |     | null    |       |
| createtime  | date          | yes  |     | null    |       |
| ordermoney  | decimal(10,2) | yes  |     | null    |       |
| ordernumber | int(2)        | yes  |     | null    |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

表詳細(xì)定義:

查看詳細(xì)的表定義:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> show create table orders \g;
*************************** 1. row ***************************
       table: orders
create table: create table `orders` (
  `ordername` varchar(10) default null,
  `createtime` date default null,
  `ordermoney` decimal(10,2) default null,
  `ordernumber` int(2) default null
) engine=innodb default charset=latin1
1 row in set (0.00 sec)
 
error:
no query specified

由此可以看到表的  engine(存儲引擎)是innodb

         charset(字符集)是latin1

\g”選項的含義是使得記錄能夠按照字段豎著排列,對于內(nèi)容比較長的記錄更易于顯示。

2、刪除表

命令:

?
1
drop table tablename

刪除orders:

?
1
2
3
mysql> drop table orders
    -> ;
query ok, 0 rows affected (0.14 sec)

3、修改表

3.1、修改表類型命令

?
1
alter table tablename modify [column] column_definition [first | after col_name]

例:修改表 orders name 字段定義,將 varchar(10)改為 varchar(20)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> alter table orders modify ordername varchar(20);
query ok, 0 rows affected (0.11 sec)
records: 0  duplicates: 0  warnings: 0
 
mysql> desc orders;
+-------------+---------------+------+-----+---------+-------+
| field       | type          | null | key | default | extra |
+-------------+---------------+------+-----+---------+-------+
| ordername   | varchar(20)   | yes  |     | null    |       |
| createtime  | date          | yes  |     | null    |       |
| ordermoney  | decimal(10,2) | yes  |     | null    |       |
| ordernumber | int(2)        | yes  |     | null    |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

3.2、字段改名命令

?
1
2
alter table tablename change [column] old_col_name column_definition
[first|after col_name]

例:orders 上將ordernumber修改為ordernumbers

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> alter table orders change column ordernumber ordernumbers int(4);
query ok, 0 rows affected (0.06 sec)
records: 0  duplicates: 0  warnings: 0
 
mysql> desc orders;
+--------------+---------------+------+-----+---------+-------+
| field        | type          | null | key | default | extra |
+--------------+---------------+------+-----+---------+-------+
| ordername    | varchar(20)   | yes  |     | null    |       |
| createtime   | date          | yes  |     | null    |       |
| ordermoney   | decimal(10,2) | yes  |     | null    |       |
| ordernumbers | int(4)        | yes  |     | null    |       |
+--------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

特別說明:change 和 modify 都可以修改表的定義,不同的是 change 后面需要寫兩次列名,不方便。但是 change 的優(yōu)點是可以修改列名稱,modify 則不能。

3.3、增加表字段命令

?
1
alter table tablename add [column] column_definition [first | after col_name]

例:orders 上新增加字段 username,類型為 varchar(3)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mysql> alter table orders add column username varchar(30);
query ok, 0 rows affected (0.39 sec)
records: 0  duplicates: 0  warnings: 0
 
mysql> desc orders;
+-------------+---------------+------+-----+---------+-------+
| field       | type          | null | key | default | extra |
+-------------+---------------+------+-----+---------+-------+
| ordername   | varchar(20)   | yes  |     | null    |       |
| createtime  | date          | yes  |     | null    |       |
| ordermoney  | decimal(10,2) | yes  |     | null    |       |
| ordernumber | int(2)        | yes  |     | null    |       |
| username    | varchar(30)   | yes  |     | null    |       |
+-------------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

3.4、刪除表列字段命令

?
1
alter table tablename drop [column] col_name

例:orders 上刪除字段 username

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> alter table orders drop column username;
query ok, 0 rows affected (0.53 sec)
records: 0  duplicates: 0  warnings: 0
 
mysql> desc orders;
+-------------+---------------+------+-----+---------+-------+
| field       | type          | null | key | default | extra |
+-------------+---------------+------+-----+---------+-------+
| ordername   | varchar(20)   | yes  |     | null    |       |
| createtime  | date          | yes  |     | null    |       |
| ordermoney  | decimal(10,2) | yes  |     | null    |       |
| ordernumber | int(2)        | yes  |     | null    |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

3.5、表改名命令

?
1
alter table tablename rename [to] new_tablename

例:orders 名字改為goodsorders

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql> alter table orders rename goodsorders;
query ok, 0 rows affected (0.16 sec)
 
mysql> desc orders;
error 1146 (42s02): table 'ordermanage.orders' doesn't exist
mysql> desc goodsorders;
+--------------+---------------+------+-----+---------+-------+
| field        | type          | null | key | default | extra |
+--------------+---------------+------+-----+---------+-------+
| ordername    | varchar(20)   | yes  |     | null    |       |
| createtime   | date          | yes  |     | null    |       |
| ordermoney   | decimal(10,2) | yes  |     | null    |       |
| ordernumbers | int(4)        | yes  |     | null    |       |
+--------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

4、dml 語句

插入(insert)、查詢(select)、更新(update)、刪除(delete

4.1、插入記錄 命令

?
1
insert into tablename (field1,field2,……fieldn) values(value1,value2,……valuesn);

例:goodsorders 中插入一條記錄,ordername zhangcreatetime2021-05-12ordermoney100.00,ordernumbers為:1

?
1
2
mysql> insert into goodsorders (ordername,createtime,ordermoney,ordernumbers) values('zhang','2021-05-12',100.00,1);
query ok, 1 row affected (0.03 sec)

也可以省略(field1,field2,……fieldn)這一部分

?
1
2
mysql> insert into goodsorders  values('zhang1','2021-05-12',1001.00,11);
query ok, 1 row affected (0.05 sec)

4.2、查看插入數(shù)據(jù)命令

4.2.1、查詢?nèi)?/h4>
?
1
select * from tablename [where condition]

例:查看goodsorders中所有插入數(shù)據(jù)

?
1
2
3
4
5
6
7
8
mysql> select * from goodsorders;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| zhang     | 2021-05-12 |     100.00 |            1 |
| zhang1    | 2021-05-12 |    1001.00 |           11 |
+-----------+------------+------------+--------------+
2 rows in set (0.00 sec)

其中“*”表示要將所有的記錄都選出來

4.2.2、查詢不重復(fù)記錄命令關(guān)鍵字

?
1
distinct

例:查詢非goodsorders中非重復(fù)創(chuàng)建時間(createtime)的數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
mysql> select  * from goodsorders;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| zhang     | 2021-03-11 |      50.00 |            1 |
| li        | 2020-05-12 |      70.00 |           15 |
| li        | 2020-03-12 |      70.00 |           15 |
| li        | 2020-03-11 |      70.00 |           15 |
| li        | 2021-03-11 |      70.00 |           15 |
+-----------+------------+------------+--------------+
5 rows in set (0.00 sec)
 
mysql> select distinct createtime from goodsorders;
+------------+
| createtime |
+------------+
| 2021-03-11 |
| 2020-05-12 |
| 2020-03-12 |
| 2020-03-11 |
+------------+
4 rows in set (0.00 sec)

由此可以看到,將重復(fù)的一條時間數(shù)據(jù)2021-03-11去掉了

4.2.3、多條件查詢關(guān)鍵字

where 后面的條件是一個字段的‘='比較,還可以使用>、<、>=、<=、!=等比較運(yùn)算符;
多個條件之間還可以使用 or、and 等邏輯運(yùn)算符進(jìn)行多條件聯(lián)合查詢,

例:查詢非goodsorders ordername='li'并且createtime2020-03-11

?
1
2
3
4
5
6
7
mysql> select * from goodsorders where ordername='li'and createtime ='2020-03-11';
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| li        | 2020-03-11 |      70.00 |           15 |
+-----------+------------+------------+--------------+
1 row in set (0.00 sec)

4.2.4、排序查詢命名

?
1
2
select * from tablename [where condition] [order by field1 [desc|asc] , field2
[desc|asc],……fieldn [desc|asc]]

例:goodsorders表中的記錄按照創(chuàng)建時間高低進(jìn)行排序顯示

?
1
2
3
4
5
6
7
8
9
10
11
mysql> select * from goodsorders order by createtime;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| li        | 2020-03-11 |      70.00 |           15 |
| li        | 2020-03-12 |      70.00 |           15 |
| li        | 2020-05-12 |      70.00 |           15 |
| zhang     | 2021-03-11 |      50.00 |            1 |
| li        | 2021-03-11 |      70.00 |           15 |
+-----------+------------+------------+--------------+
5 rows in set (0.01 sec)

4.2.5、顯示一部分,而不是全部,指令

?
1
select ……[limit offset_start,row_count]

offset_start 表示記錄的起始偏移量
row_count 表示顯示的行數(shù)

例如1:顯示 goodsorders表中按照 createtiem 排序后的前 3 條記錄:

?
1
2
3
4
5
6
7
8
9
mysql> select * from goodsorders order by createtime limit 3;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| li        | 2020-03-11 |      70.00 |           15 |
| li        | 2020-03-12 |      70.00 |           15 |
| li        | 2020-05-12 |      70.00 |           15 |
+-----------+------------+------------+--------------+
3 rows in set (0.00 sec)

例如2:如果要顯示 goodsorders表中按照 createtiem 排序后 從第二條記錄開始,顯示3條數(shù)據(jù):

?
1
2
3
4
5
6
7
8
9
mysql> select * from goodsorders order by createtime limit 2,3;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| li        | 2020-05-12 |      70.00 |           15 |
| zhang     | 2021-03-11 |      50.00 |            1 |
| li        | 2021-03-11 |      70.00 |           15 |
+-----------+------------+------------+--------------+
3 rows in set (0.00 sec)

4.2.6、統(tǒng)計數(shù)據(jù),聚合指令

?
1
2
3
4
5
6
select [field1,field2,……fieldn] fun_name
from tablename
[where where_contition]
[group by field1,field2,……fieldn
[with rollup]]
[having where_contition]

參數(shù)說明:

  • 1、fun_name 表示要做的聚合操作,也就是聚合函數(shù),常用的有 sum(求和)、count(*)(記錄數(shù))、max(最大值)、min(最小值)
  • 2、group by 關(guān)鍵字表示要進(jìn)行分類聚合的字段,比如要按照部門分類統(tǒng)計員工數(shù)量,部門就應(yīng)該寫在 group by 后面。
  • 3、with rollup 是可選語法,表明是否對分類聚合后的結(jié)果進(jìn)行再匯總。
  • 4、having 關(guān)鍵字表示對分類后的結(jié)果再進(jìn)行條件的過濾。

注意:having 和 where 的區(qū)別在于 having 是對聚合后的結(jié)果進(jìn)行條件的過濾,而 where 是在聚合前就對記錄進(jìn)行過濾,如果邏輯允許,我們盡可能用 where 先過濾記錄,這樣因為結(jié)果集減小,將對聚合的效率大大提高,最后再根據(jù)邏輯看是否用 having 進(jìn)行再過濾。

例1:查詢統(tǒng)計goodsorders表中,記錄總數(shù)

?
1
2
3
4
5
6
7
mysql> select count(1) from goodsorders;
+----------+
| count(1) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

例2:在此基礎(chǔ)上,按照創(chuàng)建日期(createtime)進(jìn)行分組統(tǒng)計

?
1
2
3
4
5
6
7
8
9
10
mysql> select createtime,count(1) from goodsorders group by createtime;
+------------+----------+
| createtime | count(1) |
+------------+----------+
| 2020-03-11 |        1 |
| 2020-03-12 |        1 |
| 2020-05-12 |        1 |
| 2021-03-11 |        2 |
+------------+----------+
4 rows in set (0.00 sec)

例3:在此基礎(chǔ)上,既要按照創(chuàng)建日期(cretetime)進(jìn)行分組統(tǒng)計,又要計算總數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
mysql> select createtime,count(1) from goodsorders group by createtime with rollup;
+------------+----------+
| createtime | count(1) |
+------------+----------+
| 2020-03-11 |        1 |
| 2020-03-12 |        1 |
| 2020-05-12 |        1 |
| 2021-03-11 |        2 |
| null       |        5 |
+------------+----------+
5 rows in set (0.02 sec)

最有一行,null所展示的數(shù)字,就是總數(shù)

例4:按照創(chuàng)建日期(createtime)進(jìn)行分組統(tǒng)計,并且數(shù)量大于1

?
1
2
3
4
5
6
7
mysql> select createtime,count(1) from goodsorders group by createtime having count(1)>1;
+------------+----------+
| createtime | count(1) |
+------------+----------+
| 2021-03-11 |        2 |
+------------+----------+
1 row in set (0.00 sec)

例5:查詢goodsorders表中,訂單金額(ordermoney)的總額、最低額、最高額

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql> select * from goodsorders;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| zhang     | 2021-03-11 |      50.00 |            1 |
| li        | 2020-05-12 |      70.00 |           15 |
| li        | 2020-03-12 |      70.00 |           15 |
| li        | 2020-03-11 |      70.00 |           15 |
| li        | 2021-03-11 |      70.00 |           15 |
+-----------+------------+------------+--------------+
5 rows in set (0.00 sec)
 
mysql> select sum(ordermoney),max(ordermoney),min(ordermoney) from goodsorders;
+-----------------+-----------------+-----------------+
| sum(ordermoney) | max(ordermoney) | min(ordermoney) |
+-----------------+-----------------+-----------------+
|          330.00 |           70.00 |           50.00 |
+-----------------+-----------------+-----------------+
1 row in set (0.02 sec)

4.2.7、表連接

  • 1、左連接:包含所有的左邊表中的記錄甚至是右邊表中沒有和它匹配的記錄;關(guān)鍵指令:left join
  • 2、右連接:包含所有的右邊表中的記錄甚至是左邊表中沒有和它匹配的記錄;關(guān)聯(lián)指令:right join

 例1:現(xiàn)在我們又創(chuàng)建一張用戶表(member),使用goodorders進(jìn)行左連接,查詢關(guān)聯(lián)的用戶表信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
mysql> select * from member;
+------+------------+
| id   | membername |
+------+------------+
| 15   | zhang      |
| 1    | li         |
| 13   | liss       |
+------+------------+
3 rows in set (0.00 sec)
 
mysql> select * from goodsorders;
+-----------+------------+------------+--------------+----------+
| ordername | createtime | ordermoney | ordernumbers | memberid |
+-----------+------------+------------+--------------+----------+
| zhang     | 2021-03-11 |      50.00 |            1 | 15       |
| li        | 2020-05-12 |      70.00 |           15 | 1        |
| li        | 2020-03-12 |      70.00 |           15 | 1        |
| li        | 2020-03-11 |      70.00 |           15 | 3        |
| li        | 2021-03-11 |      70.00 |           15 | 1        |
+-----------+------------+------------+--------------+----------+
5 rows in set (0.00 sec)
 
mysql> select * from goodsorders left join member on goodsorders.memberid = member.id;
+-----------+------------+------------+--------------+----------+------+------------+
| ordername | createtime | ordermoney | ordernumbers | memberid | id   | membername |
+-----------+------------+------------+--------------+----------+------+------------+
| zhang     | 2021-03-11 |      50.00 |            1 | 15       | 15   | zhang      |
| li        | 2020-05-12 |      70.00 |           15 | 1        | 1    | li         |
| li        | 2020-03-12 |      70.00 |           15 | 1        | 1    | li         |
| li        | 2021-03-11 |      70.00 |           15 | 1        | 1    | li         |
| li        | 2020-03-11 |      70.00 |           15 | 3        | null | null       |
+-----------+------------+------------+--------------+----------+------+------------+
5 rows in set (0.00 sec)

 例2membergoodsorders中數(shù)據(jù)不變,我們再來看一下右連接的查詢,以及結(jié)果:

?
1
2
3
4
5
6
7
8
9
10
11
mysql> select * from goodsorders right join member on goodsorders.memberid = member.id;
+-----------+------------+------------+--------------+----------+------+------------+
| ordername | createtime | ordermoney | ordernumbers | memberid | id   | membername |
+-----------+------------+------------+--------------+----------+------+------------+
| zhang     | 2021-03-11 |      50.00 |            1 | 15       | 15   | zhang      |
| li        | 2020-05-12 |      70.00 |           15 | 1        | 1    | li         |
| li        | 2020-03-12 |      70.00 |           15 | 1        | 1    | li         |
| li        | 2021-03-11 |      70.00 |           15 | 1        | 1    | li         |
| null      | null       |       null |         null | null     | 13   | liss       |
+-----------+------------+------------+--------------+----------+------+------------+
5 rows in set (0.00 sec)

這里發(fā)生了翻轉(zhuǎn),變?yōu)樽髠?cè)goodsorders 表中的一條數(shù)據(jù)為空了

4.2.8、子查詢,相關(guān)關(guān)鍵字

主要包括 innot in=!=existsnot exists

例:goodsorders表中查詢所有用戶在memeber表中的記錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mysql> select * from member;
+------+------------+
| id   | membername |
+------+------------+
| 15   | zhang      |
| 1    | li         |
| 13   | liss       |
+------+------------+
3 rows in set (0.00 sec)
 
mysql> select * from goodsorders;
+-----------+------------+------------+--------------+----------+
| ordername | createtime | ordermoney | ordernumbers | memberid |
+-----------+------------+------------+--------------+----------+
| zhang     | 2021-03-11 |      50.00 |            1 | 15       |
| li        | 2020-05-12 |      70.00 |           15 | 1        |
| li        | 2020-03-12 |      70.00 |           15 | 1        |
| li        | 2020-03-11 |      70.00 |           15 | 3        |
| li        | 2021-03-11 |      70.00 |           15 | 1        |
+-----------+------------+------------+--------------+----------+
5 rows in set (0.00 sec)
 
mysql> select * from goodsorders where memberid in(select id from member);
+-----------+------------+------------+--------------+----------+
| ordername | createtime | ordermoney | ordernumbers | memberid |
+-----------+------------+------------+--------------+----------+
| zhang     | 2021-03-11 |      50.00 |            1 | 15       |
| li        | 2020-05-12 |      70.00 |           15 | 1        |
| li        | 2020-03-12 |      70.00 |           15 | 1        |
| li        | 2021-03-11 |      70.00 |           15 | 1        |
+-----------+------------+------------+--------------+----------+
4 rows in set (0.05 sec)

4.2.9、記錄聯(lián)合,指令

?
1
2
3
4
5
6
select * from t1
union|union all
select * from t2
……
union|union all
select * from tn;

union union all 的主要區(qū)別:

     union all 是把結(jié)果集直接合并在一起,
     union 是將union all 后的結(jié)果進(jìn)行一次 distinct,去除重復(fù)記錄后的結(jié)果。

例1:member表和goodsorders表中的用戶編號id(memberid)的集合顯示出來

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> select memberid from goodsorders union all select id from member;
+----------+
| memberid |
+----------+
| 15       |
| 1        |
| 1        |
| 3        |
| 1        |
| 15       |
| 1        |
| 13       |
+----------+
8 rows in set (0.00 sec)

例2:如果希望將上面的結(jié)果去掉重復(fù)記錄后顯示

?
1
2
3
4
5
6
7
8
9
10
mysql> select memberid from goodsorders union select id from member;
+----------+
| memberid |
+----------+
| 15       |
| 1        |
| 3        |
| 13       |
+----------+
4 rows in set (0.00 sec)

4.3、更新記錄命令

?
1
update tablename set field1=value1,field2.=value2,……fieldn=valuen [where condition]

例:將表 goodsorders ordernamezhang的訂單金額(ordermoney)改為50

?
1
2
3
4
5
6
7
8
9
10
11
12
mysql> update goodsorders set ordermoney=50.00 where ordername='zhang';
query ok, 1 row affected (0.09 sec)
rows matched: 1  changed: 1  warnings: 0
 
mysql> select * from goodsorders;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| zhang     | 2021-05-12 |      50.00 |            1 |
| zhang1    | 2021-05-12 |    1001.00 |           11 |
+-----------+------------+------------+--------------+
2 rows in set (0.00 sec)

更新時,如遇到錯誤代碼1175:

error code: 1175. you are using safe update mode and you tried to update a table without a where that uses a key column. to disable safe mode, toggle the option in preferences

解決方法:

1、先進(jìn)行狀體查詢:

?
1
show variables like 'sql_safe_updates';

MYSQL 表的全面總結(jié)

2、執(zhí)行下面的sql,關(guān)閉safe-updates模式:

?
1
set sql_safe_updates = 0;

或者

?
1
2
set sql_safe_updates = false;

4.4、刪除記錄命名

?
1
delete from tablename [where condition]

例:將表 goodsorders ordernamezhang1的記錄全部刪除

?
1
2
3
4
5
6
7
8
9
10
11
mysql> delete from goodsorders where ordername = 'zhang1';
query ok, 1 row affected (0.06 sec)
 
mysql> select * from goodsorders;
+-----------+------------+------------+--------------+
| ordername | createtime | ordermoney | ordernumbers |
+-----------+------------+------------+--------------+
| zhang     | 2021-05-12 |      50.00 |            1 |
+-----------+------------+------------+--------------+
1 row in set (0.02 sec)

4.5、初始化表

例:將表中的所有數(shù)據(jù)清空

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> select * from varc;
+------+------+
| v    | c    |
+------+------+
| abc  | abc  |
+------+------+
1 row in set (0.03 sec)
 
mysql> truncate table varc;
query ok, 0 rows affected (0.25 sec)
 
mysql> select * from varc;
empty set (0.00 sec)

5、dcl 語句

dcl語句主要是為了管理數(shù)據(jù)庫系統(tǒng)中的操作對象權(quán)限

5.1創(chuàng)建數(shù)據(jù)庫用戶

例:創(chuàng)建一個數(shù)據(jù)庫用戶 user1,初始密碼為123,具有對 ordermanage 數(shù)據(jù)庫中所有表的 select/insert 權(quán)限:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
mysql> grant select,insert on ordermanage.* to 'user1'@'localhost' identified by '123';
query ok, 0 rows affected, 1 warning (0.06 sec)
 
mysql> exit
bye
 
 
c:\program files\mysql\mysql server 5.7\bin>mysql -uuser1 -p123
mysql: [warning] using a password on the command line interface can be insecure.
welcome to the mysql monitor.  commands end with ; or \g.
your mysql connection id is 82
server version: 5.7.17-log mysql community server (gpl)
 
copyright (c) 2000, 2016, oracle and/or its affiliates. all rights reserved.
 
oracle is a registered trademark of oracle corporation and/or its
affiliates. other names may be trademarks of their respective
owners.
 
type 'help;' or '\h' for help. type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| ordermanage        |
+--------------------+
2 rows in set (0.00 sec)

在此基礎(chǔ)上,將此用戶(user1)的insert權(quán)限進(jìn)行收回

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mysql> revoke insert on ordermanage.* from 'user1'@'localhost';
query ok, 0 rows affected (0.02 sec)
 
mysql> exit
bye
 
c:\program files\mysql\mysql server 5.7\bin>mysql -uuser1 -p123
mysql: [warning] using a password on the command line interface can be insecure.
welcome to the mysql monitor.  commands end with ; or \g.
your mysql connection id is 84
server version: 5.7.17-log mysql community server (gpl)
 
copyright (c) 2000, 2016, oracle and/or its affiliates. all rights reserved.
 
oracle is a registered trademark of oracle corporation and/or its
affiliates. other names may be trademarks of their respective
owners.
 
type 'help;' or '\h' for help. type '\c' to clear the current input statement.
 
mysql> use ordermanage;
database changed
 
mysql> insert into member values('11','ss');
error 1142 (42000): insert command denied to user 'user1'@'localhost' for table 'member'
mysql>

由此可以看出插入權(quán)限不足,插入失敗

到此這篇關(guān)于mysql表的介紹的文章就介紹到這了,更多相關(guān)mysql表內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/19930521zhang/p/14756371.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青久久| 人与禽交3d动漫羞羞动漫 | 97色蜜桃 | 九九99九九精彩网站 | 韩日视频在线观看 | 好看华人华人经典play | 日韩在线一区二区三区免费视频 | 成3d漫二区三区四区 | 久久久久青草大香线综合精品 | 精品久久久久久综合网 | 被老外操| 交换余生在线播放免费 | 国产91精品久久久久久久 | 女娃开嫩苞经历小说 | 亚洲欧美日韩一区成人 | 羞羞污视频 | 美女脱了内裤让男桶爽 | 91在线视频播放 | 小柔的性放荡羞辱日记动漫 | 乳色吐息讲的是什么 | 成人国产第一区在线观看 | 国产精品亚洲精品日韩已满 | 国产福利微拍精品一区二区 | 欧美怡红院视频一区二区三区 | 欧美日本道免费一区二区三区 | 精品综合久久久久久88小说 | 亚洲免费视频在线 | 亚洲成色WWW久久网站夜月 | 男人吃奶动态图 | a级动漫| 欧美a级完整在线观看 | 91交换论坛 | 欧美性色欧美a在线播放 | 日韩在线观看网址 | 国产精品玖玖玖影院 | 国产第一自拍 | 放荡警察巨r麻麻出轨小说 范冰冰特黄xx大片 饭冈加奈子在线播放观看 法国老妇性xx在线播放 | 99久久999久久久综合精品涩 | 韩国靠逼 | 国产午夜精品久久久久小说 | melody中文字幕 |