• SQL必知会(二)-SQL查询篇(1)-检索数据


    第2课、检索数据

    SELECT:查询
    从一个或多个表中检索信息。

    1)检索单个列

    需求:从 Products 表中查询所有行的产品名称。

    SElECT prod_name
    FROM Products;
    
    • 1
    • 2

    输出结果:

    请添加图片描述

    2)检索多个列

    需求:从 Products 表中查询所有行的产品ID、名称和价格。

    SELECT prod_id,prod_name,prod_price
    FROM Products;
    
    • 1
    • 2

    输出结果:

    请添加图片描述

    3)检索所有列

    需求:从 Products 表中查询所有行的所有列。

    SELECT * FROM Products;
    
    • 1

    输出结果:

    请添加图片描述

    4)检索不同的值

    需求:检索 Products 表中所有产品供应商的 ID。

    SELECT vend_id
    From Products;
    
    • 1
    • 2

    输出结果:

    请添加图片描述

    DISTINCT:过滤重复的记录
    DISTINCT:过滤掉多余的重复记录只保留一条

    需求:检索 Products 表中所有产品供应商的 ID,并不重复出现相同的值。

    SELECT DISTINCT vend_id
    From Products;
    
    • 1
    • 2

    输出结果:

    请添加图片描述

    如果使用如下命令,则 DISTINCT 对 vend_id 和 prod_price 组合有两种不同的结果,并同时一起输出:

    SELECT DISTINCT vend_id, prod_price
    From Products;
    
    /*
    (个人思考)
    如果把语法中的 vend_id 和 prod_price 的位置互换一下:
    
    SELECT DISTINCT prod_price,vend_id
    From Products;
    
    1.从输出结果来看,就会发现:
    - DISTINCT 后的第一列会默认升序排序
    - 当 某个列检索得出不同值的个数是所有列中最多的,以该列输出不重复值为准。
    - 而其他列值依旧存在重复值。
    
    2.尝试执行其他代码,自己可以研究一下结果:
    SELECT DISTINCT vend_id,prod_name, prod_price
    From Products;
    
    SELECT DISTINCT vend_id, prod_price
    From Products 
    ORDER BY prod_price ASC;
    (DISTINCT vend_id 列排序失效,按 prod_price 升序排序)
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    输出结果:

    请添加图片描述

    5)限制结果

    TOP:最多返回的行数
    限制最多返回多少行。

    需求:只检索前5行数据。

    • SQL 语句:
    SELECT TOP 5 prod_name
    FROM Products;
    
    • 1
    • 2
    • 如果使用 DB2:
    SELECT prod_name
    FROM Products
    FETCH FIRST 5 ROWS ONLY;
    
    • 1
    • 2
    • 3
    • 如果使用 Oracle:
    SELECT prod_name
    FROM Products
    Where ROWNUM <=5; 
    
    • 1
    • 2
    • 3
    • 如果使用 MySQL、MariaDB、PostgreSQL 或者 SQLite:
    SELECT prod_name
    FROM Products
    LIMIT 5;
    
    • 1
    • 2
    • 3
    SELECT prod_name
    FROM Products
    LIMIT 5 OFFSET 5;
    -- 从第5行起的5行数据
    
    • 1
    • 2
    • 3
    • 4

    输出结果:

    请添加图片描述

    总结

    SELECT:查询

    SELECT 列
    FROM 表
    
    • 1
    • 2

    DISTINCT:过滤掉多余的重复记录只保留一条

    SELECT DISTINCT 列
    From 表;
    
    • 1
    • 2

    TOP:限制最多返回多少行

    SELECT TOP 行数 列
    FROM 表;
    
    • 1
    • 2
  • 相关阅读:
    RDS - 远程桌面服务
    ROS1云课→23turtlesim绘制小结(数学和编程)
    Java复习-25-单例设计模式
    【XSS & CSRF 】访问时篡改密码——以DVWA-High为例
    高考志愿选专业,如何分析自己的兴趣爱好?
    企业数字化进程的关键一步
    C++继承(多继承、菱形继承?)
    Django 使用VScode 创建工程
    市场调查中的信度和效度分析原理及python实现示例
    【机器学习-周志华】学习笔记-第十五章
  • 原文地址:https://blog.csdn.net/chen1083376511/article/details/134295441