码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据库学习之表的增删查改


    表的增删查改

    • 引入
    • Create(创建)
      • 单行数据 + 全列插入
      • 多行数据 + 指定列插入
      • 6.1.3 插入否则更新--on duplicate key update
      • 替换
    • Retrieve(读取)
      • 准备工作
      • 列
        • 全列查询
        • 指定列查询
        • 查询字段为表达式
        • 表达式包含多个字段
        • 为查询结果指定别名 空格
        • 结果去重--distinct
        • 排序 order by 列 默认(asc升序)/desc(降序)
      • where
        • 简单运算符比较
      • = <=> != <>
      • BETWEEN a0 AND a1
      • IN
      • LIKE
      • 筛选分页结果 limit 数字 offset 数字/limit 数字,数字
    • Update(更新)
      • 更新一列一个数据
      • 更改一列多个数据
      • 更新全列
    • Delete(删除)
      • 删除某一行数据
      • 删除整张表的数据
      • TRUNCATE
      • delete vs truncate(了解)
    • 插入查询结果
    • 聚合函数
    • group by
      • 将外界数据库导入本地--数据恢复
      • 实战训练
        • 准备工作
        • 相关查询
      • where vs having

    引入

    CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

    Create(创建)

    INSERT [INTO] table_name
    [(column [, column] ...)]
    VALUES (value_list) [, (value_list)] ...
    value_list: value, [, value] ...
    
    • 1
    • 2
    • 3
    • 4

    单行数据 + 全列插入

    在这里插入图片描述

    多行数据 + 指定列插入

    在这里插入图片描述
    在这里插入图片描述

    6.1.3 插入否则更新–on duplicate key update

    INSERT ... ON DUPLICATE KEY UPDATE column = value [, column = value] ...
    
    • 1

    在这里插入图片描述

    替换

    在这里插入图片描述

    Retrieve(读取)

    SELECT
    	[DISTINCT] {* | {column [, column] ...}
    	[FROM table_name]
    	[WHERE ...]
    	[ORDER BY column [ASC | DESC], ...]
    	LIMIT ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    准备工作

    CREATE TABLE exam_result (
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL COMMENT '同学姓名',
    chinese float DEFAULT 0.0 COMMENT '语文成绩',
    math float DEFAULT 0.0 COMMENT '数学成绩',
    english float DEFAULT 0.0 COMMENT '英语成绩'
    );
    
    INSERT INTO exam_result (name, chinese, math, english) VALUES
    ('唐三藏', 67, 98, 56),
    ('孙悟空', 87, 78, 77),
    ('猪悟能', 88, 98, 90),
    ('曹孟德', 82, 84, 67),
    ('刘玄德', 55, 85, 45),
    ('孙权', 70, 73, 78),
    ('宋公明', 75, 65, 30);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    列

    全列查询

    在这里插入图片描述

    指定列查询

    在这里插入图片描述

    查询字段为表达式

    在这里插入图片描述

    表达式包含多个字段

    在这里插入图片描述

    为查询结果指定别名 空格

    在这里插入图片描述

    结果去重–distinct

    在这里插入图片描述

    在这里插入图片描述

    排序 order by 列 默认(asc升序)/desc(降序)

    如果你的数据本身就是有序的,那么查询是也是需要有排序的
    因为:返回的顺序是未定义的,别人可能会修改你的数据
    在这里插入图片描述
    在这里插入图片描述

    where

    简单运算符比较

    运算符 说明
    >, >=, <, <= 大于,大于等于,小于,小于等于
    = 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
    <=> 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
    !=, <> 不等于
    BETWEEN a0 AND a1 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
    IN (option, …) 如果是 option 中的任意一个,返回 TRUE(1)
    IS NULL 是 NULL
    IS NOT NULL 不是 NULL
    LIKE 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

    AND 多个条件必须都为 TRUE(1),结果才是 TRUE(1)
    OR 任意一个条件为 TRUE(1), 结果为 TRUE(1)
    NOT 条件为 TRUE(1),结果为 FALSE(0)

    英语成绩及格的
    在这里插入图片描述

    = and <=>
    在这里插入图片描述

    = <=> != <>

    <=>不建议使用,建议使用 IS NULL和IS NOT NULL

    BETWEEN a0 AND a1

    [a0,a1]
    在这里插入图片描述

    IN

    在这里插入图片描述

    LIKE

    在这里插入图片描述
    在这里插入图片描述

    筛选分页结果 limit 数字 offset 数字/limit 数字,数字

    limit永远在最后的未知
    在这里插入图片描述
    在这里插入图片描述

    Update(更新)

    UPDATE table_name SET column = expr [, column = expr ...]
    [WHERE ...] [ORDER BY ...] [LIMIT ...]
    
    • 1
    • 2

    更新一列一个数据

    在这里插入图片描述

    更改一列多个数据

    在这里插入图片描述

    更新全列

    在这里插入图片描述

    Delete(删除)

    DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
    
    • 1

    删除某一行数据

    在这里插入图片描述

    删除整张表的数据

    在这里插入图片描述
    职业素养:
    别人让你删除表
    先备份(给表起个别名,然后保存)
    然后输出表的数据

    TRUNCATE

    在这里插入图片描述

    delete vs truncate(了解)

    日志:承担很大的功能要求

    1. bin log:几乎所有的sql操作,MySQL服务器都会给我们记录下来!用来进行多主机同步增量备份
    2. redo log:MySQL持久化和crash-safe(崩溃)功能
    3. undo log:在事物中承担回滚的日志,数据操作恢复功能

    delete会更新bin
    truncate不更新bin

    插入查询结果

    删除表内重复数据
    在这里插入图片描述

    聚合函数

    COUNT([DISTINCT] expr) 返回查询到的数据的 数量。NULL不计入总数 ,‘ ’计入总数
    SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
    AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
    MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义
    MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义

    聚合函数不能和特定函数放在一起,容易出错的
    但是因为一些版本的原因,有些会直接报错,有些则会错误输出

    group by

    select column1, column2, .. from table group by column;
    
    • 1

    将外界数据库导入本地–数据恢复

    在这里插入图片描述

    实战训练

    准备工作

    EMP员工表
    DEPT部门表
    SALGRADE工资等级表

    在这里插入图片描述

    相关查询

    如何显示每个部门的平均工资和最高工资
    在这里插入图片描述

    显示每个部门的每种岗位的平均工资和最低工资
    在这里插入图片描述
    group by先对数据进行分组

    显示平均工资低于2000的部门和它的平均工资
    having经常和group by搭配使用,作用是对分组进行筛选,作用有些像where
    在这里插入图片描述

    where vs having

    两者的执行位置,次序时不同的!
    where:过滤表中数据
    having:过滤分组数据

  • 相关阅读:
    Redis之主从复制
    Python代码部署的三种加密方案:代码混淆、代码编译、代码打包
    Mining Association Rules between Sets of Items in Large Databases
    电动机保护器的作用
    【错误记录】Navigation 导航组件报错 ( Activity xxActivity@3f does not have a NavController set on 2131xx )
    SpringBoot配置全局异常处理
    提升80%上云集成效率, TA是如何做到的
    @Configuration详解
    CodeTON Round 3 (Div. 1 + Div. 2, Rated, Prizes!) A~D 题解
    运行mbedtls自带Demo ssl_client的记录
  • 原文地址:https://blog.csdn.net/sakeww/article/details/126256547
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号