文章目录

  • 第4章 检索数据
  • 第5章 排序检索数据
  • 第6章 过滤数据
  • 第7章 高级过滤数据
  • 第8章 使用通过符过滤

第4章 检索数据

**提要:**本章主要介绍了SELECT的基本使用。

1:

为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

2:

检索单个列:

SELECT prod_name FROM products;

说明:本条语句是最基本的语句,比较简单,需要注意的是命名和书写规范;复杂的语句可以分成多行书写。

数据库相关规范(一种):

1、表名以T_开头,全部大写,以下划线分割,如:T_GOOD_GALLERY;

2、列名全部小写,以下划线分割,如:user_name;

3、所有单词均为单数;

4、关键字全部大写;

5、SQL语句结束时加";"。

3:

检索多个列:

SELECT prod_id,prod_name,prod_price FROM products;

4:

检索所有列

SELECT * FROM products;

注意:

使用通配符(*)的缺点:降低性能、不能显示查询的所有列;优点:检索出名字未知的列。

5:

关键字DISTINCT

SELECT DISTINCT vend_id FROM products;

注意:

1、关键字DISTINCT意思是去重,返回的结果是不同的;

2、DISTINCT应用于所有列,当查询多个字段时,除非两行数据完全相同,否则会检索出所有行。

当查询ID和NAME时:

SELECT DISTINCT ID,NAME FROM T_USER;

以下表格会检索出3条数据。

ID NAME
1 a
2 b
3 c

以下表格会检索出2条数据。

ID NAME
1 a
1 a
3 b

6:

关键字LIMIT

从第一行开始,查询5行数据。

SELECT prod_name FROM products LIMIT 5;

从第6行开始,查询10行数据。

SELECT prod_name FROM products LIMIT 5,10;

注意:

1、从第一行查询数据,第一个参数可以省略;

2、要查询的数据可以这么理解:从第(LIMIT第一个参数+1)行开始(包含该行),查询共(LIMIT第二个参数)行数据;

3、数据库中的数据没有要查询的行数多时,只会返回数据库中的行数。

7:

完全限定名

SELECT products.prod_name FROM crashcourse.products; -- 假定表在crashcourse数据库中

第5章 排序检索数据

**提要:**本章主要讲述了SELECT语句的ORDER BY子句的使用。

1:

子句(clause): SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。

2:

简单排序

SELECT prod_name FROM products ORDER BY prod_name;

注意:

一般通过查询的列排序,但是也可以使用非查询的列排序。

3:

按多个列排序

SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;

注意:

排序时首先按第一列排序,当第一列完全相同时才会按第二列排序。

4:

指定排序方向->降序

SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC;

多个列降序排列

SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name DESC;

注意:

1 ASC代表升序,DESC代表降序;

2 默认是升序,ASC作用不大;

3 ORDER BY排序时不区分大小写;

5:

结合LIMIT使用->查询产品最高的价格

SELECT prod_price FROM products ORDER BY prod_price LIMIT 1;

第6章 过滤数据

**提要:**本章讲述了SELECT语句的WHERE子句使用。

1:

基本使用

SELECT prod_name,prod_price FROM products WHERE prod_price = 2.5;

2:

条件操作符

操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
> 大于
>= 大于等于
<= 小于等于
BETWEEN 在指定的值之间

3:

单个检索

SELECT prod_name,prod_price FROM products WHERE prod_name = 'fuses';
SELECT prod_name,prod_price FROM products WHERE prod_price >=10;

4:

不匹配检索

SELECT vend_id,prod_name FROM products WHERE vend_id <>1003;

5:

范围匹配

SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;

注意:

1 字符串需要引号,数字不需要;

2 BETWEEN包含两边的值。

6:

空值检查

SELECT prod_name FROM products WHERE prod_price IS NULL;

注意:

NULL与不匹配过滤:

where条件是!=某值时,不会返回是null的行

第7章 高级过滤数据

**提要:**本章主要介绍了where更高级的使用和NOT/IN操作符。

操作符(operator): 用来联结或改变 WHERE 子句中的子句的关键字。也称为逻辑操作符。

1:

AND操作符

SELECT prod_id,prod_price FROM products WHERE prod_id = 1003 AND prod_price >10;

2:

OR操作符

SELECT prod_id,prod_price FROM products WHERE prod_id = 1002 OR prod_id = 1003;

3:

优先级

SELECT prod_id,prod_price FROM products WHERE prod_id = 1002 OR prod_id = 1003 AND prod_price >10;

返回数据:

  • id=1002的数据
  • id=1003并且价格>10
SELECT prod_id,prod_price FROM products WHERE (prod_id = 1002 OR prod_id = 1003) AND prod_price >10;

返回数据:

id=1002或1003,并且价格>10

4:

IN操作符

SELECT prod_id,prod_price FROM products WHERE prod_id IN(1002,1003);

IN比OR的优点:

  • IN 操作符的语法更清楚且更直观;
  • 计算的次序更容易管理(IN使用的操作符更少);
  • IN 一般比 OR 执行更快;
  • IN 的最大优点是可以包含其他 SELECT 语句。

5:

NOT操作符

SELECT prod_id,prod_price FROM products WHERE prod_id NOT IN (1002,1003);

第8章 使用通过符过滤

提要: 本章介绍了通配符和LIKE操作符。

通配符(wild card): 用来匹配值的一部分的特殊字符。

**谓词:**返回值为真值的函数。主要有:LIKE,BETWEEN,IS NULL,IS NOT NULL, IN,EXISTS.

1:

(%)通配符:任何字符出现任意次数

SELECT prod_id,prod_price,prod_name FROM products WHERE prod_name LIKE 'jet%';

任意位置,多个通配符

SELECT prod_id,prod_price,prod_name FROM products WHERE prod_name LIKE '%jet%';
SELECT prod_id,prod_price,prod_name FROM products WHERE prod_name LIKE 's%e';

注意:

  • 为了防止空格干扰,应该在字段的两边都加上%;
  • %不能匹配NULL;

2:

(_)通配符:单个字符

SELECT prod_name FROM products WHERE prod_name LIKE '_ton anvil';

返回:1ton anvil,2ton anvil;

SELECT prod_name FROM products WHERE prod_name LIKE '%ton anvil';

返回:1ton anvil,2ton anvil,.5ton anvil;

注意:

(_)通配符只能匹配一个字符,不能多,也不能少。

3:

注意事项:

  • 不要过度使用通配符;
  • 在确实需要使用通配符时,尽量不要把它们用在搜索模式的开始处;
  • 注意通配符的位置。如果放错地方,可能不会返回想要的数据。

读书笔记-MySql必知必会(二)相关推荐

  1. 【SQL】【读书笔记】《MySQL必知必会》

    本文为<MySQL必知必会>[1]读书笔记,用于总结知识点和框架,仅供参考和交流,如有不妥请联系.由于软件版本更新,书中的一些代码已经不再适用,本文主要从SQL基本语句进行增删减.窗口函数 ...

  2. 读书笔记系列1——MySQL必知必会

    读书笔记系列1--MySQL必知必会 文章目录 读书笔记系列1--MySQL必知必会 MySQL官方文档:https://dev.mysql.com/doc/ 第一章 数据库基础 *2021.11.2 ...

  3. mysql函桌为之一的_MYSQL必知必会读书笔记第十和十一章之使用函数处

    mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 拼接字段 存储在数据库表中的 ...

  4. MYSQL必知必会学习笔记(二)

    MYSQL必知必会四-五章--检索.排序 书中部分代码展示: ##第四第五章 SELECT prod_name FROM products; /*从products表中检索一个叫prod_name的列 ...

  5. mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...

  6. mysql中用完即删用什么_MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机--服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  7. MySQL必知必会读书笔记一

    这篇文章主要是自己阅读<Mysql必知必会>的时候自己写的sql,前面的一部分用的是自己的建立的一个user表,后面用的就是原书的表了 #检索 SELECT id FROM account ...

  8. asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源:https://segmentfault.com/p/1210000011760 ...

  9. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  10. MySQL必知必会笔记(一)基础知识和基本操作

    第一章  了解MySQL     数据库       保存有组织的数据的容器.(通常是一个文件或一组文件) 人们经常使用数据库这个术语代替他们使用的软件.这是不正确的,确切的说,数据库软件应称为DBM ...

最新文章

  1. 轻松易懂的缓存雪崩、穿透、击穿以及解决方案
  2. 关于.net实现网站模板机制(非标签替换)
  3. 自己整合优化的一个Android框架
  4. socket通信函数的深入分析
  5. python装饰器作用-Python装饰器的通俗理解
  6. java多图片上传json_SpringMVC框架五:图片上传与JSON交互
  7. 【C基础】指针/指针运算/二级指针/函数指针
  8. 【TensorFlow】 基于视频时序LSTM的行为动作识别
  9. 浅谈python使用多态跟不用多态的区别_python 多态和 super 用法
  10. leetcode 273场周赛 Problem-C
  11. 统计bytearray中的bitcount
  12. 理想职业计算机程序英语作文,Choosing the Right Career理想的职业英语作文
  13. huawei交换机普通远程登陆配置
  14. 什么是k近邻算法,K近邻算法:Fackbook最近入住预测
  15. 华为HPLC模组全拆解之电力载波收发原理分析
  16. PS合成下雨天蹲在路灯下的天使男人清(15)
  17. css属性百分比参照物
  18. js:nodejs中的session(登陆验证)
  19. 百度BML飞桨训练营(五)商品种类识别
  20. CSS角度单位(deg)

热门文章

  1. gif软件(ShareX)
  2. heroku常用命令示例(三)与AWS S3互动
  3. win10卸载预装软件
  4. 代理模式——保护代理(三)
  5. 计算机基础知识整理--概述
  6. DOS和Debug常用命令
  7. php mysql scalar_symfony和doctrine及数据库操作 | 学步园
  8. 基于android的二维码会议签到app管理系统
  9. deepin 20 推荐邮件客户端 Bluemail 邮箱
  10. Waymo无人车设立中国全资子公司,取名慧摩,与谷歌上海同楼办公