mysql必知必会 create_mysql必知必会--检 索 数 据

SELECT 语句

SQL语句是由简单的英语单词构成的。这些单词称

为关键字,每个SQL语句都是由一个或多个关键字构成的。大概,最经常

使用的SQL语句就是 SELECT 语句了。它的用途是从一个或多个表中检索

信息。

为了使用 SELECT 检索表数据,必须至少给出两条信息——想选择什

么,以及从什么地方选择。

检索单个列

我们将从简单的SQL SELECT 语句开始介绍

利用 SELECT 语句从 products 表中检索一个名为

prod_name 的列。所需的列名在 SELECT 关键字之后给出, FROM

关键字指出从其中检索数据的表名

未排序数据 如果没有

明确排序查询结果(下一章介绍),则返回的数据的顺序没有

特殊意义。返回数据的顺序可能是数据被添加到表中的顺序,

也可能不是。只要返回相同数目的行,就是正常的

如上的一条简单 SELECT 语句将返回表中所有行。数据没有过滤(过

滤将得出结果集的一个子集),也没有排序。以后几章将讨论这些内容

结束SQL语句 多条SQL语句必须以分号(;)分隔。MySQL

如同多数DBMS一样,不需要在单条SQL语句后加分号。但特

定的DBMS可能必须在单条SQL语句后加上分号。当然,如果

愿意可以总是加上分号。事实上,即使不一定需要,但加上

分号肯定没有坏处。如果你使用的是 mysql命令行,必须加上

分号来结束 SQL 语句

SQL语句和大小写 请注意,SQL语句不区分大小写,因此

SELECT 与 select 是相同的。同样,写成 Select 也没有关系。

许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有

列和表名使用小写,这样做使代码更易于阅读和调试。

不过,一定要认识到虽然SQL是不区分大小写的,但有些标识

符(如数据库名、表名、列名)可能不同:在MySQL 4.1及之

前的版本中,这些标识符默认是区分大小写的;在MySQL 4.1.1

版本中,这些标识符默认是不区分大小写的。

最佳方式是按照大小写的惯例,且使用时保持一致

使用空格 在处理SQL语句时,其中所有空格都被忽略。SQL

语句可以在一行上给出,也可以分成许多行。多数SQL开发人

员认为将SQL语句分成多行更容易阅读和调试

检索多个列

要想从一个表中检索多个列,使用相同的 SELECT 语句。唯一的不同

是必须在 SELECT 关键字后给出多个列名,列名之间必须以逗号分隔

当心逗号 在选择多个列时,一定要在列名之间加上逗号,但

最后一个列名后不加。如果在最后一个列名后加了逗号,将出

现错误

b7f72694d02a49e39895224cb9faf5ef.png

数据表示 从上述输出可以看到,SQL语句一般返回原始的、

无格式的数据。数据的格式化是一个表示问题,而不是一个

检索问题。因此,表示(对齐和显示上面的价格值,用货币

符号和逗号表示其金额)一般在显示该数据的应用程序中规

定。一般很少使用实际检索出的原始数据(没有应用程序提

供的格式)。

检索所有列

除了指定所需的列外(如上所述,一个或多个列), SELECT 语句还可

以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使

用星号( * )通配符来达到,如下所示:

e8efa6acfcb5229d4e010084ee993c06.png

如果给定一个通配符( * ),则返回表中所有列。列的顺序一般

是列在表定义中出现的顺序。但有时候并不是这样的,表的模

式的变化(如添加或删除列)可能会导致顺序的变化

使用通配符 一般,除非你确实需要表中的每个列,否则最

好别使用 * 通配符。虽然使用通配符可能会使你自己省事,不

用明确列出所需列,但检索不需要的列通常会降低检索和应

用程序的性能

检索未知列 使用通配符有一个大优点。由于不明确指定列

名(因为星号检索每个列),所以能检索出名字未知的列。

检索不同的行

正如所见, SELECT 返回所有匹配的行。但是,如果你不想要每个值

每次都出现,怎么办?例如,假如你想得出 products 表中产品的所有供

应商ID:

fbbc00414eafc599ab40fc92e5162a7c.png

421c63697b3058018b4ffef61a7ba05e.png

SELECT 语句返回14行(即使表中只有4个供应商),因为 products 表

中列出了14个产品。那么,如何检索出有不同值的列表呢?

解决办法是使用 DISTINCT 关键字,顾名思义,此关键字指示MySQL

只返回不同的值

d592c563eb17657bbf59e0bca996e1cd.png

17349640e2a44a7d453657ff8c244411.png

不能部分使用 DISTINCT DISTINCT 关键字应用于所有列而

不仅是前置它的列。如果给出 SELECT DISTINCT vend_id,

prod_price ,除非指定的两个列都不同,否则所有行都将被

检索出来

限制结果

SELECT 语句返回所有匹配的行,它们可能是指定表中的每个行。为

了返回第一行或前几行,可使用 LIMIT 子句。

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

不多于5行

LIMIT 5, 5 指示MySQL返回从行5开始的5行。第一个数为开始

位置,第二个数为要检索的行数。

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

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

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

将检索出第二行而不是第一行。

在行数不够时 LIMIT 中指定要检索的行数为检索的最大行

数。如果没有足够的行(例如,给出 LIMIT 10, 5 ,但只有13

行),MySQL将只返回它能返回的那么多行

MySQL 5的 LIMIT 语法 LIMIT 3, 4 的含义是从行4开始的3

行还是从行3开始的4行?如前所述,它的意思是从行3开始的4

行,这容易把人搞糊涂。

由于这个原因,MySQL 5支持 LIMIT 的另一种替代语法。 LIMIT

4 OFFSET 3 意为从行3开始取4行,就像 LIMIT 3, 4 一样

使用完全限定的表名

迄今为止使用的SQL例子只通过列名引用列。也可能会使用完全限定

的名字来引用列(同时使用表名和列字)。请看以下例子:

6053286dbb29091135b6b94117ac11e0.png

表名也可以是完全限定的,如下所示:

981ec975af19257ac710074c577cc67b.png

这条语句在功能上也等于刚使用的那条语句(当然,假定 products

表确实位于 crashcourse 数据库中)

有一些情形需要完全限定名。现在,

需要注意这个语法,以便在遇到时知道它的作用

小结

本章学习了如何使用SQL的 SELECT 语句来检索单个表列、多个表列

以及所有表列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 配置备忘

最近开始做了一些项目,但是不是总能在一个地方开工,又考虑到工作量大,要和别人一块完成,代码托管就不得不进行了。之前用了visual studio online,毕竟tfs的那一套还是很熟悉的。不过坑爹的是,虽说china g wall 没有封掉…

三层架构与设计模式思想部署企业级数据库业务系统开发

1. 三层架构介绍 1.1关于架构 架构这个词从它的出现后,就有许许多多的程序员、架构师们激烈地讨论着它的发展,但是架构一词的出现,却是随着三层架构的出现才出现的。当然,目前应用三层架构开发也正是业界最关注的主题。那么这里我们来看看单层…

java compliance_java complier compliance level问题引发的思考

http://blog.csdn.net/shan9liang/article/details/17266519**********************************************问题起源:今天再在ESB调用WebService测试,需要在jboss上部署一个ejb项目(ejb发布的webservice),过去部署好好的代码,这…

Codeforces Round #301 (Div. 2) C. Ice Cave BFS

C. Ice Cave Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/problem/CDescription You play a computer game. Your character stands on some level of a multilevel ice cave. In order to move on forward, you need to descend one…

字符串匹配的KMP算法(转)

转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个…

BNUOJ 1207 滑雪

滑雪 Time Limit: 1000msMemory Limit: 65536KBThis problem will be judged on PKU. Original ID: 108864-bit integer IO format: %lld Java class name: MainMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向…

zabbix2.2入门教程之编译安装(一)

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。测试环境:centos6.4zabbix2.2…

数学图形(1.35)Kappa curve

不知道这个曲线和那个运动品牌背靠背有什么关系.阿迪原先的商标是个三叶草,难道背靠背也是由数学图形来的? 以下是维基上的解释. In geometry, the kappa curve or Gutschovens curve is a two-dimensional algebraic curve resembling the Greek letter ϰ (kappa). The kapp…

MeasureSpec学习 - 转

2019独角兽企业重金招聘Python工程师标准>>> 在自定义View和ViewGroup的时候,我们经常会遇到int型的 MeasureSpec 来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。 这个大小的模式,有点难以理…

Modernizr使用指南

很久很久以前,我们总有要自己写代码检测,浏览器对某种特性的支持情况。比如:现在要写代码判断浏览器是否支持canvans,大致的代码如下: window.onload function () {if (isSupportCanvas()) {alert("support canv…

C#反射基础理解1(转)

反射提供了封装程序集、模块和类型的对象(Type类型) 可以使用反射动态的创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后,可以调用类型的方法或访问其字段和属性 。 总之,有了…

java sql超过32k_db2 clob类型如何能存储大于32k的字符串

#include #include int ascii[256]; // 字符出现次数,一共只有256个ascii码int main(){int i,r,j;char str[1024];printf("输入字符串\n");for (i 0; i < 256; i )ascii[i] 0; // 清零scanf("%s",str);r strlen(str);for (i 0; i < r; i ){ascii…

Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!

从cocos2dx 3.2项目打包成apk安卓应用文件&#xff0c;搭建安卓环境的步骤有点繁琐&#xff0c;但搭建一次之后&#xff0c;以后就会非常快捷&#xff01; &#xff08;涉及到3.1.1版本的&#xff0c;请自动对应3.2版本&#xff0c;3.x版本的环境搭建都是一样的&#xff09; 一…

java微信web支付开发_微信支付java开发详细第三方支付功能开发之支付宝web端支...

这段时间把支付基本搞完了&#xff0c;因为做的过程中遇到许多问题&#xff0c;特地记录下来&#xff0c;同时方便其他java coder&#xff0c;废话少说&#xff0c;下面开始。整体思路&#xff1a;在后台&#xff0c;根据参数创建支付宝客户端AlipayClient&#xff0c;发送参数…

mysql 最值复杂查询_MySQL高级查询

我们使用SQL查询不能只使用很简单、最基础的SELECT语句查询。如果想从多个表查询比较复杂的信息&#xff0c;就会使用高级查询实现。常见的高级查询包括多表连接查询、内连接查询、外连接查询与组合查询等&#xff0c;今天我们先来学习最常用、面试也很容易被问到的连接查询。我…

java对象和json对象之间互相转换

2019独角兽企业重金招聘Python工程师标准>>> import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class MainClass { public static…

SQL Server :理解数据记录结构

原文:SQL Server &#xff1a;理解数据记录结构在SQL Server &#xff1a;理解数据页结构我们提到每条记录都有7 bytes的系统行开销&#xff0c;那这个7 bytes行开销到底是一个什么样的结构&#xff0c;我们一起来看下。 数据记录存储我们具体的数据&#xff0c;换句话说&#…

京东云擎提供了免费的wordpress一键安装功能了

1. 京东云擎(http://jae.jd.com)提供了免费的个人博客WordPress一键安装功能了&#xff0c;如下图&#xff0c;给开发者分享福利&#xff01; 免费的应用&#xff0c;提供了源码&#xff0c;提供了数据库&#xff1a; 我之前把文章发到首页&#xff0c;遭到了封杀&#xff01;本…

Distinct源码分析

以前比较两个List数据&#xff0c;筛选出所需要的数据时候&#xff0c;一直套两层for循环来执行。用到去重(Distinct)的时候&#xff0c;这两个需求其实都是一样的&#xff0c;都是需要比较两个集合&#xff0c;查看了下它的源码&#xff0c;里面确实有值得借鉴的地方。 先附上…

java语言 编译原理_【Java学习】深入分析Java的编译原理

在《Java代码的编译与反编译》中&#xff0c;有过关于Java语言的编译和反编译的介绍。我们可以通过javac命令将Java程序的源代码编译成Java字节码&#xff0c;即我们常说的class文件。这是我们通常意义上理解的编译。但是&#xff0c;字节码并不是机器语言&#xff0c;要想让机…