DDL基本語法(操作數據庫和表結構)


1、DDL的基本概念

DDL(Data Definition Language,操作數據庫和表結構):DDL是用來操作數據庫和表的,也就是創建數據庫和表、刪除數據庫和表、修改表結構這些操作。通常,DDL由數據庫管理員執行。

 

2、DDL操作數據庫(選擇和增刪改查)

 

2.1、創建數據庫(Create)

可以通過 create 語句來創建一個數據庫

CREATE DATABASE 數據庫名;  -- 創建數據庫
create database 數據庫名 character set utf-8;  -- 在創建數據庫時可以指定數據庫的字符集

如果同名數據庫已經存在,再創建一個會報錯,提示該數據庫已存在。我們可以通過判斷該數據庫是否已存在來避免報錯:

create database if not exists basename;  -- 如果已存在則不會創建,否則新建一個數據庫
create database if not exists basename character set gbk;  -- 判斷同時指定字符集

 

2.2、查詢所有的數據庫(show)

可以使用 show database; 語句來查詢 MySQL 中所有的數據庫。

如下:MySQL在安裝后默認建立了四個數據庫。前三個數據庫都是保存着MySQL的一些信息,最好不要亂改。如果需要,我們可以在 test 數據庫上做一些修改測試。

(其中 information_schema 並沒有真正對應的實體文件夾,該數據庫是一個信息數據庫,其保存着關於MySQL服務器所維護的所有其他數據庫的信息,如數據庫名,數據庫的表,表欄的數據類型與訪問權限等。也就是說當你建立一個新的數據庫,或者在已有的數據庫中增刪改表的話,都會記錄在information_schema庫中)

 

我們也可以通過 show create database 數據庫名;  語句來查看創建某個數據的語法。如下所示,我們還可以知道該數據庫使用的字符集是 utf-8。

 

2.3、修改數據庫(alter)

修改數據庫的字符集:

alter database 數據庫名稱 character set 字符集名稱;
# 示例:
alter database testdb character set utf8;

2.4、刪除數據庫(drop)

drop database 數據庫名稱;
drop database if exists 數據庫名稱;   # 如果該數據庫不存在,直接刪除會報錯,我們可以先判斷是否存在

2.5、選擇數據庫(use)

在連接到 MySQL 數據庫后,可能有多個可以操作的數據庫,所以我們需要選擇要進行操作的數據庫。

use 數據庫名稱; 

執行以上命令后,就會選擇某個數據庫,后續的操作都會在該數據庫中執行,比如對數據表的操作等等。

查詢目前正在使用的數據庫:

select database();  # 當沒有選擇數據庫時,會提示 null

 

3、DDL操作數據表(增刪改查)

3.1、創建數據表(create)

創建MySQL數據表需要以下信息:表名、表字段名、定義每個表字段。

以下為創建MySQL數據表的SQL通用語法:

CREATE TABLE table_name (column_name column_type);

# 示例創建數據表runoob_tbl:
CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, # AUTO_INCREMENT定義列為自增的屬性,一般用於主鍵,數值會自動加1 `runoob_title` VARCHAR(100) NOT NULL, # 如果你不想字段為 NULL 可以設置字段的屬性為 NOT NULL,在操作數據庫時如果輸入該字段的數據為NULL,就會報錯。 `submission_date` DATE, PRIMARY KEY ( `runoob_id` ) # PRIMARY KEY關鍵字用於定義列為主鍵,可以使用多列來定義主鍵,列間以逗號分隔。建表語句的最后一列不要加逗號,否則報錯 )ENGINE=InnoDB DEFAULT CHARSET=utf8; # ENGINE 設置存儲引擎,CHARSET 設置編碼

對於一個關系表,除了定義每一列的名稱外,還需要定義每一列的數據類型。關系數據庫支持的標准數據類型包括數值、字符串、時間等:

 

上面的表中列舉了最常用的數據類型。很多數據類型還有別名,例如,浮點型REAL又可以寫成FLOAT(24)。還有一些不常用的數據類型,例如,TINYINT(范圍在0~255)。各數據庫廠商還會支持特定的數據類型,例如JSON

選擇數據類型的時候,要根據業務規則選擇合適的類型。通常來說,長整型BIGINT能滿足整數存儲的需求,變長字符串VARCHAR(N)能滿足字符串存儲的需求,這兩種類型是使用最廣泛的。

 

3.2、刪除數據表(drop)

在進行刪除表操作時要非常小心,因為執行刪除命令后所有數據都會消失。

以下為刪除MySQL數據表的通用語法:

DROP TABLE table_name;
DROP TABLE if exists table_name;  # 判斷是否存在,存在再刪除

 

3.3、修改表

3.3.1、對表的整體進行修改

修改表名:

alter table 表名 rename to 新表名;

修改表的字符集:

alter table 表名 character set 字符集名稱;
# 示例:
alter table testtable character set utf8;  # utf-8字符集寫成utf8,否則報錯

3.3.2、修改表結構

添加一列:

alter table 表名 add 列名 數據類型;
# 示例:
alter table testtable add name varchar(10);  # varchar(10)表示最多有10個字符

修改列名、數據類型:

alter table 表名 modify 列名 新數據類型;  # 修改列的數據類型
alter table 表名 change 列名 新列名 新數據類型;  # 同時修改列名和數據類型

刪除列:

alter table 表名 drop 列名; 

 

3.4、查詢

3.4.1、查詢數據庫中的所有表

查詢某個數據庫中的所有表:

show tables;

3.4.2、查詢表結構

查詢表結構:

desc 表名;

 


免責聲明!

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



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