1. 程式人生 > 其它 >MySQL基礎之DDL語句

MySQL基礎之DDL語句

講解SQL語句三大分類和每個分類的SQL使用入門。

使用的是資料庫是:MySQL 8.0.27

1.SQL分類

DDL(Data Definition Language)語句:資料定義語句。

用途:是對資料庫物件(資料庫、表、列、索引等)進行建立、刪除、修改等。

常用關鍵字:create、drop、alter等。

DML(Data Manipulation Language)語句:資料操縱語句。

用途:用於新增、修改、刪除和查詢資料庫記錄,並檢查資料完整性。

常用關鍵字:insert、update、delete、select等。

DCL(Data Control Language)語句:資料控制語句。

用途:控制資料庫、表、欄位、使用者的訪問許可權和安全級別

常用關鍵字:grant、revoke等

2.DDL語句

DDL語句是用於操作資料庫物件的,其中資料庫物件包含資料庫本身(database)、表(table)、列(column)、索引(index)、約束(constraint)、檢視(view)、觸發器(trigger)、儲存過程(StoredProcedure)和函式(function)。

在此入門課程只講解資料庫(database)和庫表(table)。

為什麼一直都在中文後加上括號英文說明呢?因為sql 語句要用,先混個眼熟。

全程命令操作,讓注意力更專注於指令輸入和結果輸出。

2.1.DDL之操作

先連線上資料庫

1)建立資料庫

create database mydb;

這是最簡單的建立資料庫語句。

2)檢視當前連線有哪些資料庫

show databases;

可以看到除了剛建立的mydb 還有其他的資料庫。

簡單說明這些資料庫是幹嘛用的。

使用者庫:就是自己剛剛建立的 mydb

系統庫:

--每個使用者都可以看到自己的
  information_schema:儲存系統資料庫物件資訊,包含了使用者表資訊、列資訊、許可權資訊、字符集資訊、分割槽資訊等等。
--普通使用者看不到
  performance_schema:儲存系統性能相關的動態引數表
--普通使用者看不到 sys:基於information_schema 和 performance_schema之上,封裝了一層更加易於調優和診斷的系統檢視(系統層的檢視) --普通使用者看不到 mysql:儲存系統的使用者許可權資訊

3)查詢建庫SQL語句

show create database mydb \G;

4)使用資料庫

use mydb;

只有選擇了使用mydb 資料庫,才可以開始對mydb 進行建庫表之類的操作

5)刪除資料庫

drop database mydb;

可以看到mydb 已經被刪除了。

到此為止,你已經學會了如何建立資料庫,使用資料庫,檢視當前連線有哪些資料庫和刪除資料庫

2.2.DDL之操作

先把之前刪的mydb資料庫,建立回來並使用mydb,再檢視下mydb 庫有沒有表在裡面

查到沒有庫表

1)建立資料庫表

create table tablename(
  列名 資料型別 約束,
  列名 資料型別 約束
);

建立person表

create table person( id int primary key,name varchar(30),age int default 0 );

2)查看錶設計

desc person;

3)檢視建表SQL語句

檢視建庫和建表SQL 語句都是相類似的,查詢的資料庫物件不同而已。

"\G" 選項的含義是按照欄位豎向排列,為了更好閱讀查詢結果。

show create table person \G;

可以看到,雖然我們沒有指定儲存引擎和字元編碼,但是建表語句後已經指定了預設儲存引擎InnoDB和字元編碼utf8mb4。

4)修改表

關鍵字rename

alter table 舊錶名 rename 新表名;

5) 刪除表

drop table people;

為了後續操作,再把表建回來……

6)修改表字段

--修改表字段型別
  alter table 表名 modify 列名 列的新型別;
--增加表字段
  alter table 表名 add column 列名 列的型別;
--刪除表字段
  alter table 表名 drop column 列名;
--修改欄位名
  alter table 表名 change 舊列名 新列名 列的型別;
--修改欄位排列順序
  在增加表字段或修改表字段後加入:first 或 after 欄位名
  如:alter table 表名 add column 列名 列的型別 after 列名2;
  如:alter table 表名 change 舊列名 新列名 列的型別 first;
所有操作按順序看圖

到此為止,你已經學會了建表、查表、刪表、改表和改表字段操作

DDL 入門完成,學習了對資料庫和表的基本操作

2.3.DDL之操作索引

索引是對資料庫里加了索引的資料預先進行排序,就像書的目錄,可以優化查詢速度,但是會降低增刪改速度,佔用磁碟空間。

1)新增索引

用於建表時建立索引

//create只能新增這兩種索引;
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)

用於表建好後建立索引(常用)

--增加主鍵索引:不允許出現相同的值
  alter table tab_name add primary key (column_list);
--增加唯一索引:不可以出現相同的值,可以有NULL值
  alter table tab_name add unique (column_list);
--增加普通索引:允許出現相同的索引內容
  alter table tab_name add index index_name(column_list);
--增加聯合索引:將多個欄位建到一個索引裡,列值的組合必須唯一
  alter table tab_name add index index_name (column,column,...);

2)檢視索引

--查看錶 tab_name 的所有索引資訊(如:索引是否唯一,是否允許為null,索引儲存的資料型別等資訊)
show index from tab_name;

3)刪除索引

alter table tab_name drop index index_name;alter table tab_name drop primary key;

3.總結

到目前為止,可以通過DDL語句來操作資料庫物件:庫、表、索引。

​關注公眾號學習更多有關資料庫的知識和獲取資料庫免費電子書​