mysql基礎複習(SQL語句的四個分類),
- 2022 年 2 月 25 日
- 筆記
- mysql的四個分類
(複習mysql )
(一)SQL分類:
SQL語句根據其功能,主要分為四類:DDL、DML、DQL、DCL。 DDL:
Data DefinitionLanguage (DDL)數據定義語言,用來定義數據庫對象(數據庫,表, 字段)
DML:Data Manipulation Language 數據操作語言,用來對數據庫表中的數據進行增刪改
DQL: Data Query Language 數據查詢語言,用來查詢數據庫中表的記錄
DCL: Data Control Language 數據控制語言,用來創建數據庫用戶、控制數據庫的 訪問權限。
(二)DDL 數據庫的操作
1、數據庫操作 查詢所有數據庫:show databases; 創建數據庫:create database 數據庫名; 刪除數據庫:drop database 數據庫名; 使用數據庫:use 數據庫名;
2、表操作 查詢當前數據庫所有表:show tables;
查看指定表結構:desc 表名; 查詢指定表的建表語句:show create table 表名;
創建表結構:create table 表名( 字段1 字段1類型, 字段2 字段2類型 … );
3,MySQL中的數據類型有很多,主要分為三類:數值類型、字符串類型、日期時間類型。 數值類型:有符號:SIGNED、無符號:UNSIGNED。默認是有符號。 浮點型可以用類型名稱後加(M,D)來表示,M表示該值的總共長度,D表示小數點後面的長度。
4,
字符串類型: char 與 varchar 都可以描述字符串,char是定長字符串,指定長度多長,就佔用多少個字符 。而varchar是變長字符串,指定的長度為最大佔用長度 。相對來說,char的性能會更高些。
5,日期時間類型:
(一部分 比較常用的)
6,表格的格式:
修改表名 alter table 表名 rename to 新的表名;
添加列 alter table 表名 add 列名 數據類型;
修改列名稱 類型 alter table 表名 change 列名 新列名 列類型 刪除列 alter table 表名 drop 列名;
刪除表 drop table 表名;(會使用就可以)
(三)DML
(1) DML:DML英文全稱是Data Manipulation Language(數據操作語言),用來對數據庫中表的數據記錄進行增、刪、改操作 添加表數據語法: insert into 表名(列名1,..列名n) values(值1,…值n);
注意: 1 列名和值要一一對應。
2. 如果表名後,不定義列名,則默認給所有列添加值,如果第一列是主鍵列,我們需要在添加值時把第一列的值設置為null。
3. 除了數值類型,其他類型的值需要使用引號引起來。
(2) 刪除表數據語法: delete from 表名 where 條件 注意:
1. 如果不加條件,則刪除表中所有記錄。
2. 如果要刪除所有記錄 1. delete from 表名; — 不推薦使用。有多少條記錄就會執行多少次刪除操作
2. truncate table 表名; — 推薦使用,效率更高先刪除表,然後再創建一張一樣的表。
(3)修改表數據語法:
update 表名 set 列名1 = 值1, 列名2 = 值2,… where 條件;
注意: 如果不加任何條件,則會將表中所有記錄全部修改。
(四) DQL
DQL英文全稱是Data Query Language(數據查詢語言),數據查詢語言,用來查詢數據庫中表的記錄。
(1)DQL 查詢語句語法結構: SELECT 字段列表 FROM 表名列表 WHERE 條件列表 GROUP BY 分組字段列表 HAVING 分組後條件列表 ORDER BY 排序字段.
(2)DQL 查詢語句分類: 基本查詢(不帶任何條件)
條件查詢(WHERE)
聚合函數(count、max、min、avg、sum)
分組查詢(group by) 排序查詢(order by)
分頁查詢(limit)
(3)基礎查詢
1、查詢多個字段 SELECT 字段1, 字段2, 字段3 … FROM 表名 ; SELECT * FROM 表名 ; 注意 : * 號代表查詢所有字段,在實際開發中盡量少用(不直觀、影響效率)。
2、字段設置別名 SELECT 字段1 AS ‘別名1 ‘, 字段2 AS ‘別名2’ … FROM 表名; SELECT 字段1 [ 別名1 ] , 字段2 [ 別名2 ] … FROM 表名 3、去除重複記錄 SELECT DISTINCT 字段列表 FROM 表名;
(4)條件查詢
(5)常用的比較運算符如下:
(6)聚合函數
聚合函數 將一列數據作為一個整體,進行縱向計算 。 常見的聚合函數: 語法: SELECT 聚合函數(字段列表) FROM 表名 ; 注意 : NULL值是不參與所有聚合函數運算的。
(7分組查詢)
SELECT 字段列表 FROM 表名 [ WHERE 條件 ] GROUP BY 分組字段名 [ HAVING 分組 後過濾條件 ];
where與having區別 執行時機不同:where是分組之前進行過濾,不滿足where條件,不參與分組;而having是分組 之後對結果進行過濾。
判斷條件不同:where不能對聚合函數進行判斷,而having可以。
注意事項: • 分組之後,查詢的字段一般為聚合函數和分組字段,查詢其他字段無任何意義。
• 執行順序: where > 聚合函數 > having 。
• 支持多字段分組, 具體語法為 : group by columnA,columnB
(8)排序方式:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 排序方式 : ASC : 升序(默認值) DESC: 降序 注意事項: • 如果是升序, 可以不指定排序方式ASC ; • 如果是多字段排序,當第一個字段值相同時,才會根據第二個字段進行排序 ;
(9)分頁查詢
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查詢記錄數 注意事項: • 起始索引從0開始,起始索引 = (查詢頁碼 – 1)* 每頁顯示記錄數。
• 分頁查詢是數據庫的方言,不同的數據庫有不同的實現,MySQL中是LIMIT。
• 如果查詢的是第一頁數據,起始索引可以省略,直接簡寫為 limit 10。
五 DCL
(1),DCL:英文全稱是Data Control Language(數據控制語言),用來管理數據庫用戶、控制數據庫的訪問權限。 管理用戶
1、查詢用戶 select * from mysql.user;
2、創建用戶 CREATE USER ‘用戶名’@’主機名’ IDENTIFIED BY ‘密碼’;
3、修改用戶密碼 ALTER USER ‘用戶名’@’主機名’ IDENTIFIED WITH mysql_native_password BY ‘新密碼’ ;
4、刪除用戶 DROP USER ‘用戶名’@’主機名’ ;
注意事項: • 在MySQL中需要通過用戶名@主機名的方式,來唯一標識一個用戶。
• 主機名可以使用 % 通配。
• 這類SQL開發人員操作的比較少,主要是DBA使用。
權限控制
MySQL中定義了很多種權限,但是常用的就以下幾種:
(2), 查詢權限 SHOW GRANTS FOR ‘用戶名’@’主機名’
2、授予權限 GRANT 權限列表 ON 數據庫名.表名 TO ‘用戶名’@’主機名’
3、撤銷權限 REVOKE 權限列表 ON 數據庫名.表名 FROM ‘用戶名’@’主機名’
注意事項: • 多個權限之間,使用逗號分隔 • 授權時, 數據庫名和表名可以使用 * 進行通配,代表所有。
(3)函數:是指一段可以直接被另一段程序調用的程序或代碼。 也就意味着,這一段 程序或代碼在MySQL中 已經給我們提供了,我們要做的就是在合適的業務場景調用對應 的函數完成對應的業務需求即可。 MySQL中的函數主要分為以下四類: 字符串函數、 數值函數、日期函數、流程函數。
字符串函數:
數值函數: