导航菜单
首页 >  考研资料出版时间查询  > MySQL数据查询

MySQL数据查询

单表查询: SELECT 语句定义:

SELECT语句可以实现对表的选择、投影、及连接操作。通常生成一个临时表。

语法格式如下:

SELECT [ALL | DISTINCT] 输出列表表达式,···[FROM 表名1 [,表名2]···]/*FROM子句*/[WHERE 条件] /*WHERE子句*/[GROUP BY {列名 | 表达式 | 列编号}[ASC |DESC],···/*GROUP BY子句*/[HAVING 条件] /*HAVING子句*/[ORDER BY {列名 | 表达式 | 列编号][ASC | DESC],···]/*GROUP BY子句*/[LIMIT {[偏移量,]行数|行数OFFSET偏移量}] /*LIMIT子句*/

SELECT语句功能强大,有很多子句,所有被使用的字句必选语法说明中显示的顺序严格排序。

选择列: 选择指定的列: SELECT 表达式;

 例:查询bookstore数据库的members表中各会员的姓名、联系电话和注册时间。

USE bookstoreselect 姓名,联系电话,注册时间 from members;

运行结果:

当使用SELECT 语句指定列的位置上使用“*”时,表示选择的所有列,拿members表为例,代码如下:

SELECT *FROM members;

运行结果如下:

定义列别名:

查询结果中的列使用自己选择的列标题时,可以在列名之后使用as子句来改查询结果的列名,代码如下:

SELECT 列名 [AS] 别名;

AS也可以选择不写,直接在中间打一个”空格“别名也可以

例:查询book表中图书类别为”计算机“的图书书名,作者和出版社,结果中各列的标题分别指定为name、auther和publisher。

select 书名 as name,作者 as auther,出版社 as publisher from book where 图书类别='计算机';

select 书名 name,作者 auther,出版社 publisher from book where 图书类别='计算机'; 替换查询结果中的数据:

语法格式如下:

CASE WHEN 条件1 THEN 表达式1WHEN 条件2 THEN 表达式2······ELSH 表达式nEND

语法说明如下.

CASE 表达式以 CASE开始,以END结束,MySQL从条件1开始判断,条件1成立输出表达式1,结束;若条件1不成立,判断条件2,若条件2成立,输出表达式2后结束.....如果条件都不成立,输出表达式n。

例:查询book表中的图书编号、书名和数量,对其库存数量按以下规则进行替换:若数量为空值,则替换为“尚未进货”;若数量小于5本,替换为“需进货”;若数量在5~50本的范围内,替换为“库存正常”;若数量大于50本,替换为“库存积压”。列标题更改为“库存”。

select 图书编号,书名, case when 数量 is null then '尚未进货' when 数量 =5 and 数量= | | | != } 表达式 /*比较运算*/| 表达式 [ NOT ] LIKE 表达式 /*LIKE表达式*/| 表达式 [ NOT ] BETWEEN 表达式1 AND 表达式2 /*指定范围*/| 表达式 IS [ NOT ] NULL /*判断是否空值*/| 表达式 [NOT] IN (子查询 | 表达式1 [,···表达式n] ) /*IN子句*/ 比较运算:

MySQL支持的比较运算符有=(等于)、=(大于等于)、(相等或都等于空)、(不等于)、!=(不等于)

例1:查询bookstore数据库book表中书名为’网页程序设计‘的记录

select *from book where 书名='网页程序设计';

例2:查询book表中单价大于30元的图书情况。

select *from book where 单价>30;

例3:查询sell表中还未收货的订单号、订单时间和是否收货。

select 订单号,订购时间,是否收货 from sell where 是否收货null; 逻辑运算: 逻辑运算符运算符运算规则运算符运算规则NOT或!逻辑非OR或||逻辑或AND或&&逻辑与XOR逻辑异或

        逻辑运算操作的结果是“1”或“0”,分别表示“TRUE”或“FALUE”。假设有关系表达式X和Y,其进行逻辑运算结果如下表:

逻辑运算操作说明XYNOT XX AND YX OR YX XOR Y00100

0

0

1

1

0

1

1

1

00

0

1

1

110110说明

如果X是TRUE,那么示

0例结果是FALSH;如

果X是FALSE,那么示例

结果是TRUE

如果X和Y都是TRUE,那么示例的结果TRUE,否则示例结果是FALSE如果X或Y任一是TRUE,那么示例的结果是TRUE,否则示例结果是FALSE如果X和Y不相同,那么示例的结果是TRUE,否则示例的结果是FALSE

例1:查询sell表中已收货且已结清的订单情况。

select *from sell where 是否收货='已收货' and 是否结清='已结清';

例2:查询book表中“清华大学出版社”“北京大学出版社”出版的价格大于等于35元的图书.

select *from book where (出版社='清华大学出版社' or 出版社='北京大学出版社') and 单价>=35;

select *from book where (出版社='清华大学出版社' and 单价>=35) or (出版社='北京大学出版社' and 单价>=35); 模糊匹配:

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

表达式 [NOT ] LIKE 表达式

使用LIKE进行模式匹配时,常使用特殊符号“_”"%"进行模糊查询,“%”代表0个或多个字符,“_”代表单个字符。

例1:查询members表中姓“李”的用户的用户名、姓名及注册时间。

select 用户名,姓名,注册时间 from members where 姓名 like '李%';

例2:查询book表中图书编号倒数第二位6的图书的图书编号和书名。

select 图书编号,书名 from book where 图书编号 like '%6_'; 范围比较:

用于范围比较的关键字有BETWEEN和IN两个。

当要查询的条件是某个值的范围时,可以使用BETWEEN关键字。BETWEEN关键字指出查询范围,格式如下。

表达式 [NOT] BETWEEN 表达式1 AND 表达式2

说明:若表达式expression的值在表达式1与表达式2之间(包括这两个值),返回TRUE,否则返回FALSE;使用NOT时,返回值刚好相反。表达式1的值不能大于表达式2的值。

例1:查询book表中2020你年出版的图书情况。

select *from book where 出版时间 between '2020-01-01' and '2020-12-31';

上面的语句与下面的语句等价

select *from book where 出版时间>='2020-1-1' and 出版时间

相关推荐: