MySQL中的增删改

文章目录

  • MySQL中的增删改
    • insert语句
      • insert插入单条记录
      • insert插入多条记录
    • update语句
    • 删除语句
      • delete删除语句
      • truncate删除语句

MySQL中的增删改

先建一个学生表,包括学号、姓名、性别、年龄和邮箱地址5个字段,用于下面对其操作

create table t_student(
    no int,
    name varchar(32),
    sex char(1),
    age int(3),
    email varchar(255)
);

MySQL中的增删改_第1张图片

insert语句

insert插入单条记录

insert语句的语法格式
insert into 表名 (字段名1,字段名2,字段名3,...) values(1,2,3,...);

注意:在insert语句中,字段名需要和值一一对应,数量要对应,数据类型要对应。

向t_student表中插入数据

insert into t_student(no,name,sex,age,email) values(1,'张三','男',20,'[email protected]');

MySQL中的增删改_第2张图片

insert into t_student(email,name,sex,age,no) values('[email protected]','李四','女',20,2);

MySQL中的增删改_第3张图片

插入数据时,不给字段指定值时,其默认值为null

insert into t_student(no,name) values(3,'王五');

MySQL中的增删改_第4张图片
查看表结构可以看到,五个字段的默认值都是NULL
MySQL中的增删改_第5张图片
但是在创建表时,我们可以为其指定默认值

// 创建时应先删除
drop table if exists t_student;

create table t_student(
    no int,
    name varchar(32),
    sex char(1) default '男',
    age int(3),
    email varchar(255)
);

MySQL中的增删改_第6张图片
再次插入数据,即使我们不指定sex的值,它也会给一个默认值’男’

insert into t_student(no,name) values(1,'张三');

MySQL中的增删改_第7张图片
insert语句中的字段名是可以省略的,但是当它省略时,表示的是字段名全写了,所以我们在为其写值时也要全写。

insert into t_student values(2,'李四');  //报错
ERROR 1136 (21S01): Column count doesn't match value count at row 1

insert into t_student values(2,'李四','','20','lisi@123.com');   //正确的

还是建议使用带有字段名的方式,带有字段名可读性更强。

insert插入多条记录

创建一个表,其中设置birth属性,其类型为date日期类型
create table t_user(
    id int,
    name varchar(32),
    birth date,
    create_time datetime
);

insert语句一次插入多条语句
语法:insert into 表名(字段名1,字段名2,...) values() , () , () ,...;

insert into t_user(id,name,birth,create_time) values
(1,'zs','2000-02-03',now()),
(2,'ls','2000-02-03',now()),
(3,'ww','2000-02-03',now());

MySQL中的增删改_第8张图片

update语句

update是修改语句,其语法格式为:update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3,... where 条件;
注意:没有条件限制全部的数据都会被修改

修改t_user表中数据

update t_user set name='Jack',birth='2022-05-18' where id=2;

MySQL中的增删改_第9张图片
不指定条件

update t_user set name='王五',birth='2022-05-18';

MySQL中的增删改_第10张图片

删除语句

delete删除语句

语法格式:delete from 表名 where 条件;
注意:没有条件限制全部的数据都会被删除

删除t_user表中id=2的数据

delete from t_user where id=2; 

MySQL中的增删改_第11张图片
删除表中所有数据

delete from t_user;

MySQL中的增删改_第12张图片
MySQL中的增删改_第13张图片

truncate删除语句

delete语句删除数据的方式比较慢,其将数据删除后,硬盘上的真实存储空间不会被释放。
缺点:删除效率比较低
优点:支持回滚,数据可恢复



truncate删除表中数据,语法格式:truncate table 表名;
truncate语句删除数据效率较高,表被一次截断,物理删除。
缺点:不支持回滚,数据删除后无法恢复
优点:快速
MySQL中的增删改_第14张图片

你可能感兴趣的:(sql,mysql,数据库,sql)