声明:本篇文章大多数内容出自《MySQL必知必会》,仅供学习参考,勿作他用!

第4章 检索数据

4.1 SELECT语句

SELECT子句用于检索数据库中的表数据。它几乎是MySQL中最常用的语句。我们一定要掌握好。为了能够检索表数据,必须至少给出两条信息 —— 想选择什么(表字段,即列),以及从什么地方选择(哪张表)。

4.2 检索单个列

输入: select prod_name from products;

分析:

上述语句利用SELECT语句从products表中检索一个名为prod_name的列。选择什么 —— prod_name列;从什么地方选 —— products表。

形式: SELECT 列名 FROM 表名;  (列应该是表中的列)

输出:    如图

注释:

1 你可能得到不同的顺序。这很正常。如果没有排序的话,顺序是随机的。只要数据正确即可。

2 每一条SQL语句都应该以分号(英文)结尾。一 为了规范,二 如果是命令行则必须如此。

3 无论何种编程语言,语法中的符号都是英文下的(半角输入法)。以后不再强调。

4 大小写的说明。MySQL中的SQL语句不区分大小写。但是,为了规范,一般将关键字大写,其它标识符小写。如 SELECT prod_name FROM products;

我为了节省书写博文的时间,便一律采用小写了,请见谅。

4.3 检索多个列

要想从一个表中检索多个列,使用相同的SELECT语句。惟一的不同即SELECT关键字后跟多个列名,且这些列名之间要用逗号(英文的)隔开。

输入:  select prod_id, prod_name, prod_price from products;

分析: 没啥分析的。

输出:

4.4 检索所有列

格式:    SELECT * FROM 表名; 或者SELECT 列名1, 列名2... FROM 表名;

输入:

select * from products;

或者

select prod_id, vend_id, prod_name, prod_price, prod_desc from products;

分析:

第一种方式采用了通配符*代表了所有列。第二种方式将所有列的列出了。

如果不是真的需要,不要为了方便使用*查询。这样会检索到不需要的列,从而增加时间。

输出:

方式一

方式二

4.5 检所不同的行

正如所见,SELECT语句默认会返回所有匹配的行。而如果我们不想每个值每次都出现,怎么办?加入你想得出products表中的供应商的id

输入: select vend_id from products;

输出:

我们发现,相同的id多次出现。如果我们想解决这一问题,那么就需要DISTINCT关键字。意思: 独特的,不同的。

格式: SELECT DISTINCT 列名 FROM 表名;

输入:

select distinct vend_id from products;

分析:

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

    如果DISTINCT后面接多个列名,则无效。

输出:

4.6 限制结果

SELECT语句返回所有匹配的行,有时可能是指定表中所有的行。为了返回第一行或前几行,可使用LIMIT关键字。

格式: SELECT 单列名或多个列名 FROM 表名 LIMIT 显示的结果行数;

输入:    select prod_name from products limit 5;

分析:    LIMIT 5指示MySQL返回的结果行数不得多于5条。

输出:

如果想要显示下一个5行,可以指定要检索的开始行和行数。如下所示:

格式:    SELECT 单列名或多个列名 FROM 表名 LIMIT 开始的索引(第一行的索引为0,第二行的索引为1...), 显示的结果行数,

输入: mysql> select prod_name from products limit 0,5;

分析:

limit A, B。从行5,即索引为0,结果的第1行开始获取5行, 限制显示条数不得多于B,

输出:

注释

1 行0: 如果是LIMIT A, B的格式。那么检索出来的第一行为行0,即索引为0,而非1. 如LIMIT 1, 1检索出第二行而非第一行。

2 MySQL5的LIMIT语法:    LIMIT A, B的格式很容易令人混淆,所以MySQL5.0支持LIMIT的另一种语法。LIMIT 结果显示条数 OFFSET 索引(行N);

OFFSET是偏移量的意思,即索引,行N。

输入: select prod_name from products limit 5 offset 3;

分析:

limit 5 offst 3; 限制显示结果条数为5,索引为3,从行3即第四行开始获取。

输出:

4.7 使用完全限定名

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

格式: 完全限定的列名 —— 列名.表名

输入:    select distinct products.vend_id from products;

分析:    结果与select distinct vend_id from products; 一致。

输出:

表名也可以完全限定。

格式: 数据库名.表名

输入:     select distinct vend_id from mysqlcrashcourse.products;

输出:

有一些情形下需要使用完全限定名,这在之后的博文中会介绍。现在,我们需要注意这个语法,以便日后的学习与使用。

4.8 小结

本章学习了如何使用SELECT语句检索表的单列、多列数据以及所有列。下一篇讲讲解如何排序检索出来的数据。

MySQL数据库学习02: SELECT语句的更多相关文章

  1. MySQL数据库学习: 02 —— 数据库的安装与配置

                             MySQL安装图解 一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup. ...

  2. MYSQL数据库学习笔记1

      MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...

  3. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. MySQL使用查看表SELECT语句

    来源:实验楼 本节实验中学习了 SELECT 语句的常用方法: 基本语法 数学符号条件 AND OR IN 通配符 排序 SQL 内置函数和计算 子查询与连接查询 输入命令,下载代码: git clo ...

  6. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  8. MySQL数据库学习: 01 —— 数据库的概述

    壹 概述 一 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件). 易混淆:人们常常用“数据库”这个词语来代表他们使 ...

  9. MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句)一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码)二.SQL语句:    数据定义语言DDL  用来定义数据库.表.列,关 ...

随机推荐

  1. 河南省第八届ACM省赛---引水工程

    引水工程 时间限制:2000 ms  |  内存限制:65535 KB 难度: 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程,事 ...

  2. php RAS加密类代码

    通过openssl实现的签名.验签.非对称加解密,需要配合x.509证书(如crt和pem)文件使用. <?php /** * RSA算法类 * 签名及密文编码:base64字符串/十六进制字符 ...

  3. Oracle 每天自动生成AWR报告

    经验丰富的老员工希望能够每天为数据库生成1个AWR报告,以便于后期分析数据库的性能变化,手动生成太麻烦,查了一下资料,发现可以自动生成,过程如下. 数据库环境:11gR2 RAC(双节点) AWR报告 ...

  4. S2b只适合于电商吗?

    万物互联时代,任何产业蓬勃发展都离不开互联网,从B2M.B2B.B2C.C2C.M2M,层出不穷的商业模式都让人眼花缭乱,最近还推出了s2b这个全新的模式. S代表着大的供应平台,它将更好地赋能给更多 ...

  5. 【微信小程序开发】快速开发一个动态横向导航模板并使用

    目标:做个横向导航,可以横向滚动. 思路:使用scroll-view组件,可实现横向滚动功能.scroll-view内包含一个动态的view列表,代表导航的每一项,导航要接收动态数组,然后使用列表展示 ...

  6. Linux 容器 vs 虚拟机 —— 谁更胜一筹

    自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 – 应用程序与操作系统 ...

  7. Java-----关于eclipse导入项目发生的问题及解决办法

    今天通过eclipse导入了几个项目,项目名出现红叉,对于我这样的强迫症来说是无法容忍的,故现做总结,遇到同学可按照以下方法来操作. 改动的地方主要是两个方面: 1.Tomcat版本问题. 此问题是由 ...

  8. 某pdf转word v6.3.0.2算法分析

    某pdf转word v6.3.0.2算法分析 [文章标题]某pdf转word v6.3.0.2算法分析 [文章作者]jieliuhouzi[原版下载]www.pdfcword.cn [保护方式]序列号 ...

  9. 《Qt on Android核心编程》介绍

    <Qt on Android核心编程>最终尘埃落定.付梓印刷了. 2014-11-02更新:china-pub的预售链接出来了.折扣非常低哦. 封面 看看封面的效果吧,历经几版,最终就成了 ...

  10. AB串

    题目: 给定n个A和2n个B.用这些字符拼成一个字符串.要求这个串的全部前缀和后缀B的个数始终不少于A. (一个字符串的前缀是仅仅从开头到某个位置为止的子串,后缀是仅仅从某个位置到结尾的子串). 输入 ...