第11章_数据处理之增删改

#第11章_数据处理之增删改

#1.添加数据

USE atguigudb
CREATE TABLE IF NOT EXISTS emp1(
id INT,
`name` VARCHAR(15),
hire_date DATE,
saalry DOUBLE(10,2)
);
DESC emp1;
SELECT * FROM emp1;

#自己的错误,需要修改过字段名来
ALTER TABLE emp1
CHANGE saalry salary DOUBLE(10,2);


#方式1:一条一条的添加。

#①没有指明添加字段:
INSERT INTO emp1
VALUES(1,'Tom','2000-12-21',3400);#一定要按照声明的字段的先后顺序添加

#②指明添加字段(推荐)
INSERT INTO emp1(id,hire_date,salary,`name`)
VALUES (2,'1999-09-09',3400,'Jerry');
#没指明的就是NULL
INSERT INTO emp1(id,hire_date,`name`)
VALUE(2,'1999-09-09','Jerry');

#③同时插入多条(推荐)
INSERT INTO emp1(id,NAME,salary)
VALUES
(4,'Jim',5679),
(5,'俊杰',245);

#方式2:将查询结果直接插入到表中。

SELECT * FROM emp1;

INSERT INTO emp1(id,NAME,salary,hire_date)
#查询语句:
SELECT employee_id,last_name,salary,hire_date #查询的字段一定与添加的表一一对应
FROM employees
WHERE department_id IN (70,60);

DESC emp1;
DESC employees;
#说明:emp1表中要添加数据的字段的数据长度不能低于employees的对应字段的长度。


#2. 更新数据 或者叫修改数据
#UPDATE...SET...WHERE
#可以批量的实现数据的修改
DESC emp1;
SELECT * FROM emp1;

UPDATE emp1 
SET hire_date = CURDATE()
WHERE id = 5;

#同时修改一条数据的多个字段
UPDATE emp1
SET hire_date = CURDATE(),salary = 6000
WHERE id = 4;

UPDATE emp1
SET salary = salary * 1.2
WHERE NAME LIKE '%a%';

#修改数据时是可以存在不成功的情况的(可能是由于约束的影响)
UPDATE employees
SET depart

#删除数据 DELETE FROM ...WHERE...
DELETE FROM emp1
WHERE id = 1;

#小结:DML操作在默认情况下,执行完以后都会自动提交数据。
#如果希望执行完以后不自动提交数据,则需要使用SET autocommit = FALSE;


#MySQL8的新特性:计算列
USE atguigudb;

CREATE TABLE test1(
a INT,
b INT,
c INT GENERATED ALWAYS AS(a + b) VIRTUAL #字段c即为计算列
);

INSERT INTO test1(a,b)
VALUES(10,20);
UPDATE test1
SET a = 100;
SELECT * FROM test1;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值