sql學習日記-基礎

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數(shù)據(jù)類型

MySQL字符串類型


MySQL字符串類型

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ù);


常見的聚合函數(shù)


DQL執(zhí)行順序

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特有)

多行注釋/*注釋內容*/

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容