《MySQL必知必会》检索数据,排序检索数据

1、检索数据

1.1 select 语句

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

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

1.2 检索单个列

select prod_name
from products;



(此时,检索得到的数据并未进行排序。)

MySQL执行多条SQL语句,结束每条SQL语句时,必须加上“ ; ”分隔,尽管这是单条SQL语句,你加上也可以执行,但其他部分的DBMS却可能需要单条SQL语句也需要加上“ ; ”才可以执行,为了代码的可复用性,培养这一习惯十分重要。

MySQL4.1版本后,SQL语句是不区分大小写的。大小写这取决于个人习惯。

在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。

1.3 检索多个列

要想从一个表中检索多个列,使用相同的SELECT语句。唯-的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔(注意:最后一个列名不需要加逗号)。

select prod_name , prod_price
from products;

1.4检索所有列

select *
from products;

所有列用(*)通配符来表示。

给出的列的顺序按照表结构中的列顺序展示数据。

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

通过*通配符可以检索到未知列名的列

1.5检索不同的行

使用distinct关键字指示MySQL只返回不同的值,排除掉相同的值。

distinct关键字必须放在列名的前面

select distinct prod_price
from products;

不能部分使用distinct distinct关键字应用于所有列不仅是前置它的列。如果给出select distinct vend id,prodprice,除非指定的两个列都不同,否则所有行都将被检索出来。

1.6 限制显示结果

select prod_name , prod_price
from products limit 5;

使用关键字 limit , 限制只显示 5 行数据。

select prod_name , prod_price
from products limit 5 ,5;

可以限制开始行 和 显示行数。上图表示显示从第6行数据开始,显示5 行数据(0表示第1行数据,5即表示第6行数据)。

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

MySQL 5 后,还有一种 limit 替代语法 , limit 3 offset 4 等同于 limit 4 , 3 ;意为从第5行开始取3行数据。

1.7 使用完全限定的表名(库名)

使用 “ . ” 指定

select products.prod_name
from mydb.products;

效果等同于

select prod_name
from products;

products表在 mydb 数据库中 ,prod_name 列在 products 表中。这样使用可以明确指定数据库,表。遇上不同库中相同表名,列名时,可以派上用场。

2、排序检索数据

2.1 排序数据

使用关键字 order by

select vend_name
from vendors
order by vend_name;

vend_name 以字母顺序排序数据。

2.2 按多个列排序

select prod_name , prod_price
from products
order by prod_price , prod_name;

按价格排序,出现相同价格时,再按名称字母顺序排序。如果价格不相同,则不会按名称字母顺序排序。

2.3 指定排序方向

select prod_name , prod_price
from products
order by prod_price desc;

使用关键字 DESC 表示 降序排序方向,默认是升序排序方向(ASC)一般不需要指定。

select prod_name , prod_price
from products
order by prod_price desc,prod_name;

desc 并未指定到 prod_name 列,则prod_name 列还是按照升序排序显示数据结果。

同理, 在多个列上降序排序如果想在多个列上进行降序排序,必须对每个列指定DESC关键字

在字典( dictionary )排序顺序中,A被视为与a相同,这是MySQL(和大多数数据库管理系统)的默认行为。但是,许多数据库管理员能够在需要时改变这种行为(如果你的数据库包含大量外语字符,:可能必须这样做)。这里,关键的问题是,如果确实需要改变这种排序顺序,用简单的ORDER BY子句做不到。你必须请求数据库管理员的帮助。

order by 可以和 limit 组合使用

select prod_name , prod_price
from products
order by prod_price desc
limit 3;



如果使用order by 和 limit 组合,limit 必须在 order by 子句之后

《MySQL必知必会》检索数据,排序检索数据(select ,* ,distinct ,limit , . , order by ,desc)的更多相关文章

  1. 【SQL必知必会笔记(2)】检索数据、排序检索数据

    上个笔记中介绍了一些关于数据库.SQL的基础知识,并且创建我们后续练习所需的数据库.表以及表之间的关系,从本文开始进入我们的正题:SQL语句的练习. 文章目录 1.检索数据(SELECT语句) 1.1 ...

  2. MySql必知必会实战练习(三)数据过滤

    在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...

  3. 《MySQL必知必会》过滤数据,数据过滤(where ,in ,null ,not)

    <MySQL必知必会>过滤数据,数据过滤 1.过滤数据 1.1 使用 where 子句 在SEL ECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤. WHERE子句在表名(FR ...

  4. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  5. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  6. mysql必知必会系列(一)

    mysql必知必会系列是本人在读<mysql必知必会>中的笔记,方便自己以后查看. MySQL. Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据 ...

  7. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  8. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  9. mysql 必知必会总结

    以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...

随机推荐

  1. epic游戏平台如何启用认证器应用程序/二次验证码/谷歌身份验证器?

    1.登陆epic游戏平台,找到二次验证绑定界面 登陆https://www.epicgames.com/store/zh-CN/, 点右上角用户头像-[账户]. 之后点-[密码与安全] 在[双重验证] ...

  2. linux实现shell脚本监控磁盘内存达到阈值时清理catalina.out日志

    想在服务器上写一个shell脚本,在磁盘使用率达到80%时,自动清理掉一些没有用的日志文件,根据这个想法,在生产环境上写了一个以下脚本,按照该流程,可实现在linux环境做一个定时任务来执行shell ...

  3. 21天学通PythonPDF高清完整版免费下载|百度云盘

    百度云盘:21天学通PythonPDF高清完整版免费下载 提取码:nqa9 豆瓣评分: 书籍封面: 内容简介  · · · · · · <21天学通Python>全面.系统.深入地讲解了P ...

  4. 花了一个月的时间在一个oj网站只刷了这些题,从此入门了绝大多数算法

    如果你想入门算法,那么我这篇文章也许可以帮到你. oj网站有这么多,当然还有其他的.我当初是在hdu上面刷的,不要问我为什么,问就是当时我也是一个新手,懵懵懂懂就刷起来了.点这里可以进入这个网站htt ...

  5. Day17_购物车

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 注:实验 ...

  6. Python网络编程基础 PDF 完整超清版|网盘链接内附提取码下载|

    点此获取下载地址提取码:y9u5 Python网络编程最好新手入门书籍!175个详细案例,事实胜于雄辩,Sockets.DNS.Web Service.FTP.Email.SMTP.POP.IMAP. ...

  7. python绝技:运用python成为顶级黑客|中文pdf完整版[42MB|网盘地址附提取码自行提取|

    Python 是一门常用的编程语言,它不仅上手容易,而且还拥有丰富的支持库.对经常需要针对自己所 处的特定场景编写专用工具的黑客.计算机犯罪调查人员.渗透测试师和安全工程师来说,Python 的这些 ...

  8. python基础day5_元组

    元祖---只读列表,可循环查询,可切片 儿子不能改,孙子可能可以改.增加(主要看要操作的是属于列表还是元组) tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon') t ...

  9. PHP timezone_location_get() 函数

    ------------恢复内容开始------------ 实例 返回指定时区的位置信息: <?php$tz=timezone_open("Asia/Taipei");ec ...

  10. luogu P4929 【模板】舞蹈链 DLX

    LINK:舞蹈链 具体复杂度我也不知道 但是 搜索速度极快. 原因大概是因为 每次检索的时间少 有一定的剪枝. 花了2h大概了解了这个东西 吐槽一下题解根本看不懂 只能理解大概的想法 核心的链表不太懂 ...