• MySQL数据表内容查询(一)


    MySQL数据表内容查询(一)

    1 内容

    数据表内容的查询主要就是DQL(数据库查询语言的使用),主要使用SELECT关键字去进行查询操作

    2 使用

    2.1 不带筛选条件的(没有where)

    2.1.1 基本语法

     SELECT 字段名1,字段名2,字段名3...字段名n FROM student;
     /*
     多个字段名之间用英文逗号隔开
     想要查全部字段,直接SELECT *即可
     想要查单个字段,直接SELECT 单个字段的名称
     想要查多个字段,直接SELECT 字段1,字段2,字段3
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.1.2 不同情况

    a 查全部字段
    a.1 示例sql语句
    SELECT * FROM student;
    /*
    查询student数据表里面全部的字段信息
    */
    
    • 1
    • 2
    • 3
    • 4
    a.2 示例sql语句运行截图

    在这里插入图片描述

    b 查一个字段
    b.1 示例sql语句
    SELECT name FROM student;
    
    • 1
    b.2 示例sql语句运行截图

    在这里插入图片描述

    c 查多个字段
    c.1 示例sql语句
    SELECT name,age FROM student;
    
    • 1
    c.2 示例sql语句运行截图

    在这里插入图片描述

    2.2 带筛选条件的

    2.2.1 基本语法

     SELECT 字段名1,字段名2,字段名3...字段名n FROM student
     WHERE 字段名称 符号 值;
     /*
     多个字段名之间用英文逗号隔开
     想要查全部字段,直接SELECT *即可
     想要查单个字段,直接SELECT 单个字段的名称
     想要查多个字段,直接SELECT 字段1,字段2,字段3
     条件筛选的关键字为WHERE,其得到的结果必然是布尔类型
     且执行顺序的是从左往右执行
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.2.2 不同情况

    a 查全部字段
    a.1 示例sql语句
    SELECT * FROM student;
    WHERE name='张三';
    /*
    查询student数据表里面名字为张三的所有字段信息
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    a.2 示例sql语句运行截图

    在这里插入图片描述

    b 查一个字段
    b.1 示例sql语句
     SELECT name FROM student
     WHERE age=12;
     /*
     注意sql语句是以分号结尾,没有分号结尾的话回车是没有任何效果的
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    b.2 示例sql语句运行截图

    在这里插入图片描述

    c 查多个字段
    c.1 示例sql语句
    SELECT name,age FROM student
    WHERE age=12;
    
    • 1
    • 2
    c.2 示例sql语句运行截图

    在这里插入图片描述

    2.3 运算符

    2.3.1 算术运算符

    a 内容

    对返回的结果进行了运算,不要对null值进行计算,因为null值计算没有任何意义,所以我们在设置表的时候最好加上一个非空约束

    含义运算符
    加法运算+
    减法运算-
    乘法运算*
    除法运算/

    注意:算术表达式一般是对数值进行运算

    b 示例sql语句
    SELECT name,age+10 FROM student;
    
    • 1
    c 示例sql语句运行截图

    在这里插入图片描述

    2.3.2 比较运算符

    a 内容

    通常与where搭配使用,用于筛选数据

    运算符含义
    =等于
    <>不等于
    >=大于等于
    >大于
    <=小于等于
    <小于
    b 示例sql语句
     SELECT * FROM student
     WHERE age<>12;
     /*
     <>是不等于的意思,会把年龄不是12岁的所有学生的信息显示出来
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

    2.3.3 逻辑运算符

    a 内容

    多个条件同时满足,通常与比较运算符、where语句搭配使用

    运算符含义示例示例解析
    AND并且条件a AND 条件B会把同时满足条件a和条件b的信息查询出来
    OR或者条件a OR 条件B查询出满足条件a或者条件b的信息

    注意: AND的优先级别高于OR,因此AND和OR一起连用时,建议在OR的部分加上()括号

    b 示例sql语句
    SELECT * FROM student
    WHERE student_id<=2203 AND (age=12 OR age=19);
    /*
    AND和OR连用时,要在OR的部分加上(),避免优先级的影响
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

    2.4 谓词

    2.4.1 前提

    谓词就是返回值为真值的函数,真值分为true,false,unknown这三种

    2.4.2 Like(模糊查询)

    a 前提

    Like通常是用于字符串类型的数据的模糊查找,因此like里面要用单引号包起来

    需要与相应的字段一起使用

    与Like搭配使用的特殊符号含义
    _任意一个字符(类型任意)
    %任意个字符(数量任意,类型任意)
    b 示例sql语句
    SELECT * FROM student
    WHERE name LIKE '_三%';
    /*
    会显示出第二个字符为三的所有学生的信息(该学生的名字的字符串长度>=2)
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

    2.4.3 BETWEEN(范围查询,两端包含)

    a 前提

    范围查询,直接放置于字段的后面,其范围是闭区间的(两端包含的)

    b 示例sql语句
    SELECT * FROM student
    WHERE age BETWEEN 12 AND 17;
    /*
    会显示出年龄在[12,17]这个区间内的所有的学生信息
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

    2.4.4 is null(判断是否为null)

    a 前提

    这个是用于查找表中指定字段为null值的数据信息,我们要对这些null值数据进行处理,因为在数据库中null值的危害是很大的

    b 示例sql语句
    SELECT * FROM student
    WHERE name IS NULL;
    /*
    会显示出name的值为null的所有学生的信息
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

    2.4.5 is not null(判断是否不为null)

    a 前提

    把不为null的部分筛选出来,用于做下一步的逻辑出来,建议IS NOT NULL全大写,因为SQL语句的规范就是这样要求的。

    b 示例sql语句
    SELECT * FROM student
    WHERE name IS NOT NULL;
    /*
    会显示出name的值不为null的所有学生的信息
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

    2.4.5 in(OR运算符的简便写法)

    a 前提

    想要查询一个字段为某几个值的信息的话,用OR写起来特别麻烦(超过三个的话),看起来也挺长的

    因此就有了in这个谓词用于简化超过三个条件(都是或者关系)的OR的写法

    b 示例sql语句
    SELECT * FROM student
    WHERE name in('张三','刘备','李四');
    /*
    会显示name为张三或者刘备或者李四的学生的所有信息
    这个in里面的书写顺序和查询得到的顺序无关(查询的顺序默认按照主键修饰的字段进行升序展示)
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    c 示例sql语句运行截图

    在这里插入图片描述

    2.5 补充

    2.5.1 列设置别名

    a 前提

    为列设置名字,可以让最终的展示效果符合阅读习惯,也可以用于后面的分组操作(让后面的操作变得更加简便)

    如果是中文别名,需要给中文加上英文状态下的单引号

    b 示例sql语句
    SELECT student_id AS '学生编号',name AS '学生姓名',age AS '年龄'
    FROM student
     WHERE name IS NOT NULL;
    /*
    展示的首行依次为学生编号、学生姓名、年龄
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    c 示例sql语句运行截图

    在这里插入图片描述

    2.5.2 从结果中删除重复行

    a 前提

    主要是用于统计有多少种不同的种类(去除重复数据),只能操作单行数据

    它也会和聚合函数一起搭配使用(放入括号里面去)

    b 示例sql语句
    SELECT DISTINCT age
    FROM student;
    /*
    会每种年龄只显示一次
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    c 示例sql语句运行截图

    在这里插入图片描述

  • 相关阅读:
    基于某评论的TF-IDF下的LDA主题模型分析
    从ORB-SLAM2到DynaSLAM的编译 v1.0版本
    GEE:Bfast时间序列扰动检测
    2.7 PE结构:重定位表详细解析
    马斯克热搜体质无疑,称已将大脑上传云端,却遭网友热议!
    leetcode 172-阶乘后的零
    Flask1.1.4 Werkzeug1.0.1 源码分析:启动流程
    e智团队实验室项目-第二周-卷积神经网络的学习
    打印星堆(for循环嵌套实例)
    use renv with this project & create a git repository
  • 原文地址:https://blog.csdn.net/SSS4362/article/details/126281142