《Mysql入門mysql表的基礎(chǔ)操作匯總(三)》要點(diǎn):
本文介紹了Mysql入門mysql表的基礎(chǔ)操作匯總(三),希望對您有用。如果有疑問,可以聯(lián)系我們。
MYSQL必讀針對mysql表進(jìn)行的基礎(chǔ)操作,具體內(nèi)容如下
MYSQL必讀1.創(chuàng)建表:
創(chuàng)建表的語法形式:
MYSQL必讀
CREATE TABLE table_name(
屬性名 數(shù)據(jù)類型,
屬性名 數(shù)據(jù)類型,
...
屬性名 數(shù)據(jù)類型
)
MYSQL必讀示例:
MYSQL必讀
CREATE TABLE t_dept(
deptno int,
dname varchar(20),
loc varchar(20)
MYSQL必讀備注:在創(chuàng)建表之前,通常你需要使用 USE 庫名;這樣一條語句來選擇一個庫,在所選擇的庫中創(chuàng)建表.對于表名標(biāo)識符,不能是mysql的關(guān)鍵字,如 CREATE、USE等,建議表名標(biāo)識符為t_xxx或者tab_xxx;各屬性之間用逗號隔開,最后一個屬性后不需要使用逗號.
MYSQL必讀2.查看表結(jié)構(gòu):
2.1 DESCRIBE語句查看表的定義?
??? USE 庫名; //選擇一個庫
??? DESCRIBE 表名; //查看表的定義信息,DESCRIBE可以使用DESC代替也可
2.2 SHOW CREATE TABLE 語句查看表的詳細(xì)定義?
??? USE 庫名; //選擇一個庫
??? SHOW CREATE TABLE 表名 \G 表名; //查看表的定義信息
備注: 在顯示表的詳細(xì)定義信息時,可以使用”;” “\g” “\G” 符號來結(jié)束,為了讓結(jié)果顯示的更加美觀,便于用戶查看,最好使用\G 來結(jié)束.
MYSQL必讀3.刪除表:
刪除表的語法形式:
??? USE 庫名; //選擇一個庫
??? DROP TABLE 表名; //刪除指定表名的表
MYSQL必讀4.修改表:
4.1 修改表名?
??? 對于已經(jīng)創(chuàng)建好的表, 使用一段時間后就需要一些結(jié)構(gòu)上的修改,即表的修改操作.為什么不直接刪除表,再按照新的表的定義來創(chuàng)建表呢?原因是如果表中已經(jīng)存在大量的數(shù)據(jù),那么重建后還需要做許多額外的工作,例如數(shù)據(jù)的重載等.為了解決上述問題,mysql提供了ALTER TABLE 語句來實(shí)現(xiàn)修改表結(jié)構(gòu).
??? 修改表名的語法形式: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 修改字段 (修改數(shù)據(jù)類型和順序必須是MODIFY,修改名字或名字和屬性必須是CHANGE)?
??? 4.4.1 修改字段的數(shù)據(jù)類型
??? 語法形式為:ALTER TABLE table_name MODIFY 屬性名 數(shù)據(jù)類型; //數(shù)據(jù)類型為修改后的數(shù)據(jù)類型
??? 4.4.2 修改字段的名字
??? 語法形式為:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 舊數(shù)據(jù)類型;
??? 4.4.3 同時修改字段的名字和屬性
??? 語法形式為:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 新數(shù)據(jù)類型;
??? 4.4.4 修改字段的順序
??? 語法形式為:ALTER TABLE table_name MODIFY 屬性名1 數(shù)據(jù)類型 FIRTST| AFTER 屬性名2;
??? //”屬性名1”參數(shù)表示所要調(diào)整順序的字段名,”FITST”參數(shù)表示將字段調(diào)整到表的第一個位置,”AFTER 屬性名2”表示將字段調(diào)整到屬性名2字段的位置之后.
MYSQL必讀5.操作表的約束:
5.1 MySQL支持的完整性約束?
??? 所謂完整性是指數(shù)據(jù)的準(zhǔn)確性和一致性,而完整性檢查是指檢查數(shù)據(jù)的準(zhǔn)確性和一致性.MySQL提供了一種機(jī)制來檢查數(shù)據(jù)庫表中的數(shù)據(jù)是否滿足規(guī)定的條件,以保證數(shù)據(jù)庫中數(shù)據(jù)的準(zhǔn)確性和一致性,這種機(jī)制就是約束.MySQL除了支持標(biāo)準(zhǔn)SQL的完整性約束外,還擴(kuò)展增加了AUTO_INCREMENT約束.
??? 1. NOT NULL //約束字段的值不能為空
??? 2. DEFAULT //設(shè)置字段的默認(rèn)值
??? 3. UNIQUE KEY(UK) //約束字段的值是唯一
??? 4. PRIMARY KEY(PK) //約束字段為表的主鍵,可以作為該表記錄的唯一標(biāo)識
??? 5. AUTO_INCREMENT //約束字段的值為自動增長
5.2 設(shè)置非空約束(NOT NULL, NK)?
??? 在創(chuàng)建數(shù)據(jù)庫表時,為某些字段加上”NOT NULL”約束條件,保證所有記錄中的該字段都是有值的. 設(shè)置非空約束的語法形式為:?
MYSQL必讀
CREATE TABLE table_name (
屬性名 數(shù)據(jù)類型 NOT NULL,
);
MYSQL必讀5.3 設(shè)置字段的默認(rèn)值(DEFAULT)?
??? 當(dāng)為數(shù)據(jù)庫表中插入一條新記錄時,如果沒有為某個字段賦值,那么數(shù)據(jù)庫系統(tǒng)會自動為這個字段插入默認(rèn)值.設(shè)置數(shù)據(jù)庫表中某個字段的默認(rèn)值語法形式為:?
MYSQL必讀
CREATE TABLE table_name (
屬性名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值,
);
MYSQL必讀5.4 設(shè)置唯一約束(UNIQUE, UK)?
??? 當(dāng)數(shù)據(jù)庫表中的某個字段上的內(nèi)容不允許重復(fù)時,則可以使用UK約束進(jìn)行設(shè)置.即UK約束在創(chuàng)建數(shù)據(jù)庫表時為某些字段加上”UNIQUE”約束條件,保證所有記錄中該字段上的值不重復(fù).
??? 設(shè)置唯一約束語法形式為:
MYSQL必讀
CREATE TABLE table_name(
屬性名 數(shù)據(jù)類型 UNIQUE,
);
MYSQL必讀例如:
MYSQL必讀
CREATE TABLE t_dept(
deptno INT ,
dname VARCHAR(20) UNIQUE,
loc VARCHAR(40)
);
MYSQL必讀??? 如果想給字段dname上的UK約束設(shè)置一個名字,可以執(zhí)行SQL語句CONSTRAINT,示例如下:
MYSQL必讀
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT uk_dname UNIQUE(dname)
);
//在為約束設(shè)標(biāo)識符時,推薦使用“約束縮寫_字段名",因此設(shè)置為uk_dname;
MYSQL必讀5.5 設(shè)置主鍵約束(PRIMARY KEY , PK)?
??? 當(dāng)想用數(shù)據(jù)庫表中的某個字段來唯一標(biāo)識所有記錄時,則可以使用PK約束進(jìn)行設(shè)置.在數(shù)據(jù)庫表中之所以設(shè)置主鍵,是為了便于快速的查找到表中的記錄.在具體設(shè)置主鍵約束時,必須要滿足主鍵字段的值是唯一、非空的.主鍵可以使單一字段,也可以是多個字段,因此分為單字段主鍵和多字段主鍵.主鍵約束相當(dāng)于 非空約束 加上 唯一約束.
??? 5.5.1 單字段主鍵
??? 設(shè)置PK約束,語法形式如下:
MYSQL必讀
CREATE TABLE table_name(
屬性名 數(shù)據(jù)類型 PRIMARY KEY,
);
MYSQL必讀??? 如果想給字段deptno上的PK約束設(shè)置一個名字,可以使用CONSTRAINT,示例如下:
MYSQL必讀
CREATE TABLE table_name(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT pk_deptno PRIMARY KEY(deptno)
);
MYSQL必讀??? 5.5.2 多字段主鍵
??? 當(dāng)主鍵有多個字段組合而成時,則需要通過SQL語句CONSTRAINT來實(shí)現(xiàn),其語法形式如下:
MYSQL必讀
CREATE TABLE table_name(
屬性名 數(shù)據(jù)類型,
......
[CONSTRAINT 約束名]PRIMARY KEY (屬性名,屬性名......)
);
MYSQL必讀5.6 設(shè)置字段值自動增加(AUTO_INCREMENT)?
??? AUTO_INCREMENT 是MySQL唯一擴(kuò)展的唯一性約束,當(dāng)為數(shù)據(jù)庫表中插入新記錄時,字段上的值會生成唯一的ID,在數(shù)據(jù)庫表中只能有一個字段使用該約束,該字段的數(shù)據(jù)類型必須是整數(shù)類型,由于設(shè)置自增長字段會生成唯一的ID,所以該字段也經(jīng)常設(shè)置成PK主鍵.
??? 設(shè)置自增長語法形式如下:
MYSQL必讀
CREATE TABLE table_name(
屬性名 數(shù)據(jù)類型 AUTO_INCREMENT, //默認(rèn)字段的值是從1開始增加,每增加一條在前一條的基礎(chǔ)上加1
deptno INT PRIMARY KEY AUTO_INCREMENT, //通常都會和PK一起寫
);
MYSQL必讀5.7 設(shè)置外鍵約束(FOREIGN KEY ,FK)?
??? 前面的完整性約束都是在單表中進(jìn)行設(shè)置,而外鍵約束通常保證兩個表之間的參照完整性,即構(gòu)建于兩個表的兩個字段之間的參照關(guān)系.在具體設(shè)置FK約束時,設(shè)置FK約束的字段必須依賴于數(shù)據(jù)庫中已經(jīng)存在的”一”(一對多中的一)的一方的主鍵,同時外鍵可以設(shè)置為null.
??? 設(shè)置FK約束的語法形式如下:
MYSQL必讀
CREATE TABLE table_name(
屬性名 數(shù)據(jù)類型,
屬性名 數(shù)據(jù)類型,
[CONSTRAINT 外鍵約束名] FOREIGN KEY (屬性名1) REFERENCES 表名 (屬性名2)
//備注:"外鍵約束名"用來標(biāo)識約束名,"屬性名1"參數(shù)是"多"的一方表中設(shè)置外鍵的字段名,"屬性2"中,參數(shù)是"一"的一方設(shè)置主鍵約束的字段名.
)
MYSQL必讀以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持維易PHP.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/3642.html