• MySQL 表的增删查改(基础)



    这篇文章主要描述数据库中的 增查删改,CRUD.
    CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写.

    一. 新增(creat)

    这里我们可以先了解一下全列查询方法:

    select from 要查询的表明;

    首先,我们需要实现一个表,如图:
    在这里插入图片描述

    1. 单行插入+全列插入
      一次插入一行,插入时必须保持每个元素都包括

    示例
    插入两条记录 插入元素数量必须和定义表的列的数量及顺序一致
    insert into student values (100,10000,‘唐先生’ ,NULL);
    insert into student values (101,10001,‘孙先生’,‘11111’);

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

    1. 多行数据+指定列插入
      一次插入多行元素,插入的元素数量必须和指定列的数量的顺序一致

    示例:
    INSERT INTO student (id, sn, name)VALUES
    (102, 20001, ‘曹孟德’),
    (103, 20002, ‘孙仲谋’);

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

    二.查询(Retrieve)

    首先创建一个查询的测试用表
    在这里插入图片描述

    1.全列查询

    通常情况下,不建议使用 * 进行全列查询.

    1. 查询的列越多,同样就意味着需要传输的数据量越大.
    2. 可能会影响到索引的使用.
      select * from 表名称;

    在这里插入图片描述

    2.指定列查询

    指定列查询,顾名思义就是不受定义的表的顺序约束限制来查询
    select id,name,english (这里可以更变为任意表定义的列) from 表名;

    在这里插入图片描述

    3.查询字段为表达式

    1. 表达式中不包含字段
      select id,name,10,from 表名;

    在这里插入图片描述

    1. 表达式包含一个字段
      select id,name,english+10 from 表名;

    在这里插入图片描述

    1. 表达式包含多个字段
      select id,name,chinese+math+english from 表名;

    在这里插入图片描述

    4.别名

    查询时,在字段表达式后方加上新的名称更正为别名
    select id,name,chinese+math+english 总分 from 表名;

    在这里插入图片描述

    5.去重操作----destinct

    这里我们可以先插入一组元素

    在这里插入图片描述
    如图,查找出重复的数据:

    在这里插入图片描述

    使用 distinct 关键字进行去重操作;

    select distinct math from 表名;
    
    • 1

    在这里插入图片描述

    6.排序操作----order by

    排序操作分为两类

    1. ASC 为升序 (从小到大).
    2. DESC 为降序 (从大到小).
      默认为 ASC
    select 列名,列名... from 表名 order by 列名 DESC/ASC;
    
    • 1

    在这里插入图片描述
    依然以这个表格为例.

    (1)最基本的排序展示
    以语文成绩为例:

    ASC 升序排列:
    在这里插入图片描述
    DESC 降序排列:
    在这里插入图片描述
    (2)使用表达式以及别名排序

    表达式排序:

    在这里插入图片描述
    别名排序:
    在这里插入图片描述
    (3)对多个字段进行排序

    select name,math,chinese,english from exam_result order by math DESC ,chinese,english;
    
    • 1

    在这里插入图片描述
    注: 对字段排序时,会对第一列优先排序,如果第一列无序,优先排第一列,轮不到第二列的排序.

    7.条件查询----Where

    比较运算符:

    在这里插入图片描述
    逻辑运算符:
    在这里插入图片描述
    (1) 基本查询

    查询英语不及格的人

    select name,english from exam_result where english < 60;
    
    • 1

    在这里插入图片描述

    查询语文成绩优于英语成绩的

    select name,chinese,english from exam_result where chinese > english;
    
    • 1

    在这里插入图片描述

    查询总分在200分以下的同学

    select name,chinese+math+english from exam_result where chinese + math + english<200;
    
    • 1

    在这里插入图片描述
    注: where 可以使用表达式,但是不可以使用别名.

    (2)AND 和 OR

    查询语文成绩大于80分且英语成绩大于80分的同学.

    select name,chinese,english from exam_result where chinese>80 and english>80;
    
    • 1

    在这里插入图片描述

    查询语文成绩大于80分或者英语成绩大于80分的同学

    select name,chinese,english from exam_result where chinese >80 or english >80;
    
    • 1

    在这里插入图片描述

    注. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

    (3)范围查询

    1. between…and…

    查询语文成绩在 [80,90] 之间的同学

    select name,chinese from chinese where between 80 and 90;
    
    • 1

    在这里插入图片描述

    同样这里也可以用 and 方法来实现

    select name,chinese from exam_result where chinese >=80 and chinese <= 90;
    
    • 1

    在这里插入图片描述

    1. IN 方法.

    查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

    select name,math from exam_result where math in(58,59,98,99);
    
    • 1

    在这里插入图片描述

    同样的这里也可以用 or 方法来实现.

    select name,math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;
    
    • 1

    在这里插入图片描述

    1. 模糊查询 like

    %匹配任意多个字符

    select name from exam_result where name like '%孙';
    
    • 1

    在这里插入图片描述

    _ 严格匹配一个任意字符

    select name from exam_result where name like '......';
    
    • 1

    在这里插入图片描述

    1. NULL 的查询

    查询同学语文成绩是否为NULL;

    select name,chinese from exam_result where chinese is not NULL;
    
    select name,chinese from exam_result where chinese is NULL;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    8.分页查询----limit

    以 id 进行分列

    select id,name,math,english,chinese from exam_result order by id limit 3 offset 0;
    select id,name,math,english,chinese from exam_result order by id limit 3 offset 3;
    select id,name,math,english,chinese from exam_result order by id limit 3 offset 6;
    
    • 1
    • 2
    • 3

    分页方法的意思是 limit (几个元素) offset (从第几个 id 算起).

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

    三.删除(Delete)

    当前表格如图:
    在这里插入图片描述

    1. 删除单个学生成绩
    delete from exam_result where name = '唐三藏';
    
    • 1

    在这里插入图片描述

    1. 删除整张表数据

    首先准备一张要删除的表,如图.

    在这里插入图片描述

    删除整张表:

    delete from test(表名);
    
    • 1

    在这里插入图片描述

    总结: 到此为止,已经介绍了数据库的最基本的增删查改的操作,如有不足之处,欢迎指出!

  • 相关阅读:
    html5中怎么实现一张图片鼠标悬停变成另一张图片
    [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(1)
    Tensorboard的使用 ---- SummaryWriter类(pytorch版)
    高效偏振无关透射光栅的分析与设计
    Palantir,硅谷创业新黑帮?
    Golang练手算法
    NNDL 实验七 循环神经网络(3)LSTM的记忆能力实验
    【日常计算机问题】win11、win10解决公共WiFi认证不弹出的问题。电脑没有弹出认证界面。以广州图书馆i-guangdong;i广东为例
    基本数据类型和对应的包装类
    16.希尔排序
  • 原文地址:https://blog.csdn.net/qq_62905847/article/details/127875683