DML:
#1.插入数据必须先插入tb_dept数据,因为tb_emp有外键约束。注意:字段和值数量和类型都需要匹配
INSERT INTO tb_dept (NAME,loc,description)VALUES('运维部','广州','负责运维工作');
#测试auto_increment
#auto_increment会记住曾经生成的值删除2,3后插入,id变为4
INSERT INTO tb_dept(NAME,loc,description)VALUES('运维部','广州','负责运维工作');
('其他部门','广州','负责其他工作');
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;
#修改提交方式
SET autocommit = 0;
#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;