Mysql中对表中数据进行的增删改的基本语句

插入数据

为所有字段插入数据

语法格式:

insert [into] table_name [column_name1, column_name2, ...] value|values(value1, value2, ...);
  • insert 为插入数据用到的关键字;
  • into 为可选项,与 insert 搭配使用;
  • column_name1column_name2 分别表示表中的字段名,表中的字段可写可不写;
  • valuevalues 二选一,后面跟要插入的字段的值;
  • value1 value2 则分别表示对应字段的值。

注意:

  • 为所有字段插入数据有两种方式:一是在sql语句中列出表中所有的字段;二是在sql语句中省略表中的字段。
  • 使用第一种方式时,插入的数据必须与表中字段的位置、数据类型、个数保持一致。
  • 使用第二种方式时,插入的数据顺序可以调整,只需要与所写语句中字段的位置一致,但数据类型和歌山还要保持一致。

代码如下:

create table stu(
	id int primary key auto_increment,
	name varchar(4) not null,
	age int,
	sex varchar(1) default'男',
	email varchar(30) unique
);

# 插入数据
insert stu values(1, '张三', 18, '男', 'zhangsan@163.com');
insert stu(id, name, age, sex, email) values(1, '张三', 18, '男', 'zhangsan@163.com')

# 查看数据
select * from stu;

在这里插入图片描述

为指定字段插入数据

在实际开放中,有时设置了自动增加约束的字段和设置了默认值的字段不需要插入值,所以只需要为指定字段插入数据即可。

代码如下:

insert stu(name, age, email) values('李四', 20, 'lisi@qq.com');

在这里插入图片描述

“set”关键字插入数据

语法格式:

insert [into] table_name set column_name1 = value1[, column_name2 = value2, ...];

在set关键字后面使用 column_name = value 这种键值对的方式指定字段的值,每队之间用英文逗号隔开。

如果要为所有字段插入数据,则需要列举出所有字段;如果要为指定字段插入数据,则只需要列举出部分的字段即可。

所有字段

代码如下:

insert stu set id = 3, name = '王五', age = 21, sex = '女', email = 'wangwu@qq.com';

在这里插入图片描述

指定字段:

代码如下:

insert stu set name = '赵六', age = 10, email = 'zhaoliu@163.com';

在这里插入图片描述

同时插入多条数据

语法格式:

insert [into] table_name [(column_name1, column_name2, ...)]
	value|values(value11, value21, ...), 
				(value12, value22, ...),
				... ;

为所有字段插入多条数据

insert stu
	values(5, '孙七', 19, '女', 'sunqi@163.com'),
		  (6, '周八', 18, '男', 'zhouba@qq.com');

在这里插入图片描述

为指定字段插入多条数据

insert stu(name, age, email)
	values('武九', 18, 'wujiu@qq.com'),
		  ('宋十', 20, 'songshi@163.com');

在这里插入图片描述

插入查询结果

可以通过 insert 语句将从一张表中查询到的结果直接插入到另一张表中,间接地实现了数据的复制功能。

语法格式:

insert [into] table_name1(column_list1)
	select column_list2 from table_name2 where where_condition;
  • table_name1 为插入新数据的表名;
  • column_list1 为字段列表,表示要为哪些字段插入值;
  • column_list2 表示要从表中查询哪些字段的值;
  • table_name2 要查询的表,即要插入数据的来源;
  • where where_conditionwhere 子句, 用来指定查询条件;

代码如下:

insert new_stu(id, name, age, email)
	select id, name, age, email from stu where sex = '女';

在这里插入图片描述

更新数据

更新指定数据

更新指定记录的前提是根据条件找到指定的记录,所有要结合使用 updatewhere 语句。

语法格式:

update table_name
	set column_name1 = value1[, column_name2 = value2, ...]
	where where_condition;
  • table_name 为要更新数据的表名;
  • column_name1 为要更新的字段;
  • value1 为要更新的数据;

代码如下:

update new_stu
	set name = '张大大', email = 'zhangdada@163.com'
	where name = '王五'

在这里插入图片描述

更新全部数据

语法格式:

update table_name set column_name1 = value1[, column_name2 = value2, ...];

代码如下:

update new_stu set age = 18;

在这里插入图片描述

删除数据

删除指定记录

语法格式:

delete from table_name where where_condition;

例如:

delete from stu where id > 5;

删除全部记录

语法格式:

delete from table_name;

例如:

delete from stu;

在这里插入图片描述

使用 truncate 语句删除数据

语法格式:

truncate [table] table_name;

例如:

truncate new_stu;

在这里插入图片描述

delete和truncate的区别

  1. delete 语句十数据操作语言,truncate 语句是数据定义语言;
  2. delete 是将表中所有记录一条一条删除直到删除完,而 truncate 则是保留了表的结构,重新创建了这个表,所有状态相当于新表;
  3. delete 可以回滚;
  4. 在 delete 操作删除表中记录后,再次向表中添加新的记录时,对于设置有自增约束字段的值会从删除前表中该字段的最大值+1开始自增;truncate 操作则会重新从1 开始自增。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值