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','tom@163.com','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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值