学习MySQL的第九天

纸上得来终觉浅               

                      绝知此事要躬行

数据处理的增删查改

一、添加数据

        添加数据有两种方式,一种是一条一条的添加数据,另一种是通过对其他表的查询,将查询的结果插入到表中;第一种方式又可以分为三种方式:(1)逐字段匹配 (2)指明添加的字段进行对应添加(但是字段必须是表中存在的字段,且未包含的字段不能有不能为空的)   (3)一次性插入多条。下面我们来进行演示:

# 准备工作: 
USE the_first
CREATE TABLE IF NOT EXISTS emp1(
id INT,
name VARCHAR(5),
hire_data DATE,
salary DOUBLE(10,2)
);
DESC emp1;
SELECT *
FROM emp1;

# 方式1:一条一条的添加数据
# 第一种:逐字段匹配
INSERT INTO emp1
VALUES(1,'Tom','2005-07-15',3000);
# 第二种:指明添加的字段进行对应添加,但是字段必须是表中存在的字段,且未包含的字段不能有不能为空的
INSERT INTO emp1(id,`name`)
VALUES(2,'Mike')
# 第三种:一次性插入多条
INSERT INTO emp1(id,salary,name)
VALUES(3,4200,'Mark'),
(4,3500,'Jok');

# 方式2:将查询的结果插入到表中
SELECT * FROM emp1;


三种情况
将查询的结果插入到表中

二、更新数据(修改数据)

        UPDATE ... SET ... WHERE ...

        2.1 可以实现批量修改数据

UPDATE emp1
SET hire_data = CURDATE()
WHERE id>2
标题

        2.2 同时修改一条数据的多个字段

UPDATE emp1
SET hire_data = CURRENT_DATE,salary = 6000
WHERE id=4;
SELECT * FROM emp1;

        练习:将姓名中含有o 的人员的薪资提高30%

USE the_first
UPDATE emp1
SET salary = salary *1.2
WHERE name LIKE '%o%'

        补充:修改数据时是有可能由于约束的原因导致添加不成功

三、删除数据

        DELETE FROM ... WHERE ...
        准备工作:

INSERT INTO emp1
VALUE(6,'i','2005-07-15',5555)
SELECT *
FROM emp1

DELETE FROM emp1
WHERE id = 6

小结:DML操作默认执行完之后都会自动提交数据,如果希望不自动提交数据,则需要使用
SET autocommit = FALSE.

四、MySQL新特性:计算列

        generated always AS (a+b) VIRTUAL :自动计算字段a和b的和

USE emp;
CREATE TABLE test(
a INT,
b INT,
c INT generated always AS (a+b) VIRTUAL # 字段C为计算列
);
# 插入数据
INSERT INTO test(a,b)
VALUES(10,50)
# 修改test表中a的值
UPDATE test
SET a =40;

五、增删查改数据库练习

        1.创建数据库dbtset11
CREATE DATABASE IF NOT EXISTS dbtest11;
        2.创建表my_employees
USE dbtest11;
CREATE TABLE my_employees(
id INT(10),
first_name VARCHAR(255),
last_name VARCHAR(255),
user_id VARCHAR(255),
salary DOUBLE(10,2)
);

CREATE TABLE users(
id INT,
user_id VARCHAR(255),
department_id INT
);
        3.显示表my_employees的结构
DESC my_employees

        4.插入数据 
INSERT INTO my_employees VALUES
(1,'patel','Ralph','Rpatel',895),
(2,'Dancs','Betty','Bdancs',860),
(3,'Biri','Ben','Bbiri',1100),
(4,'Newman','Chad','Cnewman',750),
(5,'Ropeburn','Audrey','Aropebur',1550);

SELECT * FROM my_employees
SELECT * FROM users

 

        5.向表users中加入数据
INSERT INTO users VALUES
(1, 'Rpatel', 10),
(2, 'Bdancs' , 10) ,
(3, 'Bbiri', 20),
(4, 'Cnewman', 30),
(5, 'Aropebur', 40)

        6.将3号员工的last_name修改为"drelxer"
UPDATE my_employees
SET last_name = 'drelxer'
WHERE id = 3;

        7.将所有工资少于900的员工的工资修改为1000
UPDATE my_employees
SET salary = 1000
WHERE salary <=900

SELECT * FROM my_employees

        8.将user_id为Bbiri的user表和my_employees表的记录全部删除
方式1:
DELETE FROM my_employees
WHERE user_id = 'Bbiri';
DELETE FROM users
WHERE user_id = 'Bbiri';

方式2:
DELETE t1,t2
FROM my_employees t1
JOIN users t2
ON t1.user_id = t2.user_id
WHERE t1.user_id = 'Bbiri';

SELECT * 
FROM my_employees a JOIN users b 
ON a.user_id = b.user_id

        9.删除my employees、users表所有数据
DELETE FROM my_employees;
DELETE FROM users;
        10.检查修改结果
SELECT  *FROM my_employees;
SELECT * FROM users;


六、结语

        凌空蹈虚,难成千秋伟业;求真务实,方能善作善成

须知少日拏云志,曾许人间第一流。我们还年轻,我们还有无限可能!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力奋斗的小杨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值