MySQL學習筆記2DML

DML:
#1.插入數據必須先插入tb_dept數據,因爲tb_emp有外鍵約束。注意:字段和值數量和類型都需要匹配

INSERT INTO tb_dept(NAME,loc,description) VALUES('開發部’,'廣州','負責軟件開發工作');


#2.如果插入的values是所有字段,可以不用顯式寫插入的字段名,強烈不推薦,不會影響到自動增長

INSERT INTO tb_dept VALUES(2,'財務部','廣州','負責財務工作');
INSERT INTO tb_dept (NAME,loc,description)VALUES('運維部','廣州','負責運維工作');


#測試auto_increment
#auto_increment會記住曾經生成的值刪除2,3後插入,id變爲4
INSERT INTO tb_dept(NAME,loc,description)VALUES('運維部','廣州','負責運維工作');


#3.一次插入多條記錄(MySQL特有)

INSERT INTO tb_dept(NAME,loc,description)

Values('市場部','廣州','負責市場工作'),

('採購部','廣州','負責採購工作'),
('其他部門','廣州','負責其他工作');


#4.可以從一張表中插入數據

#創建一張表和tb_dept表的結構一樣,通過這種方法建表,只複製表結構不復製表約束
CREATE TABLE tb_dept2 
SELECT * FROM tb_dept WHERE id = 99;(沒有數據)
#SELECT * FROM tb_dept(有數據)


INSERT INTO tb_dept2(id,NAME,loc,description) SELECT id,NAME,loc,description FROM tb_dept;


INSERT INTO tb_emp(NAME,age,address,email,dept_id)
VALUES('Tom','26','gz','[email protected]','1');


#更新語句,WHERE的時候建議使用主鍵或者唯一鍵,主鍵最好,因爲與業務無關
UPDATE tb_emp SET age=23 WHERE id=1;
UPDATE tb_emp SET age=25,sex='女' WHERE id=2;


#刪除語句,刪除不用指明列,因爲是刪除列
DELETE FROM tb_emp;#刪除表所有數據
DELETE FROM tb_emp WHERE id=2;


#截斷表,DDL語句,刪除所有表數據
TRUNCATE TABLE tb_emp;


#數據庫機制 ,auto_commit,值是true和false
#查詢mysql自動提交設置爲1(1自動提交,0手動提交)
SELECT @@autocommit;




delete刪除數據,保留表結構,可以回滾,如果數據量大,很慢,回滾是因爲備份了刪除的數據,

(也就是說刪除數據時有兩個動作,一刪除,二備份)


truncate 刪除所有數據,保留表結構,不可以回滾,速度相對較快(刪除數據時只有一個動作:刪除)


drop 刪除數據和表結構,刪除最快(直接從內存抹去這一塊數據)



#修改提交方式
SET autocommit = 0;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章