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語句來操作資料庫物件:庫、表、索引。
關注公眾號學習更多有關資料庫的知識和獲取資料庫免費電子書。