MySQL基礎(六):DDL語句

  • 本博客是《MySQL基礎》系列博客的第六部分,主要介紹SQL語句中的DDL語句中CREATE、ALTER、DROP的基本用法。
  • 本博客既爲方便自己查看複習而作,亦爲你而作,望能有所裨益
  • 學習交流請聯繫 [email protected]

DDL簡介

DDL,即Data Definition Language,數據定義語言,用於如數據庫、表、索引等數據的定義。

DDL用法

DDL常用的語句有三個:CREATEDROPALTER。其用法簡介如下:

關鍵詞 用途
CREATE 創建 數據庫(Database)、表(Table)、索引(Index)、視圖(View)
DROP 刪除 數據庫(Database)、表(Table)、索引(Index)、視圖(View)、約束條件(Constraint)
ALTER 修改 約束條件(Constraint)

CREATE

創建數據庫

CREATE DATABASE <數據庫名> ; -- 採用默認的字符集和校驗集

CREATE DATABASE <數據庫名> DEFAULT CHARACTER SET <字符集> COLLATE <校驗集>;

創建數據表

CREATE TABLE <數據庫名>.<數據表名>(
<字段1> <數據類型> <約束條件>,
<字段2> <數據類型> <約束條件>,
···························,
primary key(<聯合主鍵一>,<聯合主鍵二>,···) -- 在創建聯合主鍵時使用
constraint <連接名> foreign key(<外鍵一>,<外鍵二>,···) 
references <被連接的表名>(<主鍵一>,<主鍵二>,···) 
-- 在創建外鍵時使用,添加其他約束條件時也用CONSTRAINT
)
ENGINE = <引擎名> -- 不寫此句則默認引擎爲InnoDB
DEFAULT CHARACTER SET = <字符集> -- 字符集設定,不寫此句則爲默認字符集
COLLATE = <校驗集> -- 不寫此句則爲默認校驗集
COMMENT = `<註釋內容>`; -- 添加註釋內容,不寫則意味着無註釋

創建索引及視圖

創建索引以及視圖的相關方法會在之後的專題提到,在此先不予以介紹

ALTER

在學習更改表的約束條件的語法時,我們有必要先學習下兩個常用語法:

desc <數據庫名>.<數據表名>; -- 查看錶結構,desc 也可以用 describe 代替

show create table <數據庫名>.<數據表名>; -- 顯示創建該數據表時使用的 CREATE 語句

如此,我們便可以對要修改的表有個大致瞭解,從而方便後續操作

更改表設置

/*以下內容爲方便起見,沒有指定數據庫名,默認其在已經選定的同一數據庫下*/

alter table <數據表名> character set <新字符集>, collate <新校驗集>, 
engine <新引擎名> comment '<新註釋>' rename [to] <新數據表名>; 
-- 更改表的名字及基本設置,可單項修改,也可多項併發,to可加可不加
ALTER TABLE test ENGINE[=]MyISAM , COMMENT[=]'四月天' rename test_1; 
-- 等號可加可不加

更改字段

alter table <數據表名> modify <字段名> <更改內容>; 
-- 改變字段的部分內容,如數據類型,默認值和註釋
alter table test modify A int default 99 comment 'CSDN'; 
-- 更改test表中的A字段的數據類型爲int。默認值爲99,註釋爲CSDN

alter  table <數據表名> change <字段名> <新字段名> <更改內容>; 
-- change比modify多了一個修改字段名的功能,但不能單獨修改,必須增加其他更改內容

添加字段

alter table <表名> add <字段名> <數據類型> <約束條件>; --  增加新的字段及其設置
alter table test add id int unique not null auto_increment;
-- 在test表中增加新的一列,字段名爲id,數據類型爲整數,索引唯一、非空、自增
alter table test add id_test1 decimal(5,3) unsigned not null 
comment '無問西東' default 911;
-- 增加的內容可以有註釋和默認值

alter table <表名> add <新字段名> <數據類型> <約束條件> after <老字段名>;
-- 在老字段名後面加入一個新的字段及其相關設置 

DROP

刪除數據庫

drop database <數據庫名>;

刪除數據表

drop database <數據庫名>.<數據表名>;
/* 有的表有外鍵約束,此時應先去掉約束
 alter table <連接的表> drop foreign key <外鍵名>;
 再刪除表 */

刪除字段

alter table <數據表名> drop <字段名>;
-- 當字段關聯到其他表時,其刪除方法同上

刪除索引及視圖

刪除索引以及視圖的相關方法會在之後的專題提到,在此先不予以介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章