MYSQL數據庫——表的基本操做(定義表的約束、查看錶的結構、修改數據表、刪除數據表)

一.什麼是數據庫的表?

  在關係數據庫中,數據庫表是一系列二維數組的集合,用來表明和儲存數據對象之間的關係。它由縱向的列和橫向的行組成。數據表是數據庫中的最重要、最基本的操做對象,是數據存儲的基本單位。數據表被定義爲列的集合,數據在表中是按照行和列的格式來存儲的。每一行表明一條惟一的記錄,每一列表明記錄中的一個域。例如一個有關做者信息的名爲 authors 的表中,每一個列包含的是全部做者的某個特定類型的信息,好比「姓氏」,而每行則包含了某個特定做者的全部信息:姓、名、住址等等。mysql

 

二.建立數據表

1.建立數據表的MYSQL語句

  在建立數據庫表以前,須要選定一個數據庫,在選定的數據庫中建立數據表,不然建立失敗。sql

  USE 數據庫名稱;數據庫

  CREATE  TABELE  數據表名;數組

  在建立好數據表以後,使用SQL語句進行查看,建立的數據表是否成功。數據結構

  SHOW TABLES;(顯示某選定的數據庫中的全部的數據表名稱)spa

 

2.建立數據表的語法

  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;

            

 

三.建立關於數據表的一些約束

1.主鍵 (PRIMARY KEY) 約束

 主鍵又稱爲主碼,是表中一列或者多列的組合。主鍵約束要求主鍵列的數據是惟一的,而且不能爲空。主鍵可以惟一的標識表中的一條記錄,能夠結合外鍵來定義不一樣數據表之間的關係,而且能夠加快數據庫查詢的速度。主鍵和記錄之間的關係是一一對應的,就像人和身份證同樣。主鍵分爲:單字段主鍵和多字段聯合主鍵。

(1)單字段聯合主鍵

  主鍵是由一個字段組成,定義單字段的方法有兩種:一是定義列的同時指定主鍵,一種是在定義完成後指定主鍵。

 

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY ,

  ......

  )

 

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT ,

  PRIMARY KEY (id);

  ......

  )

 

(2)多字段聯合主鍵

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY ,

  name  VARCHAR(25) ,

  PRIMARY KEY (id,name);

  ......

  )

 

2.外鍵約束

 外鍵用來在兩個表的數據之間創建鏈接,能夠是一列,也能夠是多列。一個表能夠有一個或者多個外鍵。外鍵對應的是參照的完整性,一個表的外鍵能夠爲空值,如果不爲空值,那麼每個外鍵值必須等於另外一個表中的主鍵的某個值。外鍵首先是一個表中的字段,能夠不是本表的主鍵,可是必定要對應另外一個表的主鍵。外鍵的做用是:保證數據引用的完整性。定義完成後,不能刪除有關聯性的行。

 注意:創建外鍵的條件是,兩個表的存儲引擎要一致。

 

  建立的語法規則:

  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) ;

  ......

  )

 

3.非空 (NOT NULL) 約束

 非空約束指的是:指定的字段不能爲空。使用了非空約束的字段,在添加數據的時候,若是沒有指定數據的指定值,那麼數據庫就會報錯。

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY  NOT NULL

  ......

  )

 

4.惟一性 (UNIQUE) 約束

 惟一性約束:要求該列惟一,容許爲空,可是隻能出現一個空值,惟一約束能夠確保一列或者多列不出現重複的值。

  

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY  UNIQUE,

  ......

  )

 

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY ,

  CONSTRAINT  uniq  UNIQUE(id) ;

  ......

  )

  

5.默認 (DEFAULT) 約束

 默認約束是指:給某一個字段設定默認的值,當用戶添加數據的時候,沒有給該字段添加相應的數據時,填入默認的值。好比說,一個理工科的學校,通常來講男生比女生要多,那麼在存儲用戶信息的數據庫中,能夠將性別這一欄設定默認值爲:男

 

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY ,

  sex  CHAR(2)  DEFAULT "m" ;

  ......

  )

 

6.設置表的屬性自動增長

 在數據庫應用中,常常但願在每次插入新紀錄時,系統可以自動的生成字段的主鍵值。能夠經過爲表的主鍵添加 AUTO_INCREMENT 關鍵字來實現。默認的,在MySQL中AUTO_INCREMENT的初始值爲1,每新增長一條記錄,字段的值自動加1.一個表只能有一個字段使用 AUTO_INCREMENT關鍵字,而且該字段必須爲主鍵的一部分。

  

  CREATE  TABEL  表名 (

  字段  數據類型  列級別約束條件  (指定默認值)

  id  INT  PRIMARY KEY  AUTO_INCREMENT,

  name VARCHAR(25) NOT NULL

  ......

  )

 

四.查看錶的結構

 1.DESC(DESCRIBE)數據表的名稱  該SQL命令查看的是數據表的基本的結構

  DESC  數據表的名稱

      

 

2.SHOW CREATE TABLE 數據表名稱    該SQL命令查看的是表的詳細的結構

  SHOW CREATE TABLE 數據表的名稱 \G ;   ##若是不添加 \G 參數的話,輸出的結果可能會很亂。添加該參數會利於查看

      

      

 

五.修改數據表

1.修改表的名稱

  語法規則:ALTER  TABLE  表名  RENAME  新表名 ;

      

 

2.修改表的字段的名稱

  語法規則:ALTER  TABEL  表名  CHANGE  舊字段名  新字段名  跟定義的時候的該字段的數據類型 ;

      

 

3.修改字段的數據類型

  語法規則:ALTER  TABLE  表名  MODIFY  字段名  新的數據類型 ;

    

 

4.添加字段

(1)添加新字段,添加的位置不定,默認添加到最後一個

  語法規則:ALTER  TABLE  表名  ADD  字段名  數據類型  列級別的約束條件 ;

       

(2)添加新的字段到第一個

  語法規則:ALTER  TABLE 表名  ADD  字段名  數據類型  列級別的約束條件  FIRST ;

      

(3)添加新的字段到指定的字段後面

  語法結構:ALTER  TABLE  表名  ADD  字段名  數據結構  列級別的約束條件  BEFORE  字段名 ;

      

 

5.修改字段的排列順序

  語法結構:ALTER  TABLE  表名  MODIFY  字段名  數據類型  FIRST|AFTER  字段名 ;

      

 

6.更改表的存儲引擎

  語法結構:ALTER  TABLE  表名  ENGINE=更改後的存儲引擎的名稱 ;

  用於查看某表的存儲引擎的SQL語句是:SHOW  CREATE  TABLE  表名 ;    ##在後面會有表的相應的存儲引擎

      

      

 

7.刪除外鍵的約束

  語法結構:ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱 ;

      

      

      

  以上的操做是在建立外鍵

      

 

六.刪除數據表

1.刪除沒有關聯的數據表

  語法結構:DROP TABLE  表名 ;

 

2.刪除有關聯的數據表

  若是兩個表之間存在外鍵的鏈接,那麼在刪除表的時候,就不可能最早刪除主表。

  想要刪除的方法是:先刪除外鍵,再刪除數據表;先刪除子表,再刪除父表。

      

相關文章
相關標籤/搜索