mysql表操作_MySQL表操作语句用法百科
本文采用MySQL5.7.26版本
1 建表語句
建表語句create語法如下:
1.1 設置unsigned
unsigned設置數值類型是否為無符號數,可以為空,如下舉例:
1.2 設置默認值
default設置默認值,如下:
1.3 設置非空
not null設置列值不可為空,注意一般設置為not null的時候需要設置一個默認值(1.2那樣),這樣在插入時如果未指定非空字段就會用默認值代替。如果不指定默認值,那么插入時不指定值會報沒有默認值的錯誤,如下:
1.4 設置備注
comment可以設置表的備注和字段的備注,如下所示:
1.5 設置鍵值
1.5.1 設置主鍵(聚簇索引)
1> 設置主鍵用primary key,當唯一主鍵時可以在列聲明時指定,也可以在列聲明后指定如下:
2> 當設置聯合主鍵時,只能在列聲明之后指定,如下:
1.5.2 設置唯一鍵(唯一索引)
設置唯一鍵規則與1.5.1中相同,要把其中關鍵字改為unique key。
1.5.3 普通鍵(普通索引)
在列聲明完后添加普通索引的列即可,如下:
1.6 設置默認字符
設置表的默認字符集,使用default character set 'codeset',如下設置utf8,如下:
1.7 設置引擎
建表是設置引擎使用engine='engine'即可,可選擇值有innodb,myisam,memory。如下:
1.8 auto_increment的用法
1.8.1 auto_increament知識
如果給某個數據表中的一個整數數據列定義可選的auto_increment屬性,那么當用戶向這個數據表插入一條新記錄時,mysql 就會自動地把這個整數數據列的當前最大取值加上1之后賦值給新紀錄中的這個整數字段。auto_increment屬性的常見用法是定義數據表的主鍵字段。
使用 auto_increment 屬性需要注意的問題:
1> 必須與 not null、primary key 或者 unique 屬性同時使用且表中最多只能有一個 auto_increment 數據列。
2> 值自動生成機制只在用戶使用insert命令插入新紀錄,并且沒有為ID字段明確地給出一個值或null時才起作用。如果用戶給出了一個具體的值并且這個值還沒有在ID列里出現過,MySQL就將使用這個ID值生成一條新數據記錄。
3> 如果想知道MySQL在剛插入數據記錄里生成的auto_increment值是多少,在執行完insert命令后(但還是在本次連接或本個事務里),立刻執行select last_insert_id() 命令。
4> 如果auto_increment計算器到達了它的最大值(不同的整數數據類型有不同的最大值),將不再繼續遞增,數據記錄的插入操作也將隨之無法繼續進行。對 insert和delete 操作非常頻繁的數據表來說,哪怕數據記錄遠少于20億條,也有可能出現32位整數類型的auto_increment計算器被耗盡的情況。在定義這種數據表的時候,最好使用bigint數據列。
1.8.2 應用
1> 設置普通的自增,如下:
首次創建后使用show create table,不會出現AUTO_INCREAMENT=?,表中插入數據后會出現AUTO_INCREATE=?,?代表下一個自增的值。
2> 設置自增的步長
數據庫的默認設置可以用如下命令查看:
如果要單獨設置表自增的起始值和步長,如下所示:
這種set的方式不是全局生效的,如果想要全局生效,需要對mysql進行配置。
在創建表時可以通過auto_increment=?來設置其初始值,如下:
注意“?”必須是符合數據庫設置的auto_increment_increment和auto_increment_offset規則的,如果不合規則那么不生效,其生成的第一個數字是比設置值大的符合按偏移量和步長的第一個數字。如下舉例:
上例子中設置偏移量為4,步長為3.但是第一個插入的數據時8,打破了該規則,然后向表中插入默認值,其生成的是10,并不是8+3,因為8打破了偏移量與步長的規則,下一個生成的數字是大于8并且符合改規則的第一個數字10,再向其中插入的話,生成的數字就是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命令,表名之間用","分割,如下:
該命令遇壞則壞,但是能清除所有已存在的表,如下創建test1,test2,test3,test5四個表:
使用命令drop tables test1, test2, test3, test4, test5進行測試,如下:
4 查看所有表
查看當前所在的數據庫中的所有表,如下:
總結
以上是生活随笔為你收集整理的mysql表操作_MySQL表操作语句用法百科的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4GB vs 8GB内存条:速度与性能决
- 下一篇: 双内存条,系统加速利器