当前位置: 首页 > news >正文

学习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;


六、结语

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

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

相关文章:

  • 【C++】 —— 笔试刷题day_15
  • Spring - 14 ( 5000 字 Spring 入门级教程 )
  • Linux网络http与https
  • LeetCode面试热题150中6-11题学习笔记(用Java语言描述)
  • 通过 spring ai 对接 deepseek ai 大模型通过向量数据库,完成 AI 写标书及构建知识库功能的设计与开发
  • 简约美观的地址发布页PHP源码带后台
  • 【3】k8s集群管理系列--包应用管理器helm之chart资源打包并推送到harbor镜像仓库
  • 粉末冶金齿轮学习笔记分享
  • Honor of Kings (S39) 13-win streak
  • Python中NumPy的随机操作
  • 5.1 GitHub订阅监控系统实战:FastAPI+SQLAlchemy高效架构设计与核心源码揭秘
  • 从一到无穷大 #45:InfluxDB MCP Server 构建:从工程实践到价值重构
  • 探秘 Python 网络编程:构建简单聊天服务器
  • RFID技术概览
  • 深入理解linux操作系统---第3讲 基本操作与基本管理
  • GD32的中断、定时器与PWM综合使用
  • FEA 仿真助力高速连接器设计中的信号完整性
  • 碰一碰发视频源码搭建技术开发,私有化部署,定制化开发
  • 【OpenCV】【XTerminal】talk程序运用和linux进程之间通信程序编写,opencv图像库编程联系
  • 数智读书笔记系列028 《奇点更近》
  • 瑞银:国际市场对中国资产关注度持续升温,外资回流空间仍很大
  • 7天6板南京港:控股子公司没有直达美国外贸集装箱直达航线
  • “美诚月饼”佛山生产公司已注销,涉小杨哥带货“香港传统品牌”产地争议事件
  • 错过航班大闹机场女子发声:非母子关系,将起诉视频发布者
  • 迪拜工业城2025年初表现强劲,有望迎来投资增长新高
  • 国家发改委:正在会同有关方面,加快构建统一规范、协同共享、科学高效的信用修复制度