MySQL数据库——DML语句之增删改

写在前面

  • 添加、修改、删除数据时,都有可能存在不成功的情况
    • 可能是由于约束造成的

一、添加数据

1.1 一条一条的添加数据

1、没有指明添加字段

INSERT INTO emp01
VALUES (1,'Tom','200-12-21',3400);
# 注意:一定要按照声明的字段的先后顺序添加

2、指明要添加的字段(推荐)

INSERT INTO emp01(id,hire_date,salary,`name`)
VALUES(2,'2022-12-2',3400,'Terry');
  • 说明:没有进行赋值的 hire_date 的值为null
INSERT INTO emp01(id,salary,`name`)
VALUES(2,3400,'Jerry');

3、同时插入多条记录

INSERT INTO emp01(id,salary,`name`)
VALUES(4,5000,'Jim'),
	  (5,3400,'Jery');

1.2 将查询结果插入到表中

  • 查询的字段一定要与添加到表的字段一一对应
INSERT INTO emp01(id,NAME,salary,hire_date)
# 查询语句
SELECT employee_id,last_name,salary,hire_date
FROM employees
WHERE department_id IN (70,60);
  • 说明:仅针对上述情况,emp01表中要添加数据的字段的长度不能低于employees表中查询的字段的长度。若不满足,则有添加不成功的风险

二、删除数据

  • 语法:delete from…where
DELETE FROM emp01
WHERE id = 1;
  • DML操作默认情况下,执行完以后都会自动提交数据
    • 若希望执行完以后不自动提交数据,则需要使用 'set autocommit = false’

三、修改数据

  • 语法:update…set…where
  • 可以批量修改数据
UPDATE emp01
SET hire_date = CURDATE()
WHERE id = 2;
  • 同时修改一条数据的多个字段
UPDATE emp01
SET hire_date = CURDATE(),salary = 6000
WHERE id = 1;

四、Mysql8.0新特性:计算列

CREATE TABLE  IF NOT EXISTS test1(
a INT,
b INT,
c INT GENERATED ALWAYS AS (a+b) VIRTUAL		
# 字段c为计算列
);
INSERT INTO test1(a,b)
VALUES(10,20);

SELECT * FROM test1;

UPDATE test1
SET a = 100;

SELECT * FROM test1;

参考:尚硅谷-宋红康老师的视频及课件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值