MySQL—数据表中数据的增删改操作
增加数据(插入数据)
一条一条的添加数据
- 未指明添加的字段,一定要按照声明的字段的先后顺序进行执行
INSERT INTO emp1
VALUES (1,'Tom','2000-12-21',3400);
- 指明要添加的字段,没有进行赋值 的hire_date的值为null
INSERT INTO emp1(id,hire_date,salary,name)
VALUES (1,'2000-12-21',4000,'Jim');
- 同时插入多条数据
INSERT INTO emp1(id,name,salary)
VALUES (5,'keiven',5000),(4,'marry',1000);
将查询的结果插入到表中
查询的字段一定要与添加到的表的字段一一对应
待添加表中的字段不能低于查询输入得到的字段长度,如果低于,会出现添加失败的风险
INSERT INTO emp1 (id,name,salary,hire_date)
SELECT employee_id,last_name,salary,hire_date
FROM atguigudb.employees
WHERE department_id IN (60,70)
更新数据(修改数据)
UPDATE …SET …WHERE 天然可以实现批量数据的更改
UPDATE emp1
SET hire_date= CURDATE()
WHERE id=5;
同时修改一条数据的多个字段
UPDATE emp1
SET hire_date= CURDATE(),salary=2000
WHERE id=4;
修改数据,可能存在不成功的情况,可能是由于约束的影响造成的
删除数据
DELETE FROM … WHERE…
DELETE FROM emp1
WHERE id=4;
删除数据时,也有可能因为约束的影响,导致删除失败
DML 操作默认情况下,执行完以后都会自动提交数据
如果希望执行完以后不自动提交数据,则需要使用 SET autocommit = FALSE
综合练习
- 创建数据库test01_library
CREATE DATABASE IF NOT EXISTS test01_library CHARACTER SET 'utf8';USE test01_library;
- 创建表book;
CREATE TABLE IF NOT EXISTS books (
id INT,
name VARCHAR(50),
authors VARCHAR(100),
price FLOAT,
pubdate YEAR,
note VARCHAR(100),
num INT
)
- 向表中添加数据
- 不指定字段名称,插入一条数据
INSERT INTO books
VALUES(1,'Tal of AAA','Dickes',23,1995,'novel',11);
指定所有字段名称,插入第二条记录
INSERT INTO books(id,name,authors,price,pubdate,note,num)
VALUES(2,'EMMaT','Jane Lura',35,1993,'joke',22);
同时添加多条记录
INSERT INTO books(id,name,authors,price,pubdate,note,num)
VALUES(3,'test','test',35,1993,'joke',22),
(4,'arc','Jane',35,1993,'joke',22);
- 将小说类型noval的书增加5
UPDATE books
SET price=price+5
WHERE note='novel'
- 将名称为EmmaT的书的价格改为40,并将说明改成damma
UPDATE books
SET price=40,note='damma'
WHERE name='EMMaT'
- 删除库存为22的记录
DELETE FROM books
WHERE num=22;