SQL
SQL通用語法:
1.SQL語句可以單行或多行書寫,以分號結(jié)尾
2.SQL語句可以使用空格/縮進來增強語句的可讀性
3.MySQL數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,關(guān)鍵字建議使用大寫
4.注釋:1.單行注釋:--注釋內(nèi)容或#注釋內(nèi)容(MySQl特有)池充;2.多行注釋:/*注釋內(nèi)容*/
SQl分類:
- DDL: 數(shù)據(jù)定義語言眨攘,用來定義數(shù)據(jù)庫對象(數(shù)據(jù)庫已慢、表、字段)
- DML: 數(shù)據(jù)操作語言说铃,用來對數(shù)據(jù)庫表中的數(shù)據(jù)進行增刪改
- DQL: 數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)庫中表的記錄
- DCL: 數(shù)據(jù)控制語言嘹履,用來創(chuàng)建數(shù)據(jù)庫用戶腻扇、控制數(shù)據(jù)庫的控制權(quán)限
DDL(數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對象(數(shù)據(jù)庫砾嫉、表幼苛、字段))
數(shù)據(jù)庫 操作
查詢所有數(shù)據(jù)庫:
SHOW DATABASES;
查詢當前數(shù)據(jù)庫:
SELECT DATABASE();
創(chuàng)建數(shù)據(jù)庫:
CREATE DATABASE [ IF NOT EXISTS ] 數(shù)據(jù)庫名 [ DEFAULT CHARSET 字符集] [COLLATE 排序規(guī)則 ];
刪除數(shù)據(jù)庫:
DROP DATABASE [ IF EXISTS ] 數(shù)據(jù)庫名;
使用數(shù)據(jù)庫:
USE 數(shù)據(jù)庫名;
注意事項
- UTF8字符集長度為3字節(jié),有些符號占4字節(jié)焕刮,所以推薦用utf8mb4字符集
表操作-查詢
查詢當前數(shù)據(jù)庫所有表:
SHOW TABLES;
查詢表結(jié)構(gòu):
DESC 表名;
查詢指定表的建表語句:
SHOW CREATE TABLE 表名;
表操作-創(chuàng)建
CREATE TABLE 表名(? ?
字段1 字段1類型 [COMMENT 字段1注釋],? ?
字段2 字段2類型 [COMMENT 字段2注釋],? ?
字段3 字段3類型 [COMMENT 字段3注釋],?
...? ?
字段n 字段n類型 [COMMENT 字段n注釋]
)[ COMMENT 表注釋 ];
最后一個字段后面沒有逗號
表操作-數(shù)據(jù)類型
MySQL中的數(shù)據(jù)類型有很多舶沿,主要分為三類:數(shù)值類型、字符串類型配并、日期時間類型
1.整數(shù)值的應(yīng)用:age TINYINT (UNSIGNED)
2.浮點值的應(yīng)用:score double(精度(所有數(shù)字的長度),標度(小數(shù)的長度))
? ? ?
表操作-操作
添加字段:
ALTER TABLE 表名 ADD 字段名 類型(長度) [COMMENT 注釋] [約束];
例:ALTER TABLE emp(表名) ADD nickname(字段名) varchar(20) COMMENT '昵稱';
修改數(shù)據(jù)類型:
ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類型(長度);
修改字段名和字段類型:
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型(長度) [COMMENT 注釋] [約束];
例:將emp表的nickname字段修改為username括荡,類型為varchar(30)
ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '昵稱';
刪除字段:
ALTER TABLE 表名 DROP 字段名;
修改表名:
ALTER TABLE 表名 RENAME TO 新表名
刪除表:
DROP TABLE [IF EXISTS] 表名;
刪除指定表,并重新創(chuàng)建該表:
TRUNCATE TABLE 表名;
注意:在刪除表的時候溉旋,表中的全部數(shù)據(jù)也都會被刪除畸冲。
DML(數(shù)據(jù)操作語言,用來對數(shù)據(jù)庫表中的數(shù)據(jù)進行增刪改)
添加數(shù)據(jù)(INSERT)
給指定字段添加數(shù)據(jù):
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
給全部字段添加數(shù)據(jù):
INSERT INTO 表名 VALUES (值1, 值2, ...);
批量添加數(shù)據(jù):
INS