首页 > 数据库 >使用MySQL之检索数据

使用MySQL之检索数据

时间:2024-10-13 19:59:33浏览次数:7  
标签:检索 name products MySQL LIMIT prod 数据

检索单个列

比如:

SELECT prod_name FROM products;

输出如下:

img

此时数据没有过滤(过滤将得出结果集的一个子集),也没有排序。

检索多个列

比如:

SELECT prod_id, prod_name, prod_price FROM products;

输出如下:

img

从上述输出可以看到,SQL语句一般返回原始的、无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。因此,表示(对齐和显示上面的价格值,用货币符号和逗号表示其金额)一般在显示该数据的应用程序中规定。一般很少使用实际检索出的原始数据(没有应用程序提供的格式)。

注意

当心逗号!!!

在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。
img

检索所有列

比如:

SELECT * FROM products;

输出如下:

img

如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的顺序。但有时候并不是这样的,表的模式的变化(如添加或删除列)可能会导致顺序的变化。

注意:

  1. 使用通配符: 一般,除非你确实需要表中的每个列,否则最
    好别使用*通配符。虽然使用通配符可能会使你自己省事,不
    用明确列出所需列,但检索不需要的列通常会降低检索和应
    用程序的性能。

  2. 检索未知列: 使用通配符有一个大优点。由于不明确指定列
    名(因为星号检索每个列),所以能检索出名字未知的列。

检索不同的行

使用DISTINCT关键字,此关键字指示MySQL只返回不同的值。

比如:

SELECT DISTINCT vend_id FROM products;

输出如下:

img

如果使用DISTINCT关键字,它必须直接放在列名的前面。

注意:

如果给出SELECT DISTINCT vend_id, prod_price,结果会是怎么样呢?

select distinct vend_id, prod_price from products;

输出如下:

img

  • 如果两行的 vend_id 和 prod_price 都相同,那么这些行被视为重复,数据库只会返回其中的一行。

  • 如果两行的 vend_id 相同但 prod_price 不同,或 vend_id 不同但 prod_price 相同,这些行被视为不同,都会被返回。

限制结果

SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。

  • 比如:

    select prod_name from products limit 5;
    

    输出如下:

    img

    此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回不多于5行。

  • 为得出下一个5行,可指定要检索的开始行和行数,如下所示:

    select prod_name from products limit 5, 5;
    

    输出如下:

    img

    LIMIT 5, 5指示MySQL返回从行5(行5其实是第6行,因为第一行为行0)开始的5行。第一个数为开始的位置,第二个数为要检索的行数。

所以,

  • 带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。

  • 带两个值的LIMIT可以指定从行号为第一个值的位置开始。

注意

  1. 行0: 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。

  2. 在行数不够时: LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。

  3. MySQL 5的LIMIT语法: LIMIT 3, 4的含义是从行4开始的3行还是从行3开始的4行?如前所述,它的意思是从行3开始的4行,这容易把人搞糊涂。 由于这个原因,MySQL 5支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

    比如:

    select prod_name from products limit 3 offset 4;
    

    输出如下:

    img

使用完全限定的表名

  • 迄今为止使用的SQL例子只通过列名引用列。也可能会使用完全限定的名字来引用列(同时使用表名和列字)。

    比如:

    select products.prod_name from products;
    

    输出如下:

    img

    这条SQL语句在功能上等于select prod_name from products;,但这里指定了一个完全限定的列名。

  • 表名也可以是完全限定的,

    比如:

    select products.prod_name from crashcourse.products;
    

    这条语句在功能上也等于刚使用的那条语句(当然,假定products表确实位于crashcourse数据库中)。

标签:检索,name,products,MySQL,LIMIT,prod,数据
From: https://www.cnblogs.com/hisun9/p/18462859

相关文章

  • 高校宿舍管理系统的设计与实现(Java+ssm+万字文档+系统源码+数据库 +调试)
    摘 要本文是对高校宿舍管理系统的概括总结,主要从开题背景,课题意义,研究内容,开发环境与技术,系统分析,系统设计,系统实现这几个角度来进行本高校宿舍管理系统的阐述。高校宿舍管理系统运用Eclipse工具进行开发,使用Java语言进行编码,后台框架采用SSM框架(Spring框架、SpringMVC框......
  • 读数据工程之道:设计和构建健壮的数据系统06底层设计(下)
    1.数据问责制1.1.数据问责制意味着分配一个人来管理一部分数据1.1.1.负责人协调其他利益相关者的治理活动1.1.2.如果没有人对相关数据负责,那么管理数据质量就会很困难1.1.3.负责数据的人不一定是数据工程师1.1.4.负责人可能由软件工程师、产品经理或其他角色担任1.1.5......
  • 基于VUE+ssm框架的在线交友系统(Java+ssm+万字文档+系统源码+数据库 +调试)
    摘要本文介绍了在线交友系统的开发全过程。通过分析企业对于在线交友系统的需求,创建了一个计算机管理在线交友系统的方案。文章介绍了在线交友系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。本在线交友系统管理员功能有个人中心,用户......
  • 读数据工程之道:设计和构建健壮的数据系统03数据工程生命周期(上)
    1. 数据工程生命周期1.1. 数据领域正在经历新数据技术和实践的爆炸式增长,抽象程度和易用性不断提高1.2. 由于技术抽象程度的增加,数据工程师将越来越多地成为数据生命周期工程师,根据数据生命周期管理的原则来进行思考和操作1.3. 数据工程生命周期包括将原始数据成分转化......
  • WINCC7.5SP2报表练习1-增加大量数据记录,报表查询、快速导出查询结果
    这是分成两篇记录的学习笔记,这是第一篇,在新浪博客刚刚记录过,那边审查有点慢,时不时还会莫名其妙的清零,在这里也记录一次。最近现场提出要做报表功能,数据来自两种控制系统,施耐德M580和ABBAC900F,我不想在每一套控制系统上各做报表,加上ABBAC900F的上位机freelance报表功能有点弱(或......
  • 从小白到大神:快速掌握数据挖掘的学习路径!
    0前言数据分析的最关键部分是数据挖掘,啥是数据挖掘?普通人很难感知大海,更别说寻宝但对石油开采人员,大海有坐标。他们对地质勘探,分析地质构造,发现哪些地方可能有石油。然后用开采工具,深度挖掘,直到打到石油。大海、地质信息、石油对开采人员就是数据源、地理位置及分析结果。......
  • JAVA毕业设计189—基于Java+Springboot+vue的自动售水机管理系统(源代码+数据库+13000
    毕设所有选题:https://blog.csdn.net/2303_76227485/article/details/131104075基于Java+Springboot+vue的自动售水机管理系统(源代码+数据库+13000字论文+任务书)189一、系统介绍本项目前后端分离(可以改为ssm版本),分为用户、员工、管理员三种角色1、用户:注册、登录、......
  • MySQL中的数据类型有哪些?如何选择合适的数据类型来优化性能?
    MySQL中的数据类型丰富多样,它们主要分为以下几大类,并且每一类中又包含多种具体的数据类型:整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等,这些类型用于存储整数值,其范围和存储大小各不相同。例如,TINYINT占用1个字节,而BIGINT则占用8个字节。浮点数和定点数类型:FLO......
  • Oracle 删除表中的重复数据
    删除表中某列重复的数据,只保留最新或者最旧的一条;替换下列代码中的中文后即可使用。DELETEFROM 去重复的表WHERE IDIN( SELECT ID FROM (SELECTeol.*,row_number()over(partitionBYeol.去重字段ORDERBYeol.排序字段DESC)rn FROM去重复的表eol......
  • DAY3 MySQL学习笔记
    DAY3MySQL学习笔记DDL-表操作-数据类型MySQL中数据类型主要分为三类:数值型、字符串型、日期时间类型数值类型分类类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述TINTING1byte(-128,127)(0,255)小整数值SMALLINT2bytes(-32768,32767)(0,65536)大整数值MEDIUMINT3bytes......