MySQL命令梳理_MySQL操作命令梳理(2)

一、表操作

在mysql運維操作中會經常使用到alter這個修改表的命令,alter tables允許修改一個現有表的結構,比如增加或刪除列、創造或消去索引、改變現有列的類型、或重新命名列或表本身,也能改變表的注釋和表的類型。

下面就針對alter修改命令的使用做一梳理:

在mysql運維操作中會經常使用到alter這個修改表的命令,alter tables允許修改一個現有表的結構,比如增加或刪除列、創造或消去索引、改變現有列的類型、或重新命名列或表本身,也能改變表的注釋和表的類型。

下面就針對alter修改命令的使用做一梳理:

1、刪除列

alter table 表名 DROP 列名; //或者 alter table 表名 drop column 列名;

-------------------------------------------------------------------------------------drop database 庫名;//刪除庫

drop table 表名; //刪除表

delete from 表名; //清空表中所有數據,但這張表沒有刪除,保留的是空表。

delete from 表名 where ...; //刪除表中字段

------------------------------------------------------------------------------------

2、增加列

alter table 表名 ADD 列名 列的屬性(如INT NOT NULL COMMENT '注釋說明')

3、修改列的類型信息。

alter table 表名 CHANGE 列名 新列名 新列屬性;

alter table 表名 CHANGE 列名 新列名(這里可以用和原來列同名即可) BIGINT NOT NULL COMMENT '注釋說明'

4、重命名列

alter table 表名 CHANGE 列名 新列名 BIGINT NOT NULL COMMENT '注釋說明'

5、重命名表

alter table 表名 RENAME 表新名

6、刪除表中主鍵

alter table 表名 drop primary key-------------------------------------------------------------------------------------如若刪除帶自增屬性的主鍵,那么要先刪除自增長,再刪除主鍵

Alter table haha changeid id int(10); //刪除自增長

Alter table haha drop primary key; //刪除主建

-------------------------------------------------------------------------------------

7、添加主鍵

alter table 表名 ADD CONSTRAINT PK_表名 PRIMARY KEY(列名1,列名2)-------------------------------------------------------------------------------------Alter table haha add primary key(id); //將haha表的id列添加主鍵

Alter table haha change id id int(10) not null auto_increment; //自增長屬性

-------------------------------------------------------------------------------------sql中constraint前綴的用意(PK、UK、DF、CK、FK)

--主鍵

constraint PK_字段 primary key(字段),--唯一約束

constraint UK_字段 unique key(字段),--默認約束

constrint DF_字段 default('默認值') for字段,--檢查約束

constraint CK_字段 check(約束。如:len(字段)>1),--主外鍵關系

constraint FK_主表_從表 foreign(外鍵字段) references 主表(主表主鍵字段)

8、添加/創建索引

alter table 表名 add index 索引名 列名; //普通索引

ALTER TABLE 表名 ADD UNIQUE index 索引名 (列名1,列名2); //聯合索引

ALTER TABLE 表名 ADD PRIMARY index KEY 索引名 列名; //主鍵索引

-------------------------------------------------------------------------------------SHOW INDEX FROM 表名字;//查詢索引

刪除索引可以使用ALTER TABLE或DROP INDEX語句來實現。DROP INDEX可以在ALTER TABLE內部作為一條語句處理

DROP index 索引名 ON 表名字 列名;//刪除普通索引

ALTER TABLE 表名 DROP INDEX 索引名 列名; //刪除普通索引

ALTER TABLE 表名 DROP UNIQUE 索引名 (列名1,列名2); //刪除聯合索引

ALTER TABLE 表名 DROP PRIMARY KEY 索引名 列名; //刪除主鍵索引

-------------------------------------------------------------------------------------

9、添加唯一限制條件索引

alter table 表名 add unique emp_name2(cardnumber); //empname 類型 為String 字符串類型

10、創建聯合唯一索引

alter table 表名 ADD UNIQUE INDEX 索引名 (列名1,列名2);

alter ignore table 表名 add unique index(user_id,user_name);//它會刪除重復的記錄(別怕,會保留一條),然后建立唯一索引,高效而且人性化.(慎用)

11、修改字段屬性

alter table 表名 modify column 字段名 類型

alter table 表名 modify column 字段1 類型,字段2 類型

例如:將class表的name列屬性改成varchar(100)

alter table class modify column name varchar(100);

或者:

alter table 表名 change 列名 列名 varchar(100);

alter table class change name name varchar(100)

例:

上面提到了使用alter命令修改表名,修改列名;那么修改字段值,就需要使用update命令,如下:

mysql> select *from huanqiu.haha;+----+-----------+

| id | name |

+----+-----------+

| 1 | wangshibo |

| 11 | ouou |

| 19 | hahahahha |

+----+-----------+

3 rows in set (0.00sec)

mysql> update huanqiu.haha set name="wangshikui" where id=11;

Query OK,1 row affected (0.00sec)

Rows matched:1 Changed: 1 Warnings: 0mysql> select *from huanqiu.haha;+----+------------+

| id | name |

+----+------------+

| 1 | wangshibo |

| 11 | wangshikui |

| 19 | hahahahha |

+----+------------+

3 rows in set (0.01 sec)

1、修改root登陸密碼:

mysql> update mysql.user set password=password("654321") where host='192.168.1.101' and user="root";

update 表名 set 列名="新的字段值"[where 限制條件1 and 限制條件1];

update 表名 set 列名1="新的字段值",列名2="新的字段值"[where 限制條件1 and 限制條件1] [ORDER BY ...] [LIMIT row_count];

insert into 表名 values(所有字段的插入值);

insert into 表名(指定字段) values(指定字段);

insert into 表名 values(所有字段的插入值),(所有字段的插入值),(所有字段的插入值);//批量插入

mysql> select *from huanqiu.haha;+----+------------+

| id | name |

+----+------------+

| 11 | wangshikui |

+----+------------+

1 row in set (0.00sec)

mysql> insert into huanqiu.haha values(1,"wangshibo"),(2,"wangshikui"),(3,"wangjuan"),(4,"wangman");

Query OK,4 rows affected (0.00sec)

Records:4 Duplicates: 0 Warnings: 0mysql> select *from huanqiu.haha;+----+------------+

| id | name |

+----+------------+

| 1 | wangshibo |

| 2 | wangshikui |

| 3 | wangjuan |

| 4 | wangman |

| 11 | wangshikui |

+----+------------+

2、創建操作

創建表時指定AUTO_INCREMENT自增值的初始值:

mysql> CREATE TABLE 表名 (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;

通過ALTER TABLE 修改初始值(但要大于表中的AUTO_INCREMENT自增值,否則設置無效):

mysql>ATLER TABLE 表名 AUTO_INCREMENT=100;

如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。

就是說如果表中原本有AUTO_INCREMENT屬性值連續為78、100的值,但100這個數據被刪除了,下此再添加數據的時候自增值為101,100被重用了。

即使在你將整個表中的所有數據delete清空后,之前的自增序列最大值還是會被重用。

解決辦法是使用下面命令:

ATLER TABLE 表名 AUTO_INCREMENT=0; //重新設置自增初始值

設置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_offset用戶變量值(重啟MySQL之后,這些修改會恢復為初始值1):

mysql>SET auto_increment_increment=10; //自增量每次增加的值改為10,

mysql>SET auto_increment_offset=2; //第一次加載數值時的偏移值的個位值

mysql>SHOW VARIABLES LIKE 'AUTO_INC%'; //查看修改后變量的值

mysql>SHOW TABLE STATUS FROM NAME_DB; //顯示數據庫NAME_DB中所有表的信息

mysql>SHOW CREATE TABLE NAME_TBL; //顯示表NAME_TBL創建時的信息

mysql>SHOW VARIABLES LIKE 'AUTO_INC%'; //顯示MySQL的AUTO_INC開頭的用戶會話變量(SHOW GLOBAL VARIABLES)

+--------------------------+-------+

| Variable_name | Value |

+--------------------------+-------+

| auto_increment_increment | 1 |

| auto_increment_offset | 1 |

+--------------------------+-------+

2 rows in set (0.00 sec)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529696.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529696.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529696.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 進度條_進度條Java

你必須使用線程.設計一個實現Runnable接口的類,它將更新這樣的值.class ProgressBarUpdator implements java.lang.Runnable {/*** Progress bar that shows the current status*/private javax.swing.JProgressBar jpb null;/*** Progress bar value*/private java.lang.Inte…

java 文件存儲_文件存儲學生信息(JavaIO流)

package com;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Scanner;/*** author Administrator*1.要求:有五個學生,每個學生有姓名、年齡 、成績三個屬性&a…

位運算java_Java中的位運算

Java中的位運算,說實話,工作了兩年的時間里,從來沒有用過一次,因為平時都是些的是業務代碼,很少接觸比較底層的東西,我記得第一次在代碼中看到還是在HashMap的Hash算法中看到的,這次重拾Java基礎…

java藍橋杯dfs_第七屆 藍橋杯決賽 Java B組 打靶 解題報告(DFS,回溯,全排列)-Go語言中文社區...

題目:打靶小明參加X星球的打靶比賽。比賽使用電子感應計分系統。其中有一局,小明得了96分。這局小明共打了6發子彈,沒有脫靶。但望遠鏡看過去,只有3個彈孔。顯然,有些子彈準確地穿過了前邊的彈孔。不同環數得分是這樣設…

guid mysql_關于MySQL:MySQL-如何搜索GUID

我正在使用第三方.NET庫(Rhino Security),將其標識符存儲為mysql數據庫中binary(16)字段中的向導。 一切都可以從該應用程序完美地工作,但是當我嘗試通過查詢編輯器(對于MySQL為TOAD)手動運行查詢時,沒有行返回我知道存在的標識符。 例如&…

java 單例 生命周期_Rhythmk 一步一步學 JAVA (13) Spring-2 之Ben懶加載以及生命周期,單例...

1、定義Demo類:package com.rhythmk.spring;public class User {public void Init (){System.out.println("User 對象被 創建!");}// 計數器public int Count0;public void Say(){this.Count;System.out.println("User 被"this.Coun…

java 高級泛型_java泛型的高級應用

展開全部在上面的例子中,由于沒有限制class GenericsFoo類型持有者T的范圍,實際上這里32313133353236313431303231363533e59b9ee7ad9431333339666666的限定類型相當于Object,這和“Object泛型”實質是一樣的。限制比如我們要限制T為集合接口類…

java窗體線條切換消失_java – 如何更改apache poi生成的圖表不使用平滑線條并將空單元格顯示為間隙?...

我使用的是POI 3.12-beta1,并且代碼可以在圖例中創建包含多個數據集和命名系列的折線圖.但是,poi中折線圖的默認設置會生成一條已在數據點上平滑的線.空值也被繪制為0,但我們希望這些線在第一列停止,其中有一個空單元格.一旦在xlsx文件中呈現并更改這些設置,我就可以進入圖表屬…

java正則表達式 問號_正則表達式問號的四種用法詳解

正則表達式問號的四種用法詳解原文符號因為?在正則表達式中有特殊的含義,所以如果想匹配?本身,則需要轉義,\?有無量詞問號可以表示重復前面內容的0次或一次,也就是要么不出現,要么出現一次。非貪婪匹配貪婪匹配在滿…

java alert跳頁面_JavaScript中通過提示框跳轉頁面的方法

通過提示框跳轉頁面具體代碼如下所示:Documentwindow.onload function(){ //設置當頁面加載時執行var btn document.getElementsByTagName("button")[] //獲取btn元素btn.onclick function(){ //給button加上一個點擊事件var answer confirm("是否…

java jsp if else if_jsp頁面使用if else語句 | 學步園

jsp頁面嵌入java語句使用即可,但是在使用if else語句時一定要注意使用是標點的使用,在語句中分號不能寫,不符合jsp頁面的語法規則,若多寫了則會報錯:如下:{name: priceRA, type: string}, {name: priceRB, type: string}, {name: priceRC, type: string},{name: priceRD, typ…

mysql 優化300例_mysql的limit優化實例

測試環境操作系統: debian linux服務器版本: Mysql 5.0.24Mysql數據庫的Qcache緩存關閉數據庫表testtable的參數:類型: MyISAM 大小: >80MB 記錄規模: >50000 字段數: >25個字段id是主鍵 leibie字段上建有索引進行數據分段測試1>SQL不帶where條件的測試1…

mysql+百萬+中間表_MYSQL優化

MYSQL優化是一個非常大的課題,這篇文章主要介紹了跟MYSQL相關的4個方面,如果想深入研究可以查下相關資料。一、服務器級別優化二、操作系統級別優化三、MYSQL級別優化四、SQL級別優化一、服務器級別優化1.服務器選型SUN小型機、DELL730xd、HPDL380、IBM3…

java kafka 拉取_java獲取kafka consumer lag

maven依賴org.apache.kafkakafka-clients0.10.1.0注意:kafka-clients版本需要0.10.1.0以上,因為調用了新增接口endOffsets;laglogsize-offsetlogsize通過consumer的endOffsets接口獲得;offset通過consumer的committed接口獲得;imp…

java開源圖像處理ku_83 項開源視覺 SLAM 方案夠你用了嗎?

原標題:83 項開源視覺 SLAM 方案夠你用了嗎?公眾號:3D視覺工坊主要關注:3D視覺算法、SLAM、vSLAM、計算機視覺、深度學習、自動駕駛、圖像處理以及技術干貨分享運營者和嘉賓介紹:運營者來自國內一線大廠的算法工程師&a…

java 方法的拆分_java – 字符串拆分和比較 – 最快的方法

>將輸入讀入byte []數組以將指針保持在代碼的一側.>逐字節讀取,計算整數元素&#xff1a;int b inputBytes[p];int d b - 0;if (0 < d) {if (d < 9) {element element * 10 d;} else {// b :}} else {// b ,// add element to the hash; element 0;...}if (…

java sql異常_java.sql.SQLException: Io 異常: Got minus one from a

java.sql.SQLException: Io 異常: Got minus one from a read callat oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)at oracle.jdbc.driver.DatabaseError.thro…

java 攔截器ajax_(轉)攔截器深入實踐 - JAVA XML JAVASCRIPT AJAX CSS - BlogJava

Interceptor的定義我們來看一下Interceptor的接口的定義&#xff1a;Java代碼 publicinterfaceInterceptorextendsSerializable {/*** Called to let an interceptor clean up any resources it has allocated.*/voiddestroy();/*** Called after an interceptor is created, b…

php學的是什么意思_為什么要學習PHP?到底什么是PHP?

為什么要學習PHP?到底什么是PHP?PHP可以做什么?相信這樣的問題困擾著很多的人&#xff0c;在我沒工作之前&#xff0c;都沒有聽說過PHP&#xff0c;自從工作后&#xff0c;慢慢接觸到代碼&#xff0c;慢慢知道什么是PHP。PHP是做網站一種語言&#xff0c;很多工程師都使用PH…

php 多數據庫聯合查詢,php如何同時連接多個數據庫_PHP教程

下面是一個函數能夠保證連接多個數據庫的下不同的表的函數&#xff0c;可以收藏一下&#xff0c;比較實用&#xff0c;測試過是有用的。function mysql_oper($oper,$db,$table,$where1,$limit10){$connmysql_connect(localhost,like,admin,true) or mysql_error();mysql_select…