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


一.什么是數據庫的表?

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

 

二.創建數據表

1.創建數據表的MYSQL語句

  在創建數據庫表之前,需要選定一個數據庫,在選定的數據庫中創建數據表,否則創建失敗。

  USE 數據庫名稱;

  CREATE  TABELE  數據表名;

  在創建好數據表之后,使用SQL語句進行查看,創建的數據表是否成功。

  SHOW TABLES;(顯示某選定的數據庫中的所有的數據表名稱)

 

2.創建數據表的語法

  CREATE  TABLE  表名稱 (

  字段1  數據類型  列級別的約束條件  (可以設定默認值),

  字段2  數據類型  列級別的約束條件   (可以設定默認值),

  ......

  )

 

  示例:創建一個員工表 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.刪除有關聯的數據表

  如果兩個表之間存在外鍵的連接,那么在刪除表的時候,就不可能最先刪除主表。

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

      

      

 

 

 

 

 

 

 

 

 

      

 

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM