MySQL資料庫基礎文法
- DDL,DML,DCL,DQL
-
- DDL
-
- 庫
- 表
- DML
-
- INSERT
- DELETE
- UPDATE
- DCL
- DQL
-
- 列控制
- 條件控制
DDL,DML,DCL,DQL
- DDL(Data Definition Language)資料定義語言,用來定義資料庫對象,操作表結構
- DML(Data Manipulation Language)資料操作語言,用來定義資料庫記錄(資料),操作表記錄
- DCL(Data Control Language)資料控制語言,用來定義通路權限和安全級别
- DQL(Data Query Language)資料查詢語言,用來查詢記錄(資料)
DDL
庫
建立:
CREATE
DATABASE 資料庫名;
删除:
DROP
DATABASE 資料庫名;
改變使用的資料庫:
資料庫名;
USE
表
- 建立:
CREATE
TABLE 表名(
列名 列類型,
列名 列類型,
…
列名 列類型
);
- 檢視目前資料庫中所有表名稱:SHOW TABLES;
- 檢視指定表的建立語句:SHOW CREATE TABLE 表名;
- 檢視表結構:
表名;
DESC
- 删除表:
TABLE 表名;
DROP
- 修改表:
TABLE 表名(字首)
ALTER
- 修改表之添加列:
TABLE 表名
ALTER
ADD
(
列名 列類型,
列名 列類型,
…
列名 列類型
);
- 修改表之修改列類型:
TABLE 表名
ALTER
列名 列類型;(如果列被修改之前已存在資料,那麼新的類型可能會影響到已存在的資料)
MODIFY
- 修改表之修改列名:
TABLE 表名
ALTER
原列名 新列名 列類型;
CHANGE
- 修改表之删除列:
TABLE 表名
ALTER
列名;
DROP
- 修改表名稱:
TABLE 原表名
ALTER
新表名;
RENAME TO
DML
INSERT
INSERT INTO 表名[(列名,列名,…)] values(值,值,…);
值的順序與聲明的字段的順序保持一緻
插入多條記錄:
INSERT INTO 表名[(列名,列名,…)] values (記錄),(記錄),(記錄);
複制表:
CREATE TABLE 要複制的表的表名 SELECT * FROM 新表名;#複制表結構及其資料
DELETE
DELETE FROM 表名[where 條件語句];
UPDATE
UPDATE 表名 SET 列名 = 新值,列名 = 新值,… [where 條件語句];
DCL
建立使用者:
|-
USER 使用者名@IP位址
CREATE
IDENTIFIED BY
‘密碼’;
(使用者隻能在指定IP位址上登入)
|-
USER 使用者名@’%’
CREATE
IDENTIFIED BY
‘密碼’;
(使用者可以在任意IP位址上登入)
使用者授權
|-
權限1,權限2.。。。權限n
GRANT
ON
資料庫.*
TO
使用者名@IP位址;
(給予使用者指定資料庫的部分權限,例如:CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT權限)
|-
ALL
GRANT
ON
資料庫.*
TO
使用者名@IP位址;
(給予使用者指定資料庫的全部權限)
- 撤銷授權
權限1,權限2.。。。權限n
REVOKE
ON
資料庫.*
FROM
使用者名@IP位址;
(撤銷指定使用者在指定資料庫的指定權限)
- 檢視權限
SHOW GRANTS FOR
使用者名@IP位址;
(檢視指定使用者的權限)
- 删除使用者
USER 使用者名@IP位址;
DROP
DQL
列控制
査洵所有列:SELECT * FROM表名;
–>其中" * ”表示査洵所有列
査洵指定列
SELECT 列1 [,列2,…列N] FROM 表名;
完全重複的記錄隻記一次
當査洵結果中的多行記錄一-模一 祥吋,隻顯示一行。
SELECT
* (列1 [,列2,…列N] ) FROM表名;
DISTINCT
列運算
|- 數量類型的列可以做加、減、乘、除運算
SELECT 列名*1.5 FROM 表名;
SELECT 列名 + 列名 FROM 表名;
|- 字元串類型可以做連續運算
SELECT
CONCAT('S', 列名)
FROM 表名;
|- 轉換NULL値
有吋需要把NULL值轉換成其它値,例如:列名+1000吋, 如果此列存在NULL値,那麼NULL+1000就是NULL,而我們希望把NULL目前0來運算.SELECT
IFNULL (列名, 0)
+1000 FROM 表名;
|- 給列起別名
SELECT IFNULL(列名, 0)+1000
AS 别名
FROM 表名;
–>其中As可以省略
條件控制
- 條件查詢
select empno,ename,comm from emp where sal > 10000 and comm is not null;
select empno,ename,comm from emp where sal between 20000 and 30000;
select empno,ename,job from emp where job in ('經理','董事長');
- 模糊查詢
當你想查詢姓張,并且姓名一共兩個字的員工時
模糊查詢需要使用運算符:
LIKE
;上面栗子查詢的是姓張,并且名字由兩個字構成的人員
上面栗子查詢的是名字由三個字構成的人員
上面栗子查詢的是名字中含有“一”的人員