05-mysql数据的增删改查

2019-01-08  本文已影响0人  亨锅锅

1.插入数据
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ....);

示例一:
create table if not exists stu(
id int,
name varchar(20)
);
insert into stu (id, name) values (1, 'lnj');

字段名称不用和表中的顺序一致

insert into stu (name, id) values ('zq', 2);

值顺序和个数必须和字段的顺序个数一致

insert into stu (name, id) values ('ww');
insert into stu (name, id) values (3, 'ww');

如果值的顺序和个数和表中字段的顺序和个数一致, 那么字段名称可以省略

insert into stu values (3, 'ww');

一次性插入多条数据, 每条数据的值用逗号隔开

insert into stu values (4, 'it'), (5, 'zb');


create table [if not exists] 表名(
字段名称 数据类型 [null | not null],
字段名称 数据类型 [auto_increment],
字段名称 数据类型 [primary key],
字段名称 数据类型 [default],
字段名称 数据类型 [comment]
)engine=存储引擎;

create table if not exists stu2(
name varchar(20) not null,
score int default 59,
age int
);

被not null修饰的字段必须传值

insert into stu2 (score, age) values (88, 13); #报错

默认字段都是被null修饰的, 所以可以不传值

如果字段被default修饰, 那么不传值就会使用默认值

insert into stu2 (name) values ('lnj'); #不报错

default用于告诉MySQL使用默认值

insert into stu2 (name, score, age) values ('zs', default, 13);


create table if not exists stu3(
id int auto_increment primary key,
name varchar(20)
);

被auto_increment修饰的字段, 会从1开始自动增长

给auto_increment修饰的字段传递null或者default, 都是使用默认自增长的值

企业开发一般传递null, default用于告诉MySQL使用默认值

insert into stu3 (id, name) values (null, 'lnj');
insert into stu3 (id, name) values (default, 'zq');


create table if not exists stu4(
id int auto_increment primary key,
name varchar(20) comment '姓名'
);


2.查询表中的数据
select * from stu;


3.更新数据
update 表名 set 字段名=值 [where 条件];

示例一:

如果没有指定条件会修改表中所有的数据

update stu2 set age=66;

修改所有满足条件的数据

update stu2 set age=88 where name='zs';

添加多个条件 AND === && OR === ||

update stu2 set age=44 where name='zs' AND score=98;

同时修改多个字段的值

update stu2 set score=100,name='it' where age=66;


1.删除数据
delete from 表名 where 条件;

示例一:

删除满足条件的所有数据

delete from stu2 where age=88;
delete from stu2 where age<66;

删除表中所有的数据

delete from stu2;

删除表中的数据和清空表中的数据
delete from 表名; 删除表中所有的数据
truncate table 表名; 清空表中所有的数据

create table if not exists stu5(
id int auto_increment primary key,
name varchar(20),
age int
);
insert into stu5 values (null, 'lnj', 33),(null, 'zq', 34),(null, 'ls', 45);

如果通过delete删除表中所有的数据, 自增长的字段不会被清空

本质是遍历表中的每一条数据, 逐条删除

delete from stu5;
insert into stu5 values (null, 'ww', 67);

如果通过truncate清空表中所有的数据, 自增长的字段会被清空

本质是将原有的表删除, 然后再创建一个一模一样的

truncate table stu5;
insert into stu5 values (null, 'ww', 67);


1.查询表
select 字段名1,字段名2 from 表名 where 条件;

查询指定字段的所有数据

select name from stu5;

查询多个指定字段的所有数据, 会按照查询时指定的字段顺序返回

select name, id from stu5;

如果需要查询所有字段, 可以用*代替字段名称

select id, name, age from stu5;
select * from stu5;

查询所有满足条件的数据

select * from stu5 where age>=40;


1.表复制
1.1复制数据, 但不复制结构
create table 新表名 select 字段 from 旧表名;

create table newStu select * from stu5;

1.2复制结构, 但不复制数据
create table 新表名 like 旧表名;

create table newStu2 like stu5;

上一篇 下一篇

猜你喜欢

热点阅读