MySQL数据库的增删改操作总结
数据库的增删改操作又称为DML操作,包括表记录的插入、删除、更新。
一、插入记录
语法格式如下:
insert into tablename(field1,field2,…) values (value1,values2,…)[,(value1,values2,…)…];
说明:
(1)value的数量和字段(field)的数量必须相等,且value的类型需要和对应的field类型匹配。
(2)tablename后面可以不加字段名,此时必须为所有字段指定value。
举例,创建如下的emp表,并插入记录:
create table emp(
emp_id int auto_increment primary key,
emp_name char(20),
birth datetime,
phone char(20),
height decimal(4,1),
dept_id int
);
insert into emp(emp_name,birth) values('Tom','1989-1-23'); --插入一条记录,phone,height,dept_id字段为NULL
insert into emp values(2,'Jack','1989-1-23',NULL,178.5,2); --插入一条记录,phone字段为NULL
insert into emp(emp_name,birth) values('Kate','1989-10-2'),('John','1987-11-3'),('Jerry','1990-8-15');
--一次插入多条记录,phone,height,dept_id字段为NULL
insert into emp values(11,'Zhangxg','1990-3-8','8888888',170,2),(12,'Wangxm','1987-12-6','66666666',172,2);
--一次插入多条记录
二、 删除记录
语法格式如下:
delete from tablename where 条件;
说明:
(1)需要删除的记录由where来指定。
(2)where可以省略,此时将删除表中的所有数据。
举例,针对emp表,删除记录:
delete from emp where height>180; --删除身高超过180厘米的员工记录
delete from emp where emp_name like '张%'; --删除姓"张"的员工记录
delete from emp where dept_id in (2,5,10); --删除部门编号为2、5和10的员工记录
delete from emp where height between 170 and 175; --删除身高170至175厘米的员工记录
如果要删除一个表中的所有记录,除了使用delete from tablename命令之外,还可以使用truncate tablename命令,两个命令的共同点和不同点总结如下:
共同点:delete from tablename和truncate tablename命令都可以把一张表清空。
不同点:如果一个表中有自增字段。
(1)使用delete from tablename命令删除表中的所有记录之后,自增字段的值不会被重置。所以如果又插入了新记录,则新记录自增字段会在原来的基础上继续编号;
(2)使用truncate tablename命令删除表中的所有记录之后,自增字段的值会被重置。所以如果又插入了新记录,则新记录自增字段会从1开始重新编号;
三、更新记录
语法格式如下:
update tablename set field=value where 条件;
说明:
(1)由field指定要更新的字段,由where来指定要更新的记录。
(2)如果省略where,则对所有记录进行更新。
举例,针对emp表,进行如下更新操作:
alter table emp add salary decimal(10,2) after height;
update emp set salary=5000; --把所有人的工资设置为5000
update emp set salary=6000 where dept_id=2; --把2号部门所有人的工资设置为6000
update emp set salary=salary+500; --为所有人的工资增加500
update emp set salary=salary*1.05 where dept_id=2; --把2号部门所有人的工资增加5%