【MySQL比知必会】第七章 数据过滤

1、组合WHERE子句

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

2、AND操作符

  输入:SELECT prod_id,prod_price,prod_name

     FROM products

     WHERE vend_id = 1003 AND prod_price <= 10;

  分析:显示三列——prod_id,prod_price,prod_name,过滤条件是,供应商id是1003,价格小于10。AND就是需要同时满足的过滤条件。

3、OR操作符

  输入:SELECT prod_name,prod_price

     FROM products

     WHERE vend_id = 1002 OR vend_id = 1003;

  分析:显示两列——prod_name,prod_price,过滤条件是:供应商id是1002或1003。OR关键字是满足其中一种条件即可。

4、计算次序(结合方向)

  WHERE子句可以包含任意数目的AND、OR操作符,从而实现复杂和高级的过滤,但是结合顺序是个问题。

  为此,SQL语句规定,AND的优先级高于OR,即先进行AND关键字的过滤。

  输入:SELECT prod_name , prod_price

     FROM products

     WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >= 10

  分析:显示两列——prod_name , prod_price,过滤条件是供应商是1003且商品价格大于10或者供应商是1002而商品价格随意。

  显然上一个例子的期望是:供应商是1002或1003,且他们的价格都大于10 。为实现这样的期望,我们必须使用圆括号来强行更改AND和OR的优先级。

  输入:SELECT prod_name , prod_price

     FROM products

     WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10

  分析:括号的优先级最高,所以先进行括号内的过滤,即只留下供应商是1002或1003的商品name和price,然后再进行价格大于10的过滤。

  注:建议多使用圆括号以达到消除歧义的作用。

5、IN操作符

  IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。

  输入:SELECT prod_name,prod_price

     FROM products

     WHERE vend_id IN (1002,1003)

     ORDER BY prod_name;

  分析:显示两列——商品name和price,过滤条件是,供应商ID须是1002到1003范围内,排序条件是,以prod_name列为排序依据,字母升序排序(A-Z)。

6、NOT操作符

  否定它之后所跟的任何条件

  输入:SELECT prod_name,prod_price

     FROM products

     WHERE vend_id NOT IN(1002,1003)

     ORDER BY prod_name;

  分析:显示两列——商品name和price,过滤条件,除了供应商id为1002到1003的其他供应商,排序条件,以prod_name列为排序依据,字母升序排序(A-Z)。

时间: 2024-08-25 14:11:41

【MySQL比知必会】第七章 数据过滤的相关文章

第七章 数据过滤

1.mysql允许给出多个where子句.这些子句可以以and或者or方式使用 select column_name_0 from table_name where column_name_1 between value_0 and value1 and column_name_2 = value3; select column_name_0 from table_name where column_name_1 between value_0 and value1 or column_name

Android学习笔记—第七章 数据解析及读取

第七章 数据解析及读取 网络传输中数据的组织方式:xml.json.http (1)xml:可扩展标记语言 特点:保存少量数据,可跨平台 解析方式:sax.dom.pull a. sax解析: 特点:速度快,占用内存少.事件驱动,不会一次性把所有内容加载到内存中. startElement:元素节点开始 localName:不带前缀的标签名 qName:带前缀的标签名 attributes:节点内的属性和值 <student id ="1"> <name>小明&

4. MySQL必知必会之排序检索数据-ORDER BY

本章将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检 索出的数据. 1. 排序数据 ?? 子句(clause) SQL语句由子句构成,有些子句是必须的,而有的是可选的.一个子句通常由一个关键字和所提供的数据组成.子句的例子有SELECT 语句的FROM 子句. 为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句取一个或多个列的名字,据此对输出进行排序. 请看下面的例子: 输入: SELECT prod_num FROM products ORDER BY

Mysql必知必会 第三章 使用Mysql

第三章 使用Mysql SQL语句和大小写 请注意,SQL语句不区分大小写,因此SELECT与select是相同的.同样,写成Select也没有关系.许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试. 功能 语句 备注 选择数据库 USE db_name 显示可用数据库 SHOW DATABASES 返回可用数据库的一个列表 显示数据库内的表 SHOW TABLES 返回当前数据库内表的列表 显示表中包含的列 SHOW COLUMNS FR

【MySQL比知必会】第八章 用通配符进行过滤

1.LIKE操作符 之前使用的操作符都是针对已知的数据,而使用通配符可以对未知数据也进行搜索. 通配符(wildcard):用来匹配值得一部分的特殊字符. 搜索模式(search pattern):由字面值.通配符或两者组合构成的搜索条件. 搜索子句要使用使用通配符,必须使用LIKE操作符,因为它指示MySQL,后面跟的搜索模式是通配符匹配而不是直接相等匹配. 谓词:当一个操作符作为谓词时,它不再是一个操作符,LIKE是一个谓词. 2.百分号通配符% %表示任何字符出现任意次数. 输入:SELE

MySQL必知必会——更新和删除数据

** 更新(修改)表中的数据,使用UPDATE语句.** 可采用两种方式使用UPDATE: ? 更新表中特定行: ? 更新表中所有行. 基本的UPDATE语句由3部分组成,分别是: ? 要更新的表: ? 列名和它们的新值: ? 确定要更新行的过滤条件. 简单例子.客户10005现在有了电子邮件地址,因此他的记录需要更 UPDATE customers SET cust_email = '[email protected]' WHERE cust_id = 10005; 更新更多列: UPDATE

SQL必知必会 笔记 第九章 汇总数据

9.1聚集函数 聚集函数(aggregate function):运行在行组上,计算和返回单个值的函数. 9.1.1AVG()函数 AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值. SELECT AVG(prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01'; 只用于单个列:AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出,为了获得多个列的平均值,必须使用多个AVG()函数. NULL值

《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(二)

3.数据转换 介绍完数据的重排之后,下面介绍数据的过滤.清理.以及其他转换工作. 去重 #-*- encoding: utf-8 -*- import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame #DataFrame去重 data = DataFrame({'k1':['one']*3 + ['two'] * 4, 'k2':[1,1,2,3

0011《SQL必知必会》笔记07 数据的插入、更新和删除

1.插入完整的行或一部分:INSERT INTO 表名(列名1-n) VALUES (对应的值1-n) INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc) VALUES('RYL03', 'FNG01', 'monkey doll', 9.45, null); 注意:1. 省略列名,也可以插入,但在将来表结构发生变化后,可能导致错误,因此一般不用:   2. 如果只对部分列插入数据,省略的那些列要么可以