在關係數據庫中,數據庫表是一系列二維數組的集合,用來表明和儲存數據對象之間的關係。它由縱向的列和橫向的行組成。數據表是數據庫中的最重要、最基本的操做對象,是數據存儲的基本單位。數據表被定義爲列的集合,數據在表中是按照行和列的格式來存儲的。每一行表明一條惟一的記錄,每一列表明記錄中的一個域。例如一個有關做者信息的名爲 authors 的表中,每一個列包含的是全部做者的某個特定類型的信息,好比「姓氏」,而每行則包含了某個特定做者的全部信息:姓、名、住址等等。mysql
在建立數據庫表以前,須要選定一個數據庫,在選定的數據庫中建立數據表,不然建立失敗。sql
USE 數據庫名稱;數據庫
CREATE TABELE 數據表名;數組
在建立好數據表以後,使用SQL語句進行查看,建立的數據表是否成功。數據結構
SHOW TABLES;(顯示某選定的數據庫中的全部的數據表名稱)spa
CREATE TABLE 表名稱 (3d
字段1 數據類型 列級別的約束條件 (能夠設定默認值),對象
字段2 數據類型 列級別的約束條件 (能夠設定默認值),blog
......數據類型
)
示例:建立一個員工表 tb_emp,有id,name,deptId,salary等列。
USE wangfang;
mysql> CREATE TABLE tb_emp (
-> id INT(11),
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT );
SHOW TABLES;
主鍵又稱爲主碼,是表中一列或者多列的組合。主鍵約束要求主鍵列的數據是惟一的,而且不能爲空。主鍵可以惟一的標識表中的一條記錄,能夠結合外鍵來定義不一樣數據表之間的關係,而且能夠加快數據庫查詢的速度。主鍵和記錄之間的關係是一一對應的,就像人和身份證同樣。主鍵分爲:單字段主鍵和多字段聯合主鍵。
主鍵是由一個字段組成,定義單字段的方法有兩種:一是定義列的同時指定主鍵,一種是在定義完成後指定主鍵。
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY ,
......
)
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT ,
PRIMARY KEY (id);
......
)
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY ,
name VARCHAR(25) ,
PRIMARY KEY (id,name);
......
)
外鍵用來在兩個表的數據之間創建鏈接,能夠是一列,也能夠是多列。一個表能夠有一個或者多個外鍵。外鍵對應的是參照的完整性,一個表的外鍵能夠爲空值,如果不爲空值,那麼每個外鍵值必須等於另外一個表中的主鍵的某個值。外鍵首先是一個表中的字段,能夠不是本表的主鍵,可是必定要對應另外一個表的主鍵。外鍵的做用是:保證數據引用的完整性。定義完成後,不能刪除有關聯性的行。
注意:創建外鍵的條件是,兩個表的存儲引擎要一致。
建立的語法規則:
CONSTRAINT 外鍵名稱 FOREIGN KEY 外鍵處的字段名 REFERENCES 主表的主鍵字段名
示例:
CREATE TABEL wang (
字段 數據類型 列級別約束條件 (指定默認值)
id_info INT PRIMARY KEY ,
name VARCHAR(25) ;
......
)
CREATE TABEL haha (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY ,
name VARCHAR(25) ,
CONSTRAINT waijian FOREIGN KEY id REFERENCES wang(id_info) ;
......
)
非空約束指的是:指定的字段不能爲空。使用了非空約束的字段,在添加數據的時候,若是沒有指定數據的指定值,那麼數據庫就會報錯。
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY NOT NULL;
......
)
惟一性約束:要求該列惟一,容許爲空,可是隻能出現一個空值,惟一約束能夠確保一列或者多列不出現重複的值。
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY UNIQUE,
......
)
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY ,
CONSTRAINT uniq UNIQUE(id) ;
......
)
默認約束是指:給某一個字段設定默認的值,當用戶添加數據的時候,沒有給該字段添加相應的數據時,填入默認的值。好比說,一個理工科的學校,通常來講男生比女生要多,那麼在存儲用戶信息的數據庫中,能夠將性別這一欄設定默認值爲:男
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY ,
sex CHAR(2) DEFAULT "m" ;
......
)
在數據庫應用中,常常但願在每次插入新紀錄時,系統可以自動的生成字段的主鍵值。能夠經過爲表的主鍵添加 AUTO_INCREMENT 關鍵字來實現。默認的,在MySQL中AUTO_INCREMENT的初始值爲1,每新增長一條記錄,字段的值自動加1.一個表只能有一個字段使用 AUTO_INCREMENT關鍵字,而且該字段必須爲主鍵的一部分。
CREATE TABEL 表名 (
字段 數據類型 列級別約束條件 (指定默認值)
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL
......
)
DESC 數據表的名稱
SHOW CREATE TABLE 數據表的名稱 \G ; ##若是不添加 \G 參數的話,輸出的結果可能會很亂。添加該參數會利於查看
語法規則:ALTER TABLE 表名 RENAME 新表名 ;
語法規則:ALTER TABEL 表名 CHANGE 舊字段名 新字段名 跟定義的時候的該字段的數據類型 ;
語法規則:ALTER TABLE 表名 MODIFY 字段名 新的數據類型 ;
語法規則:ALTER TABLE 表名 ADD 字段名 數據類型 列級別的約束條件 ;
語法規則:ALTER TABLE 表名 ADD 字段名 數據類型 列級別的約束條件 FIRST ;
語法結構:ALTER TABLE 表名 ADD 字段名 數據結構 列級別的約束條件 BEFORE 字段名 ;
語法結構:ALTER TABLE 表名 MODIFY 字段名 數據類型 FIRST|AFTER 字段名 ;
語法結構:ALTER TABLE 表名 ENGINE=更改後的存儲引擎的名稱 ;
用於查看某表的存儲引擎的SQL語句是:SHOW CREATE TABLE 表名 ; ##在後面會有表的相應的存儲引擎
語法結構:ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱 ;
以上的操做是在建立外鍵
語法結構:DROP TABLE 表名 ;
2.刪除有關聯的數據表
若是兩個表之間存在外鍵的鏈接,那麼在刪除表的時候,就不可能最早刪除主表。
想要刪除的方法是:先刪除外鍵,再刪除數據表;先刪除子表,再刪除父表。