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 没有封掉…

三、 UIView封装的简单动画

l 在iOS中想实现一些简单的动画效果(平移、缩放、旋转),特别简单 l 你只需要告诉iOS系统:哪些代码造成的改变需要使用动画效果就可以了 [UIView beginAnimations:nil context:nil]; ……需要执行动画效果的代码…… [UIView c…

mysql集群怎么实现状态机_分布式中的状态机

全局锁在系统访问单个资源时或多或少都会要使用到锁,如Java的Lock等,但多个系统访问资源,或在集群中各个实例需要访问资源时,就需要建立全局的锁,这里讲三种全局锁的方法。数据库利用ACID使用关系型数据库的ACID可以创…

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

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",我想知道,里面是否包含另一个…

java游戏运行环境_Java运行环境

一、计算机存储单元位(bit): 一个数字0或者一个数字1,代表一位字节(Byte): 每逢8位是一个字节,计算机中数据存储的最小的单位1 Byte 8bit通常的换算单位:1KB1024B1MB1024KB1GB1024MB...二、java语言的跨平台性JVM: java虚拟机&…

logcat使用

做android有些日子了,只是对主要的logcat的具体使用方法还是非常模糊,今天有空,学习一下。 logcat能够在adb中使用,也能够直接在命令行下使用。 logcat [options] [filterspecs] logcat的选项包含: -s 默认…

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喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向…

eclipse的java帮助文档_java在Eclipse中文apidoc帮助文档导入.doc

今天一下午都在整java的api。我的目标是在eclipse平台中用鼠标点击java的api就会自动显示出中文的注释。并且能在help中方便地搜索java的api。 这其实是使用bada开发平台后留下的后遗症。最终结果是没有得到满意答案,发现最方便的方法还是另外开一个chm中文api文档。…

1477: 青蛙的约会

1477: 青蛙的约会 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 261 Solved: 164[Submit][Status][Discuss]Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们…

altium designer 自动扇出功能

http://wenku.baidu.com/link?urlUJLUQWqm2KwzQzcWxhgsL-Xk4wcUBl-TIB0GAWVD9lC2jrDiRHin0cln-4fMiK1Ku934CvlB-tV7FGEcXzfQL6uC4M58TpnZYCPlbfA4XgW转载于:https://www.cnblogs.com/asulove/p/3836247.html

elasticsearch java_java Elasticsearch详细介绍及使用实例分析

集群健康检查取得健康状态GET /_cat/health?v返回:epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent1535248805 10:00:05 elasticsearch yellow 1 1 1 1 0 0 1 0 - 50…

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 来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。 这个大小的模式,有点难以理…

ffmpeg 截图 java_Java Web 中使用ffmpeg实现视频转码、视频截图

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器.多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。ffmpeg视频采集功…

Modernizr使用指南

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

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

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