1. 程式人生 > >MySQL之DDL操作資料庫

MySQL之DDL操作資料庫

      DDL(Data Definition Language),翻譯過來叫:資料庫定義語言,用於在資料庫定義建立或刪除資料庫物件等操作,例如:create(建立)、drop(刪除)、alter(修改)等語句。

       1、建立資料庫和檢視資料庫:

            建立資料庫語法:CREATE DATABASE 資料庫名;

            檢視使用者所有資料庫語法:SHOW DATABASE;

          如圖所示效果:其中系統會在安裝mysql之後會自動建立一些資料庫,有4個,分別為information_schema、mysql、performance_schema、test,其中的其他資料庫是我自己建立的。注意不對系統建立的資料庫做更改或者其他操作,否則可能會導致資料庫使用異常。        

           

       注意點:在執行SQL命令時加分號結束,不然有些命令會認為是換行操作。

                2、刪除資料和切換資料資料庫:

      刪除資料庫語法:drop database 資料庫名;

         如圖所示效果:可以發現在我們執行刪除命令之後,再次檢視資料庫,已經發現所刪資料庫已經不見,說明刪除成功。

           

      切換資料庫語法:use 資料庫名;

      如下圖效果箭頭所指的語句出現表示已經切換到所選擇的資料庫。

      

                以上即為資料庫DDL的常見操作。

             1.1 DDL之操作表 :

                        * 建立表:

                           語法:create table 表名

                          (  列名1 列型別  約束 , 

                               列名2 列型別 約束

                          ) ;

                     如圖效果所示:

                  

                  注意:建立表時先use 你要把表建立在那個資料庫下。

            在建立完表之後可以使用  desc  表名 查看錶結構。

            執行完命令後如圖所示:

            

          注意:以上為最簡單的表建立:實際建立表中我們在建立表時還會對欄位進行對應的約束,以保證資料的準確性和唯一性。例如:學生的學號必須唯一,性別只能是男或者女,等等一系列的約束  。

              常用的約束屬性如下表:                

常用的屬性約束

欄位屬性

關鍵字

說明

非空約束

NOT NULL

表示該欄位不允許為空

預設約束

DEDAULT

表示賦予某欄位預設值,如性別:預設性別為“男”

唯一約束

UNIQUE KEY(UK)

表示該欄位唯一,允許為空,但只能是一個空值,比如:身份證號。

主鍵約束

PRIMARY KEY(PK)

設定某欄位為表的主鍵,

外來鍵約束

FORELIGN KEY(FK)

表示用於兩表之間建立關係,需要指定主表的那一欄位。

自動增長

AUTO_INCREMENT

表示設定該列為自增欄位,預設自增1,通常用於設定主鍵 且為整數型別。

            * 修改表:

                 1、修改表之新增列:

                     語法: alter table 表名 

                                add(

                                 列名 列型別

                               );

                 如下圖效果所示:可以發現執行完命令之後,再次查看錶結構,可以多了一個age的記錄 這說明已經新增成功。

                

                 有增加列肯定就有修改列:

                   語法:alter table 表名 modify 列名 列型別;

                     注意:如果被修改的列已存在資料,那麼新的型別可能會影響到已存在的資料

                         如圖效果所示:可以發現表資料已經發生更改。

                           

          * 修改之修改列名:

                  語法: alter table 表名 change 原列名 新列名 列型別;

                  如圖效果所示:

                    

             * 修改之刪除列:

                  alter table 表名 drop 列名;

                如圖效果所示:

                  

                *修改表名稱

                     語法:alter table 原表名 rename to 新表名;

                       如圖效果所示:

                  

                 *刪除表:

                  語法: drop table 表名;

                     如圖效果所示: