首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 學習筆記(一):建表、自增、查看結構、修改表結構、刪除約束與表

     編輯:MySQL 綜合教學

1. DEFAULT 預設值

CREATE TABLE emp ( id INT DEFAULT 12 );

2. 自增主鍵

CREATE TABLE temp2 (
    id INT PRIMARY KEY AUTO_INCREMENT,
    tname INT
);

注意:MySQL 自增列無法設定步長。

查看自增種子與步長

SHOW GLOBAL VARIABLES LIKE 'auto_incre%';

經典面試題:刪除最大 ID 後重啟再插入,ID 為何值?

  • MyISAM:最大 ID 寫在資料檔,重啟不丟失 → 11
  • InnoDB:最大 ID 只在記憶體,重啟或 OPTIMIZE TABLE 後丟失 → 8

取得當前表自增值的四種方法

  1. SELECT MAX(id) FROM person(高併發下不準)
  2. SELECT LAST_INSERT_ID()(針對任何表,auto_increment 專用)
  3. SELECT @@identity(全域變數,連線未關閉前有效)
  4. SHOW TABLE STATUS LIKE 'person' → Auto_increment 欄位(推薦用於特定表)

SQL 取得 Auto_increment:

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_comment
FROM 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;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved