一、SQL分類
SQL ,英文:Structured Query Language,結構化查詢語言。是用於操作關係型資料庫的程式語言。SQL定義操作所有關係型資料庫的統一標準,可以使用SQL操作所有的關係型資料庫管理系統,以後工作中如果使用到了其他的資料庫管理系統,也同樣的使用SQL來操作。
SQL的分類:
1). DDL(Data Definition Language) : 資料定義語言,用來定義資料庫物件:資料庫,表,列等。DDL簡單理解就是用來運算元據庫,表等
2). DML(Data Manipulation Language) 資料操作語言,用來對資料庫中表的資料進行增刪改
DML簡單理解就對錶中資料進行增刪改
3). DQL(Data Query Language) 資料查詢語言,用來查詢資料庫中表的記錄(資料)
DQL簡單理解就是對資料進行查詢操作。從資料庫表中查詢到我們想要的資料。
4). DCL(Data Control Language) 資料控制語言,用來定義資料庫的訪問許可權和安全級別,及建立使用者。DML簡單理解就是對資料庫進行許可權控制。比如我讓某一個資料庫表只能讓某一個使用者進行操作等。
> 注意: 以後我們最常操作的是 `DML` 和 `DQL` ,因為我們開發中最常操作的就是資料。
二、MySQL的DDL操作語法
(一)DDL運算元據庫
DDL來運算元據庫。而運算元據庫主要就是對資料庫的增刪查操作。
1)查詢所有的資料庫
--查詢所有的資料庫 SHOW DATABASES;
2)建立資料庫:
語法:
--建立資料庫 CREATE DATABASE 資料庫名稱; CREATE DATABASE IF NOT EXISTS 資料庫名稱;
而在建立資料庫的時候,我並不知道db1資料庫有沒有建立,直接再次建立名為db1的資料庫就會出現錯誤。
從上面的效果可以看到雖然db1資料庫已經存在,再建立db1也沒有報錯,而建立db2資料庫則建立成功。
3)刪除資料庫
--刪除資料庫 DROP DATABASE 資料庫名稱; DROP DATABASE IF EXISTS 資料庫名稱; -- 刪除資料庫(判斷,如果存在則刪除)
4)使用資料庫
資料庫建立好了,要在資料庫中建立表,得先明確在哪兒個資料庫中操作,此時就需要使用資料庫。
使用資料庫 語法:
--使用資料庫 USE 資料庫名稱;
5)檢視當前使用的資料庫
語法:
--檢視當前使用的資料庫 SELECT DATABASE();
SELECT DATABASE();
(二)操作表
操作表也就是對錶進行增(Create)刪(Retrieve)改(Update)查(Delete)。
1)查詢當前資料庫下所有表名稱
--查詢當前資料庫下所有表名稱 SHOW TABLES;
2查詢表結構
--查詢表結構 DESC 表名稱;
3)建立表
語法:
CREATE TABLE 表名 ( 欄位名1 資料型別1, 欄位名2 資料型別2, … 欄位名n 資料型別n ); --注意:最後一行末尾,不能加逗號 --demo: create table tb_user ( id int, username varchar(20), password varchar(32) );
4) 刪除表
刪除表語法:
--刪除表 DROP TABLE 表名; --刪除表時判斷表是否存在 DROP TABLE IF EXISTS 表名;
5)修改表
修改表語法:
1.修改表名
-- 修改表名 ALTER TABLE 表名 RENAME TO 新的表名; -- 將表名student修改為stu alter table student rename to stu;
2.新增一列
-- 新增一列 ALTER TABLE 表名 ADD 列名 資料型別; -- 給stu表新增一列address,該欄位型別是varchar(50) alter table stu add address varchar(50);
3.修改資料型別
-- 修改資料型別 ALTER TABLE 表名 MODIFY 列名 新資料型別; -- 將stu表中的address欄位的型別改為 char(50) alter table stu modify address char(50);
4.修改列名和資料型別
-- 修改列名和資料型別 ALTER TABLE 表名 CHANGE 列名 新列名 新資料型別; -- 將stu表中的address欄位名改為 addr,型別改為varchar(50) alter table stu change address addr varchar(50);
5.刪除列
-- 刪除列 ALTER TABLE 表名 DROP 列名; -- 將stu表中的addr欄位 刪除 alter table stu drop addr;
三、MySQL的DML操作語法
DML主要是對資料進行增(insert)刪(delete)改(update)操作。
1)新增資料
語法:
--給指定列新增資料 語法: INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…); --給全部列新增資料 語法: INSERT INTO 表名 VALUES(值1,值2,…); --批次新增資料 語法: INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…; INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
Demo:
-- 給指定列新增資料 INSERT INTO stu (id, NAME) VALUES (1, '張三'); -- 給所有列新增資料,列名的列表可以省略的 INSERT INTO stu (id,NAME,sex,birthday,score,email,tel,STATUS) VALUES (2,'李四','男','1999-11-11',88.88,'lisi@ccc.cn','13888888888',1); INSERT INTO stu VALUES (2,'李四','男','1999-11-11',88.88,'lisi@ccc.cn','13888888888',1); -- 批次新增資料 INSERT INTO stu VALUES (2,'李四','男','1999-11-11',88.88,'lisi@ccc.cn','13888888888',1), (2,'李四','男','1999-11-11',88.88,'lisi@ccc.cn','13888888888',1), (2,'李四','男','1999-11-11',88.88,'lisi@ccc.cn','13888888888',1);
2)修改資料
修改表資料 語法:
--修改表資料 UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 條件] ;
注意:
修改語句中如果不加條件,則將所有資料都修改!
Demo:
-- 將張三的生日改為 1999-12-12 分數改為99.99 update stu set birthday = '1999-12-12', score = 99.99 where name = '張三';
3) 刪除資料
刪除資料 語法:
--刪除資料
DELETE FROM 表名 [WHERE 條件] ;
--刪除資料 DELETE FROM 表名 [WHERE 條件] ;
Demo:
-- 刪除張三記錄 delete from stu where name = '張三'; -- 刪除stu表中所有的資料 delete from stu;