MYSQL学习篇3——数据操纵(插入数据、默认值处理、修改数据、删除数据)

目录

  • 插入数据
  • 默认值处理
  • 修改数据
  • 删除数据

插入数据

选择插入
语法:

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字段插入market1

insert into departments(department_name, location_id) values ('market', 1);

完全插入
语法:

insert into 表名 values(1,2,...);

注意:

  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 删除以后, 自增值仍然会继续累加。

你可能感兴趣的:(MySQL,mysql,学习,数据库)