insert
添加、修改和删出都属于DML,主要包含的语句:insert、update、delete
● Insert语法格式
Insert into 表名(字段,。。。。) values(值,………..)
● 省略字段的插入
insert into emp values(9999,'zhangsan','MANAGER', null, null,3000, 500, 10);
不建议使用此种方式,因为当数据库表中的字段位置发生改变的时候会影响insert语句。
● 指定字段的插入(建议使用此种方式)
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values(9999,'zhangsan','MANAGER', null, null,3000, 500, 10);
出现了主键重复的错误,主键表示了记录的唯一性,不能重复。
如何插入日期:
第一种方法,插入的日期格式和显示的日期格式一致
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9997,'zhangsan','MANAGER', null, '1981-06-12',3000, 500, 10);
第二种方法,采用str_to_date
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) valu
es(9996,'zhangsan','MANAGER',null,str_to_date('1981-06-12','%Y-%m-%d'),3000, 500, 10);
第三种方法,添加系统日期(now())
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9995,'zhangsan','MANAGER',null,now() ,3000, 500, 10);
● 表复制
create table emp_bak as select empno,ename,sal from emp;
以上方式,会自动创建表,将符合查询条件的数据自动复制到创建的表中;
如何将查询的数据直接放到已经存在的表中,可以使用条件;
insert into emp_bak select * from emp where sal=3000;
可以修改数据,可以根据条件修改数据。
● 语法格式:
update 表名 set 字段名称1=需要修改的值1, 字段名称2=需要修改的值2 where …….
● 将job为manager的员工的工资上涨10%
update emp set sal=sal+sal*0.1 where job='MANAGER';
delete
可以删除数据,可以根据条件删除数据。
● 语法格式:
Delete from表名 where 。。。。。
● 删除津贴为500的员工
delete from emp where comm=500;
● 删除津贴为null的员工
delete from emp where comm is null;