MySQL基础——DML语言学习\插入数据\删除数据\更新数据

接上篇文章 MySQL基础——DDL语言学习

DML语言学习

  • Data Manipulation Language 数据操纵语言
  • 主要包括表记录的插入(INSERT)、更新(UPDATE)、删除(DELETE),是开发人员日常使用最频繁的操作

1. 插入数据

可以插入的方式有:插入完整的记录、插入记录的一部分、插入多条记录、插入另一个查询的结果

  • 语法:
# 单行插入
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...);
# 多行插入
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1, ...), (1, ...), ...;

注意:

  • 使用该语句时,字段和值一一对应,类型、约束必须匹配
  • 数值型的值,不用单引号;非数值型的值,要用单引号引起来
  • 字段顺序无要求,只要对应就可以

1、正常插入

  • 案例:
INSERT INTO stuinfo (stuid, stuname, stugender, email, age)
VALUES (1, '张无忌', '男', 'shediao@163.com', 18);
# 查询
SELECT * FROM stuinfo;

在这里插入图片描述
2、省略部分字段和值

  • 案例
INSERT INTO stuinfo (stuid, stuname, email)
VALUES (002, '张翠山', 'wudang@163.com');
# 查询
SELECT * FROM stuinfo;

在这里插入图片描述
如果不给出相应字段名和值,若有默认值,则显示默认值;如果没有默认值且允许为空时,显示NULL;如果没有默认值且不允许为空,则会报错

3、省略字段列表

  • 案例
INSERT INTO stuinfo VALUES (003, '张三丰', '男', 'quanzhen@163.com', 88)
# 查询
SELECT * FROM stuinfo;

在这里插入图片描述
如果省略字段列表,则默认为所有字段,按默认顺序进行对应VALUES

4、多个记录的同时插入

  • 案例
INSERT INTO stuinfo VALUES (004, '小昭', '女', 'xz@163.com', 19), 
	(005, '赵敏', '女', 'zm@163.cm', 18);
# 查询	
SELECT * FROM stuinfo;

在这里插入图片描述
5、 自增长列

自增长列必须要求设置在一个键上,比如主键或唯一键;自增长列要求数据类型为数值型;一个表至多有一个自增长列

  • 语法
CREATE TABLE 表名 (
字段名  INT PRIMARY KEY AUTO_INCREMENT,
...
);
  • 案例:实现gradeID的自增长
CREATE TABLE gradeinfo (
		gradeID 		INT PRIMARY KEY AUTO_INCREMENT,
		gradeName 	VARCHAR(20)
);
# 插入多行记录
INSERT INTO gradeinfo(gradename) VALUES('一年级'), ('二年级'), ('三年级');
# 查询
SELECT * FROM gradeinfo;

在这里插入图片描述


2. 删除数据

语法:

DELETE FROM 表名 [WHERE 筛选条件];
  • 如果没有WHERE子句,DELETE语句就会删除表中的所有记录

案例 1:删除gradeID为1的记录

DELETE FROM gradeinfo WHERE gradeID = 1

在这里插入图片描述
案例 2:删除所有记录

DELETE FROM gradeinfo

在这里插入图片描述
如果想删除表中的所有记录,还可以使用TRUNCATE TABLE语句,直接删除原来的表,并重新创建一个表,语法如下:

TRUNCATE TABLE 表名;	 # 不支持 WHERE 子句

注意:

  • TRUNCATE直接删除表而不删除记录,因此执行速度比DELETE
  • 如果删除带有自增长列的表,使用DELETE删除后,重新插入数据,记录从断点处开始,而使用TRUNCATE删除后,记录从1开始
  • 使用TRUNCATE删除数据,不返回受影响的行数

3. 更新数据

语法

UPDATE 表名 SET 字段名 1 = 更新值 1, ... [WHERE 更新的条件]

如果忽略WHERE,将更新表中所有的行

案例:

UPDATE gradeinfo SET gradeID = 4, gradeName = '五年级' WHERE gradeID = 1;

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

imByte

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值