1. 程式人生 > 實用技巧 >九、Mysql的DCL和DML語句

九、Mysql的DCL和DML語句

一、DCL語句

DCL作用,給mysql使用者授權及回收許可權

1、給使用者授權

create user root@'192.168.32.%' identified by '123';
grant all on *.* to root@'192.168.32.%' ;
create user ywx@'192.168.32.%' identified by '123';
grant update,select,delete,insert on wordpress.* to ywx@'192.168.32.%';

2、回收使用者許可權

revoke delete on wordpress.* from ywx@'
192.168.32.%';

二、DML語句

DML作用:對錶中的資料行進行增、刪、改

1、插入資料insert

(1) 最標準的insert語句
INSERT INTO 表明(列名1,列名2,列名3,。。。) VALUES(列1內容,列2內容,列3內容。。。)
案列
INSERT INTO stu(id,sname,sage,sg,sfz,intime) 
VALUES
(1,'zs',18,'m','123456',NOW());

--- 省事的寫法(不建議)
INSERT INTO stu 
VALUES
(2,'ls',18,'m','1234567',NOW());

(2)查詢
SELECT 
* FROM stu; (3)針對性的錄入資料 INSERT INTO stu(sname,sfz) VALUES ('w5','34445788'); (4)同時錄入多行資料 INSERT INTO stu(sname,sfz) VALUES ('w55','3444578d8'), ('m6','1212313'), ('aa','123213123123'); SELECT * FROM stu;

2、修改資料

DESC stu;
SELECT * FROM stu;
UPDATE stu SET sname='zhao4' WHERE id=2; #把id=2的sname改為zhao4
注意:update語句必須要加where。
如果不加where條件語句
UPDATE stu SET sname
='zhao4'; #是把stu表整個sname列的資料改為zhao4

3、刪除資料delete

DELETE FROM stu where id=2;
#把id=2的行刪除(邏輯刪除,不釋放空間,會造成資料頁的不連續)

全表刪除:

DELETE FROM stu
truncate table stu;
區別:
delete: DML操作, 是邏輯性質刪除,逐行進行刪除,速度慢.
truncate: DDL操作,對與表段中的資料頁進行清空,速度快.

偽刪除:用update來替代delete,最終保證業務中查不到(select)

#1、新增state狀態列
ALTER TABLE stu ADD state TINYINT NOT NULL DEFAULT 1;
#2、檢視state列新增成功
SELECT * FROM stu;
#3、UPDATE代替delete
UPDATE stu SET state=0 WHERE id=5;
#4、業務語句查詢
SELECT * FROM stu WHERE state=1;