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