MySQL操作之数据操作语言(DML)(三)

104 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

序号类型地址
1MySQLMySQL操作之概念、SQL约束(一)
2MySQLMySQL操作之数据定义语言(DDL)(二)
3MySQLMySQL操作之数据操作语言(DML)(三)
4MySQLMySQL操作之数据查询语言:(DQL)(四-1)(单表操作)
5MySQLMySQL操作之数据查询语言:(DQL)(四-2)(多表查询)
6MySQLMySQL操作之数据控制语言:(DC)(五)
7MySQLMySQL操作之数据库函数
8MySQLMySQL管理之数据类型
9MySQLMySQL管理之索引
10MySQLMySQL管理之事务管理
11MySQLMySQL管理之存储过程
12MySQLMySQL管理之视图
13MySQLMySQL管理之数据备份与还原
14MySQLLinux(centos 7.5)服务器安装MySQL
15MyBatisMyBatis从入门到多表关联
16MyBatisMyBatis常用方法
17MyBatisMybatis逆向工程的使用(附文件地址)
18MyBatisspring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle)
19MyBatis-PlusMybatis-Plus使用案例(包括初始化以及常用插件)
20MyBatis-Plusmybatis-plus代码生成器
21MyBatis-Plus自定义SQL
22MyBatis-PlusMybatis-Plus(连接Hive)
23MyBatis-PlusMyBatis-plus配置自定义SQL(执行用户传入SQL)
24MyBatis-PlusMybatis-Plus(Service CRUD 接口)

@[toc]


1、插入表记录:(insert)

基础语法如下,其中字段名可以不填、顺序可变。值可以单个和多个。

INSERT INTO 表名(字段1,字段2,...)
	VALUES(值1,值2,...);

MySQL中使用Insert插入数据分为三种:

  • 为表中所有字段添加数据
  • 为表中指定字段添加数据
  • 同时添加多条记录

1.1、为表中所有字段添加数据

1.1.1 INSERT语句中指定字段名:

INSERT INTO 表名(字段1,字段2,...)
	VALUES(值1,值2,...);

其中:

  • (字段1,字段2,...)为表中的字段的名称。
  • (值1,值2,...)必须要与前面字段相对应。
  • 字段可与数据库中顺序不一致,但是字段和插入值顺序要一致。
INSERT INTO student(id,name,grade)
	VALUES(1,'zhangsan',98);
INSERT INTO student(name,id,grade)
	VALUES('zhangsan',1,98);

1.1.2 INSERT语句中不指定字段名:

INSERT INTO 表名
	VALUES(值1,值2,...);
  • 添加的数据必须要与数据库中字段顺序一致。
INSERT INTO student
	VALUES(2,'zhangsan',98)

1.2、为表中指定字段添加数据

INSERT INTO 表名(字段1,字段2...)
	VALUES(值1,值2...)
  • 为表的指定字段添加数据,就是在INSERT语句中只向部分字段中国添加值,而其它字段为表定义时的默认值。
  • (字段1,字段2...)表示:表中字段名称。
  • (值1,值2...)表示:指定字段的值。
  • 每个值的顺序、类型必须与对应字段一致。
INSERT INTO student(id,name)
	VALUES(4,'zhaoliu');

另外写法:

可以为表中指定的字段或者全部字段添加数据。

INSERT INTO 表名
	SET 字段名 1=1[,字段名2 =2,...]

案例:

INSERT INTO student
	SET	id=5,name='byta',grade=99;

1.3、同时添加多条数据

在MySQL中提供了一条语句可以插入多条数据

INSERT INTO 表名[(字段1,字段2...)]
	VALUES(值1,值2,...),(值1,值2,...)....
  • (字段1,字段2...):表明插入的字段名。
  • (值1,值2,...):表示插入的记录。可以多条,其中用逗号分隔。

插入表中所有字段数据

INSERT INTO student 
	VALUES(6,'lilei',55),(7,'zhangsan',23);

指定字段添加数据:

INSERT INTO student (id,name)
	VALUES(6,'lilei'),(7,'zhangsan');

2、更新表记录:(update)

update 表名 set 字段名=值,字段名=where 条件;

更新部分数据

UPDATE student SET name='lisi' WHERE id=1;

更新全部数据

UPDATE student SET name='lisi';

3、删除记录:(delete)

DELETE FROM 表名 [where 条件];

删除部分数据

DELETE FROM student where id=1;

删除全部数据

DELETE FROM student;

3.1 TRUNCATE删除数据

TRUNCATE 表名;
  • TRUNCATE语法格式很简单,只需要指定表名就能将表数据清除。
  • DELETE属于DML语句,TRUNCATE属于DDL语句。
  • DELETE语句可以通过where条件来指定删除的数据,TRUNCATE只能清除全部数据。
  • TRUNCATE删除数据后,自增主键值,重置为1。
  • DELETE语句执行后,每条记录都会存储在日志中,使用TRUNCATE语句时,不会在日志中记录删除的内容。因此效率更高
TRUNCATE student;