日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql表操作_MySQL表操作语句用法百科

發(fā)布時間:2024/2/28 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql表操作_MySQL表操作语句用法百科 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文采用MySQL5.7.26版本

1 建表語句

建表語句create語法如下:

1.1 設(shè)置unsigned

unsigned設(shè)置數(shù)值類型是否為無符號數(shù),可以為空,如下舉例:

1.2 設(shè)置默認(rèn)值

default設(shè)置默認(rèn)值,如下:

1.3 設(shè)置非空

not null設(shè)置列值不可為空,注意一般設(shè)置為not null的時候需要設(shè)置一個默認(rèn)值(1.2那樣),這樣在插入時如果未指定非空字段就會用默認(rèn)值代替。如果不指定默認(rèn)值,那么插入時不指定值會報沒有默認(rèn)值的錯誤,如下:

1.4 設(shè)置備注

comment可以設(shè)置表的備注和字段的備注,如下所示:

1.5 設(shè)置鍵值

1.5.1 設(shè)置主鍵(聚簇索引)

1> 設(shè)置主鍵用primary key,當(dāng)唯一主鍵時可以在列聲明時指定,也可以在列聲明后指定如下:

2> 當(dāng)設(shè)置聯(lián)合主鍵時,只能在列聲明之后指定,如下:

1.5.2 設(shè)置唯一鍵(唯一索引)

設(shè)置唯一鍵規(guī)則與1.5.1中相同,要把其中關(guān)鍵字改為unique key。

1.5.3 普通鍵(普通索引)

在列聲明完后添加普通索引的列即可,如下:

1.6 設(shè)置默認(rèn)字符

設(shè)置表的默認(rèn)字符集,使用default character set 'codeset',如下設(shè)置utf8,如下:

1.7 設(shè)置引擎

建表是設(shè)置引擎使用engine='engine'即可,可選擇值有innodb,myisam,memory。如下:

1.8 auto_increment的用法

1.8.1 auto_increament知識

如果給某個數(shù)據(jù)表中的一個整數(shù)數(shù)據(jù)列定義可選的auto_increment屬性,那么當(dāng)用戶向這個數(shù)據(jù)表插入一條新記錄時,mysql 就會自動地把這個整數(shù)數(shù)據(jù)列的當(dāng)前最大取值加上1之后賦值給新紀(jì)錄中的這個整數(shù)字段。auto_increment屬性的常見用法是定義數(shù)據(jù)表的主鍵字段。

使用 auto_increment 屬性需要注意的問題:

1> 必須與 not null、primary key 或者 unique 屬性同時使用且表中最多只能有一個 auto_increment 數(shù)據(jù)列。

2> 值自動生成機制只在用戶使用insert命令插入新紀(jì)錄,并且沒有為ID字段明確地給出一個值或null時才起作用。如果用戶給出了一個具體的值并且這個值還沒有在ID列里出現(xiàn)過,MySQL就將使用這個ID值生成一條新數(shù)據(jù)記錄。

3> 如果想知道MySQL在剛插入數(shù)據(jù)記錄里生成的auto_increment值是多少,在執(zhí)行完insert命令后(但還是在本次連接或本個事務(wù)里),立刻執(zhí)行select last_insert_id() 命令。

4> 如果auto_increment計算器到達(dá)了它的最大值(不同的整數(shù)數(shù)據(jù)類型有不同的最大值),將不再繼續(xù)遞增,數(shù)據(jù)記錄的插入操作也將隨之無法繼續(xù)進(jìn)行。對 insert和delete 操作非常頻繁的數(shù)據(jù)表來說,哪怕數(shù)據(jù)記錄遠(yuǎn)少于20億條,也有可能出現(xiàn)32位整數(shù)類型的auto_increment計算器被耗盡的情況。在定義這種數(shù)據(jù)表的時候,最好使用bigint數(shù)據(jù)列。

1.8.2 應(yīng)用

1> 設(shè)置普通的自增,如下:

首次創(chuàng)建后使用show create table,不會出現(xiàn)AUTO_INCREAMENT=?,表中插入數(shù)據(jù)后會出現(xiàn)AUTO_INCREATE=?,?代表下一個自增的值。

2> 設(shè)置自增的步長

數(shù)據(jù)庫的默認(rèn)設(shè)置可以用如下命令查看:

如果要單獨設(shè)置表自增的起始值和步長,如下所示:

這種set的方式不是全局生效的,如果想要全局生效,需要對mysql進(jìn)行配置。

在創(chuàng)建表時可以通過auto_increment=?來設(shè)置其初始值,如下:

注意“?”必須是符合數(shù)據(jù)庫設(shè)置的auto_increment_increment和auto_increment_offset規(guī)則的,如果不合規(guī)則那么不生效,其生成的第一個數(shù)字是比設(shè)置值大的符合按偏移量和步長的第一個數(shù)字。如下舉例:

上例子中設(shè)置偏移量為4,步長為3.但是第一個插入的數(shù)據(jù)時8,打破了該規(guī)則,然后向表中插入默認(rèn)值,其生成的是10,并不是8+3,因為8打破了偏移量與步長的規(guī)則,下一個生成的數(shù)字是大于8并且符合改規(guī)則的第一個數(shù)字10,再向其中插入的話,生成的數(shù)字就是13。

2 修改表

2.1 修改表名

2.2 修改字符集

2.3 修改引擎

2.4 修改列

1> 修改列名列類型(可以附帶上其他信息):

2>修改列的位置到第一列:

3> 修改列的位置到某列的后面:

2.4.1 增加列

1> 將列增加到表的第一列,如下:

2> 在列id后增加age列,如下:

2.4.2 刪除列

3 刪除表

3.1 刪除1個表

使用drop table命令,如下

3.2 刪除多個表

使用drop tables命令,表名之間用","分割,如下:

該命令遇壞則壞,但是能清除所有已存在的表,如下創(chuàng)建test1,test2,test3,test5四個表:

使用命令drop tables test1, test2, test3, test4, test5進(jìn)行測試,如下:

4 查看所有表

查看當(dāng)前所在的數(shù)據(jù)庫中的所有表,如下:

總結(jié)

以上是生活随笔為你收集整理的mysql表操作_MySQL表操作语句用法百科的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。