插入数据
选择插入 语法:
insert into 表名(列名1, 列名2, ...) values(值1, 值2, ...);
例子: 创建一个表,名称为departments,字段名为department_id,department_name,location_id。
create table departments(department_id
int,department_name
varchar(30),location_id int);
将department_id改为主键约束,并为主键自增长。
alter table departments modify
department_id int auto_increment;
在departments表中的department_name、location_id字段插入market 、1 。
insert into departments(department_name, location_id) values ('market', 1);
完全插入 语法:
insert into 表名 values(值1,值2,...);
注意:
- 值的顺序需要和表中字段顺序相同。
- 如果主键是自动增长,需要使用 default 或者 null 或者 0 占位。
例子:
insert into departments values(default,'研发部',2);
insert into departments values(null,'财务部',2);
insert into departments values(0,'教学部',2);
同时插入多条数据 例子:
insert into departments values(0,'教学部',2),(0,'stuentds',2);
默认值处理
可以给某列设定默认值,在插入数据时并没有指定该列的值,那么MySQL会将插入默认值。
创建表时指定列的默认值
create table 表名(列名 类型 default 默认值, ...);
例子: 创建表school,字段名class_id为主键自增长,class_name,num_students。
create table school(class_id int primary key auto_increment,
class_name varchar(15), num_students int(10) default 0);
修改表添加新列并指定默认值 语法:
alter table 表名 add column 列名 类型 default 默认值;
例子: 在school表中添加is_h列并设置默认值Unknown。
alter table school add column is_h varchar(10) default 'Unknown';
注意:如果在选择插入 时未指定列,其它列会自动按默认值处理,完全插入 时则需要使用default来占位。 例子:
insert into school(class_name) values('大一物联网1班');
insert into school values(default,'大二物联网2班',default,default);
修改数据
语法:
update school set 列名=值1, 列名=值1,... where 条件;
例子: 将school表中的class_id为2的is_h字段改为是
update school set is_h='是' where class_id=2;
注意: MySQL会修改所有满足条件的数据。
删除数据
删除表中数据 语法:
delete from 表名 where 条件;
例子: 删除school表中class_id=2的信息
delete from school where class_id=2;
清空表的数据
语法:
truncate table 表名;
例子:
truncate table school;
delete与truncate的区别
- truncate 是整体删除(速度较快), delete 是逐条删除(速度较慢);
- truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;
- truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而 不是接着原来的值。而 delete 删除以后, 自增值仍然会继续累加。
|