針對mysql表進行的基礎操作,具體內容如下
1.創建表:
創建表的語法形式:
CREATE TABLE table_name( 屬性名 數據類型, 屬性名 數據類型, ... 屬性名 數據類型 )
示例:
CREATE TABLE t_dept( deptno int, dname varchar(20), loc varchar(20)
備注:在創建表之前,通常你需要使用 USE 庫名;這樣一條語句來選擇一個庫,在所選擇的庫中創建表。對於表名標識符,不能是mysql的關鍵字,如 CREATE、USE等,建議表名標識符為t_xxx或者tab_xxx;各屬性之間用逗號隔開,最後一個屬性後不需要使用逗號。
2.查看表結構:
2.1 DESCRIBE語句查看表的定義
USE 庫名; //選擇一個庫
DESCRIBE 表名; //查看表的定義信息,DESCRIBE可以使用DESC代替也可
2.2 SHOW CREATE TABLE 語句查看表的詳細定義
USE 庫名; //選擇一個庫
SHOW CREATE TABLE 表名 \G 表名; //查看表的定義信息
備注: 在顯示表的詳細定義信息時,可以使用”;” “\g” “\G” 符號來結束,為了讓結果顯示的更加美觀,便於用戶查看,最好使用\G 來結束。
3.刪除表:
刪除表的語法形式:
USE 庫名; //選擇一個庫
DROP TABLE 表名; //刪除指定表名的表
4.修改表:
4.1 修改表名
對於已經創建好的表, 使用一段時間後就需要一些結構上的修改,即表的修改操作。為什麼不直接刪除表,再按照新的表的定義來創建表呢?原因是如果表中已經存在大量的數據,那麼重建後還需要做許多額外的工作,例如數據的重載等。為了解決上述問題,mysql提供了ALTER TABLE 語句來實現修改表結構。
修改表名的語法形式:ALTER TABLE old_table_name REANME [TO] new_table_name;
4.2 增加字段
4.2.1在表的最後一個位置增加字段
語法形式為:ALTER TABLE table_name ADD 屬性名 屬性類型;
4.2.2在表的第一個位置增加字段
語法形式為:ALTER TABLE table_name ADD 屬性名 屬性類型 FIRST;
4.2.3在表的指定字段之後增加字段
語法形式為:ALTER TABLE table_name ADD 屬性名 屬性類型 AFTER 屬性名;
4.3 刪除字段
刪除字段的語法形式:ALTER TABLE table_name DROP 屬性名;
4.4 修改字段 (修改數據類型和順序必須是MODIFY,修改名字或名字和屬性必須是CHANGE)
4.4.1 修改字段的數據類型
語法形式為:ALTER TABLE table_name MODIFY 屬性名 數據類型; //數據類型為修改後的數據類型
4.4.2 修改字段的名字
語法形式為:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 舊數據類型;
4.4.3 同時修改字段的名字和屬性
語法形式為:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 新數據類型;
4.4.4 修改字段的順序
語法形式為:ALTER TABLE table_name MODIFY 屬性名1 數據類型 FIRTST| AFTER 屬性名2;
//”屬性名1”參數表示所要調整順序的字段名,”FITST”參數表示將字段調整到表的第一個位置,”AFTER 屬性名2”表示將字段調整到屬性名2字段的位置之後。
5.操作表的約束:
5.1 MySQL支持的完整性約束
所謂完整性是指數據的准確性和一致性,而完整性檢查是指檢查數據的准確性和一致性。MySQL提供了一種機制來檢查數據庫表中的數據是否滿足規定的條件,以保證數據庫中數據的准確性和一致性,這種機制就是約束。MySQL除了支持標准SQL的完整性約束外,還擴展增加了AUTO_INCREMENT約束。
1. NOT NULL //約束字段的值不能為空
2. DEFAULT //設置字段的默認值
3. UNIQUE KEY(UK) //約束字段的值是唯一
4. PRIMARY KEY(PK) //約束字段為表的主鍵,可以作為該表記錄的唯一標識
5. AUTO_INCREMENT //約束字段的值為自動增長
5.2 設置非空約束(NOT NULL, NK)
在創建數據庫表時,為某些字段加上”NOT NULL”約束條件,保證所有記錄中的該字段都是有值的。 設置非空約束的語法形式為:
CREATE TABLE table_name ( 屬性名 數據類型 NOT NULL, );
5.3 設置字段的默認值(DEFAULT)
當為數據庫表中插入一條新記錄時,如果沒有為某個字段賦值,那麼數據庫系統會自動為這個字段插入默認值。設置數據庫表中某個字段的默認值語法形式為:
CREATE TABLE table_name ( 屬性名 數據類型 DEFAULT 默認值, );
5.4 設置唯一約束(UNIQUE, UK)
當數據庫表中的某個字段上的內容不允許重復時,則可以使用UK約束進行設置。即UK約束在創建數據庫表時為某些字段加上”UNIQUE”約束條件,保證所有記錄中該字段上的值不重復。
設置唯一約束語法形式為:
CREATE TABLE table_name( 屬性名 數據類型 UNIQUE, );
例如:
CREATE TABLE t_dept( deptno INT , dname VARCHAR(20) UNIQUE, loc VARCHAR(40) );
如果想給字段dname上的UK約束設置一個名字,可以執行SQL語句CONSTRAINT,示例如下:
CREATE TABLE t_dept( deptno INT, dname VARCHAR(20), loc VARCHAR(40), CONSTRAINT uk_dname UNIQUE(dname) ); //在為約束設標識符時,推薦使用“約束縮寫_字段名",因此設置為uk_dname;
5.5 設置主鍵約束(PRIMARY KEY , PK)
當想用數據庫表中的某個字段來唯一標識所有記錄時,則可以使用PK約束進行設置。在數據庫表中之所以設置主鍵,是為了便於快速的查找到表中的記錄。在具體設置主鍵約束時,必須要滿足主鍵字段的值是唯一、非空的。主鍵可以使單一字段,也可以是多個字段,因此分為單字段主鍵和多字段主鍵。主鍵約束相當於 非空約束 加上 唯一約束。
5.5.1 單字段主鍵
設置PK約束,語法形式如下:
CREATE TABLE table_name( 屬性名 數據類型 PRIMARY KEY, );
如果想給字段deptno上的PK約束設置一個名字,可以使用CONSTRAINT,示例如下:
CREATE TABLE table_name( deptno INT, dname VARCHAR(20), loc VARCHAR(40), CONSTRAINT pk_deptno PRIMARY KEY(deptno) );
5.5.2 多字段主鍵
當主鍵有多個字段組合而成時,則需要通過SQL語句CONSTRAINT來實現,其語法形式如下:
CREATE TABLE table_name( 屬性名 數據類型, ...... [CONSTRAINT 約束名]PRIMARY KEY (屬性名,屬性名......) );
5.6 設置字段值自動增加(AUTO_INCREMENT)
AUTO_INCREMENT 是MySQL唯一擴展的唯一性約束,當為數據庫表中插入新記錄時,字段上的值會生成唯一的ID,在數據庫表中只能有一個字段使用該約束,該字段的數據類型必須是整數類型,由於設置自增長字段會生成唯一的ID,所以該字段也經常設置成PK主鍵。
設置自增長語法形式如下:
CREATE TABLE table_name( 屬性名 數據類型 AUTO_INCREMENT, //默認字段的值是從1開始增加,每增加一條在前一條的基礎上加1 deptno INT PRIMARY KEY AUTO_INCREMENT, //通常都會和PK一起寫 );
5.7 設置外鍵約束(FOREIGN KEY ,FK)
前面的完整性約束都是在單表中進行設置,而外鍵約束通常保證兩個表之間的參照完整性,即構建於兩個表的兩個字段之間的參照關系。在具體設置FK約束時,設置FK約束的字段必須依賴於數據庫中已經存在的”一”(一對多中的一)的一方的主鍵,同時外鍵可以設置為null。
設置FK約束的語法形式如下:
CREATE TABLE table_name( 屬性名 數據類型, 屬性名 數據類型, [CONSTRAINT 外鍵約束名] FOREIGN KEY (屬性名1) REFERENCES 表名 (屬性名2) //備注:"外鍵約束名"用來標識約束名,"屬性名1"參數是"多"的一方表中設置外鍵的字段名,"屬性2"中,參數是"一"的一方設置主鍵約束的字段名。 )
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持幫客之家。