MySQL数据库学习02: SELECT语句
声明:本篇文章大多数内容出自《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语句的更多相关文章
- MySQL数据库学习: 02 —— 数据库的安装与配置
MySQL安装图解 一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup. ...
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL使用查看表SELECT语句
来源:实验楼 本节实验中学习了 SELECT 语句的常用方法: 基本语法 数学符号条件 AND OR IN 通配符 排序 SQL 内置函数和计算 子查询与连接查询 输入命令,下载代码: git clo ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- MySQL数据库学习: 01 —— 数据库的概述
壹 概述 一 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件). 易混淆:人们常常用“数据库”这个词语来代表他们使 ...
- MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句)一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关 ...
随机推荐
- Wannafly挑战赛3 record
B 遇见 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 65536K,其他语言131072K64bit IO Format: %lld题目描述A和B在同一条路上,他们之间的距离为 k ...
- NNSZ OIers' Blog Archive
HWL:ssttkkl ,已经搬家到这个地址 NINGLONG:NINGLONG 愤鸟先飞: FNXF Syhien:13355936 ,已经搬家到这个地址 IDE:ThetaS TFW:TFX‘s ...
- c++对象在lua层的生命周期与内容扩展
前言 上一篇博客记录了 tolua++ 将 c++类型,变量,函数,以及对象导出到 lua 的过程,这篇博客就接着记录一下 c++对象的内存回收以及c++对象数据和方法在lua中的扩展. 首先 tol ...
- js 消抖(debounce)与节流(throttle)
前言 故事发生在与大创的又一次撕逼(日常)中,我方坚定的认为:作为社会主义接班人,节流与消抖的界限是明显的,是不容混肴的,是不可侵犯的!对方辩友坚持地觉得:界限是模糊的,行为是暧昧的,性别是可以忽视的 ...
- Android测试:Fundamentals of Testing
原文地址:https://developer.android.com/training/testing/fundamentals.html 用户在不同的级别上与你的应用产生交互.从按下按钮到将信息下载 ...
- JAVA-----基于POI实现对Excel导入
在日常项目开发中, 数据录入和导出是十分普遍的需求,因此,导入导出也成为了开发中一个经典的功能.数据导出的格式一般是excel或者pdf,而批量导入的信息一般是借助excel来减轻工作量,提高效率. ...
- Winform开发框架中工作流模块之申请单草稿处理
在我们开发工作流模块的时候,有时候填写申请单过程中,暂时不想提交审批,那么可以暂存为草稿,以供下次继续填写或者提交处理,那么这个草稿的功能是比较实用的,否则对于一些填写内容比较多的申请单,每次要重填写 ...
- IDEA定位到类的代码区域(查看类的源码)
经常需要查看某一个类中的成员变量和方法,那么怎么进入到这个类的源码区域呢?在IDEA中只需要使用快捷键: ctrl+shift+t 就可以快速定位到这个类的源码.
- Shell编程之文本处理
cut 截取自定列 可以按照某个字符进行分割,然后取出其中的指定列: [root@iz8vbbqbnh4ug2q9so5jflz logs]# --.txt /Dec/::: +] - /Dec/:: ...
- PHP成长之路之PHP连接MySql数据库(一)
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于W ...