我的MYSQL學習筆記(一),MYSQL學習筆記(

來源:互聯網
上載者:User

我的MYSQL學習筆記(一),MYSQL學習筆記(

這是我個人藉助網路文章學習MYSQL的過程筆記,希望對大家的有所協助。
1、DEFUALT關鍵字

CREATE TABLE emp(id INT DEFAULT 12)

2、設定自增長列(auto_increment)

create  table temp2(    id INT primary KEY auto_increment,    tname INT)

mysql的自增長列是不能設定步長的。
查看系統當前預設的自增列種子值和步長值

SHOW GLOBAL VARIABLES LIKE 'auto_incre%'


問:如果有一張表,裡面有個欄位為id的自增主鍵,當已經向表裡面插入了10條資料之後,刪除了id為8,9,10的資料,再把mysql重啟,

之後再插入一條資料,那麼這條資料的id值應該是多少,是8,還是11?
答:如果表的類型為MyISAM,那麼是11。如果表的類型為InnoDB,則id為8。
這是因為兩種類型的儲存引擎所儲存的最大ID記錄的方式不同,MyISAM表將最大的ID記錄到了資料檔案裡,重啟mysql自增主鍵的最大ID值也不會丟失;
而InnoDB則是把最大的ID值記錄到了記憶體中,所以重啟mysql或者對錶進行了OPTIMIZE操作後,最大ID值將會丟失。
順便說一下MYSQL擷取當前表的自增值的四種方法
1、 SELECTMAX(id) FROM person 針對特定表(多線程的情況下會出現問題)
2、 SELECT LAST_INSERT_ID() 函數 針對任何錶(auto_increment使用的此方式,顯式使用的時候不要在主鍵列使用)
3、 SELECT@@identity 針對任何錶(同上,不要與LAST_INSERT_ID()切換使用)
@@identity 是表示的是最近一次向具有identity屬性(即自增列)的表插入資料時對應的自增列的值,是系統定義的全域變數。
一般系統定義的全域變數都是以@@開頭,使用者自訂變數以@開頭。
使用@@identity的前提是在進行insert操作後,執行select @@identity的時候串連沒有關閉,否則得到的將是NULL值。
4. SHOW TABLE STATUS LIKE’person’
如果針對特定表,建議使用這一種方法
得出的結果裡邊對應表名記錄中有個Auto_increment欄位,裡邊有下一個自增ID的數值就是當前該表的最大自增ID.
(擷取此值的SQL:

SELECT table_name,Auto_increment,Engine,Version,Row_format,table_rows,Avg_row_length,  Data_length,Max_data_length,Index_length,Data_free,  Create_time,Update_time,Check_time,table_collation,Checksum,  Create_options,table_commentFROM information_schema.`TABLES`WHERE Table_Schema='test'AND table_name = 'temp1'

3、查看錶定義

DESC tempt

4、修改表名

ALTER TABLE tempt RENAME temp1

5、修改欄位的資料類型

ALTER TABLE temp1 MODIFY tname INT(20)

MODIFY關鍵字還可以用於改變已存在列的位置

ALTER TABLE temp3 MODIFY tage INT AFTER tname

改變之前

改變之後

6、修改欄位名

ALTER TABLE temp1 CHANGE id myid BIGINT

CHANGE命令不僅改變了欄位名稱同時還改變了資料類型,當然他也可以只改變類型。

7、添加欄位

ALTER TABLE temp3 ADD tsex INT

8、刪除欄位

ALTER TABLE temp3 DROP tsex

9、刪除約束

--刪除外鍵約束ALTER TABLE emp2 DROP FOREIGN KEY fk_emp_dept--刪除主鍵約束ALTER TABLE emp2 DROP PRIMARY KEY pk_emp_dept

10、刪除表

DROP TABLE temp3

同時刪除多張表且驗證表是否存在

DROP TABLE IF EXISTS temp1,temp3

11、查看欄位實際儲存長度

SELECT LENGTH(id) FROM temp

參考:
http://www.cnblogs.com/lyhabc/p/3691555.html

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.