1.通運個sql語法及分類
(1)sql分類
{
DDL:數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對象(數(shù)據(jù)庫,表,字段)例子如下
#查詢所有數(shù)據(jù)庫
SHOW DATABASES;
#查詢當前數(shù)據(jù)庫
SELECT DATABASEO;
#創(chuàng)建
#CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫名[DEFAULT CHARSET 字符集][COLLATE 排序規(guī)則];
#刪除
DROP DATABASE[IF EXISTS]數(shù)據(jù)庫名;
#使用
USE 數(shù)據(jù)庫名;
#查詢當前數(shù)據(jù)庫所有表
SHOW TABLES;
#查詢表結構
DESC表名;
#查詢指定表的建表語句
SHOW CREATE TABLE 表名;
#DDL-表操作-創(chuàng)建
CREATE 表名(
字段1 字段1類型? [comment 字段1注釋]
字段2 字段2類型? [comment 字段2注釋]
字段3 字段3類型? [comment 字段3注釋]
……
字段n 字段n類型? [comment 字段n注釋]
)
#DDL-表操作-修改(添加字段)
ALTER? ?TABLE????表名? ? ADD? ?字段名類型(長度)? ? [COMMENT注釋]? ? [約束];
#修改字段名和字段類型
ALTER? TABLE????表名? CHANGE? ?舊字段名 新字段名 類型(長度)? [COMMENT注釋]? [約束];
#DDL-表操作-修改(修改表名)
ALTER TABLE????表名???? RENAMETO???? 新表名;
#DDL-表操作-刪除(刪除表)
DROP TABLE [IF EXISTS] 表名;
#刪除指定表,并重新創(chuàng)建該表
TRUNCATE TABLE表名;
MySQL數(shù)據(jù)類型

MySQL字符串類型

MySQL日期時間類型

DML:數(shù)據(jù)操作語言,用來對數(shù)據(jù)庫表中的數(shù)據(jù)進行增刪改
DML-添加數(shù)據(jù)
#給指定字段添加數(shù)據(jù)
INSERT????INTO????表名(字段名1,字段名2,..)VALUES(值1,值2,...);
#給全部字段添加數(shù)據(jù)
INSERT INTO表名 VALUES(值1, 值2,...);
#批量添加數(shù)據(jù)
INSERT INTO????表名(字段名1,字段名2,..)VALUES (值1,值2,..),(值1,值2,...),(值1,值2,...);
INSERT INTO表名VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
#修改數(shù)據(jù)
UPDATE 表名 SET 字段名1=值1,字段名2=值2,....[WHERE條件];
#DML-刪除數(shù)據(jù)
DELETE FROM 表名[WHERE 條件]
#條件查詢
SELECT 字段列表FROM 表名 WHERE 條件列表;
DQL:數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)庫中表的記錄
#查詢多個字段
SELECT 字段1,字段2,字段3...FROM 表名;
SELECT*FROM 表名;
#設置別名
SELECT 字段1[AS別名1],字段2[AS別名2]...FROM 表名;
#去除重復記錄
SELECT DISTINCT 字段列表FROM 表名;
#聚合函數(shù)
將一列數(shù)據(jù)作為一個整體,進行縱向計算。
#聚合函數(shù)部分
SELECT 聚合函數(shù)????(字段列表)????FROM ????表名;
#分組查詢
SELECT 字段列表????FROM ????表名????[WHERE 條件]????GROUP BY????分組字段名????[HAVING 分組后過濾條件];
注意:
where與having區(qū)別
執(zhí)行時機不同:where是分組之前進行過濾,不滿足where條件,不參與分組;而having是分組之后對結果進行過濾。
判斷條件不同:where不能對聚合函數(shù)進行判斷,而having可以。
#排序查詢
SELECT 字段列表????FROM ????表名????ORDER BY ????字段1????排序方式1,字段2排序方式2;
#分頁查詢
SELECT 字段列表????FROM 表名 LIMIT????起始索引,查詢記錄數(shù);


DCL:數(shù)據(jù)控制語言,用來創(chuàng)建數(shù)據(jù)庫用戶、控制數(shù)據(jù)庫的訪問權限
#查詢用戶
USE????mysql;
SELECT * FROM user;
#創(chuàng)建用戶
CREATE????USER????‘用戶名'@'主機名????IDENTIFIED BY? '密碼' ;
#修改用戶密碼
ALTER USER????'用戶名'@'主機名'????IDENTIFIED WITH mysql_native_password BY ‘新密碼';
#刪除用戶
DROP????USER????'用戶名'@'主機名';
#查詢權限
SHOW GRANTS FOR'用戶名'@'主機名;
#授予權限
GRANT 權限列表 ON 數(shù)據(jù)庫名.表名 TO'用戶名'@'主機名';
#撒銷權限
REVOKE 權限列表ON 數(shù)據(jù)名.表名 FROM'用戶名'@'主機名';
}
SQL通用語法
1.SQL語句可以單行或多行書寫,以分好結尾。
2.SQL語句可以使用空格/縮進來增強語句的可讀性
3.Mysql數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,關鍵字建議使用大寫
4.注釋:
單行注釋--注釋內容或#注釋內容(MySQL特有)
多行注釋/*注釋內容*/