MySql基础

廖清远

目录

  • 1 软件
    • 1.1 软件
  • 2 数据库
    • 2.1 数据库
  • 3 第一单元
    • 3.1 聚合查询
    • 3.2 条件查询
    • 3.3 多表连接查询
    • 3.4 分类汇总与排序
    • 3.5 综合练习1
    • 3.6 综合练习2
    • 3.7 综合练习3
    • 3.8 第五课时
条件查询
  • 1 基础知识
  • 2 任务挑战

条件查询


1 where子句

        WHERE子句必须紧跟FROM子句之后,在WHERE子句中,使用一个条件从FROM子句的中间结果中选取行。其基本格式为:

      
=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
between在某个范围内
like搜索某种模式


2 比较运算符

        比较运算符用于比较(除TEXT和BLOB类型外) 两个表达式值,MySQL支持的比较运算符有:=(等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、<=>(相等或都等于空)、<>(不等于)、!=(不等于)。

        当两个表达式值均不为空值(NULL)时,除了“<=>”运算符,其他比较运算返回逻辑值TRUE(真)或FALSE(假);而当两个表达式值中有一个为空值或都为空值时,将返回UNKNOWN。

【案例】

a  查询Bookstore数据库Book表中书名为“网页程序设计”的记录。

     SELECT  书名,单价   FROM  Book

          WHERE 书名='网页程序设计'; 

b 查询Book表中单价大于30的图书情况。

     SELECT *   FROM  Book

          WHERE 单价>30; 


MySQL有一个特殊的等于运算符“<=>”,当两个表达式彼此相等或都等于空值时,它的值为TRUE,其中有一个空值或都是非空值但不相等,这个条件就是FALSE。没有UNKNOWN的情况。


c  查询Sell表中还未收货的订单情况。

      SELECT 订单号,是否收货 FROM  Sell

            WHERE 是否收货<=>NULL; 


3 逻辑运算

  通过逻辑运算符(AND、OR、XOR和NOT)组成更为复杂的查询条件。逻辑运算操作的结果是“1”或“0”,分别表示“true”或“false”。

符号1

符号2

说明

示例

说明

not

!

非运算

!x

如果x是"true",那么示例的结果是"false";

如果x是"false",那么示例的结果是"true"。

or

||

或运算

x || y

如果x或y任一是"true",那么示例的结果是"true",否则示例的结果是"false"。

and

&&

与运算

x && y

如果x和y都是"True",那么示例结果是"true",否则示例的结果是"false"。

xor

^

异或运算

x ^y

如果x和y不相同,那么示例结果是"true",否则示例的结果是"false"。


4 模式匹配(like运算)

LIKE运算符用于指出一个字符串是否与指定的字符串相匹配,其运算对象可以是char、varchar、text、datetime等类型的数据,返回逻辑值TRUE或FALSE。

使用LIKE进行模式匹配时,常使用特殊符号_和%,可进行模糊查询。“%”代表0个或多个字符,“_”代表单个字符。由于MySQL默认不区分大小写,要区分大小写时需要更换字符集的校对规则。

【例】查询Members表中姓“张”的会员的身份证号、姓名及注册时间。

    SELECT 身份证号,会员姓名, 注册时间    FROM Members

          WHERE  会员姓名  LIKE  '张%';

【例】查询Book表中图书编号倒数第二位为T的图书的图书编号和书名。

    SELECT 图书编号, 书名   FROM  Book

           WHERE 图书编号LIKE  '%T_';

例[5】查询Book表中书名中包含下画线的图书。

     SELECT 图书编号,书名   FROM   Book

           WHERE 书名 LIKE'%#_%'  ESCAPE  '#';


5  范围比较 

用于范围比较的关键字有两个:BETWEEN和IN。
当要查询的条件是某个值的范围时,可以使用BETWEEN关键字。BETWEEN关键字指出查询范围,格式为:
expression [ NOT ] BETWEEN expression1 AND expression2
当不使用NOT时,若表达式expression的值在表达式expression1与expression2之间(包括这两个值),则返回TRUE,否则返回FALSE;使用NOT时,返回值刚好相反。
注意:expression1的值不能大于expression2的值。
【例】 查询Book表中2010年出版的图书的情况。
   SELECT  *    FROM Book
        WHERE 出版时间  BETWEEN  '2010-1-1'  AND  '2010-12-31