六、查询数据

数据库管理系统的一个重要功能就是查询数据,查询数据不应只是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作。

一、基本查询语句

MySQL从数据表中查询数据的基本语句为SELECT语句。SELECT语句的基本格式是:

SELECT 
		{ * | <字段列表> }
		[
				FROM <1>,<2>...
				[ WHERE  <表达式> ]
				[GROUP BY <group by definition>]
				[HAVING <expression> [{
  <operator> <expression>}...] ]
				[ORDER BY <order by definition>]
				[LIMIT [<offset>,]<row count> ]
		 ]

其中,各条子句的含义如下:

  • {*|<字段列表>}包含星号通配符和字段列表,表示查询的字段。其中,字段列表至少包含一个字段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段不加逗号。
  • FROM <表1>,<表2>…,表1和表2表示查询数据的来源,可以是单个或者多个。
  • WHERE子句是可选项,如果选择该项,将限定查询行必须满足查询条件。
  • GROUP BY <字段>,该子句告诉MySQL如何显示查询出来的数据,并按照指定的字段分组。
  • ORDER BY <字段>,该子句告诉MySQL按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)、降序(DESC)。
  • [LIMIT [offset,] ],该子句告诉MySQL 每次显示查询出来的数据条数。

二、单表查询

单表查询是指从一张表数据中查询所需的数据

1、查询所有字段

(1)在SELECT语句中使用星号(*)通配符查询所有字段

SELECT查询记录最简单的形式是从一个表中检索所有记录,实现的方法是使用星号(*)通配符指定查找所有列的名称。

SELECT  *  FROM 表名;
 SELECT  *  FROM  fruits;
(2)在SELECT语句中指定所有字段

根据前面SELECT语句的格式,SELECT关键字后面的字段名为将要查找的数据,因此可以将表中所有字段的名称跟在SELECT子句后面。

SELECT f_id,s_id,f_name,f_price FROM fruits;

2、查询指定字段

(1)查询单个字段

查询表中的某一个字段

SELECT 列名 FROM 表名;
SELECT f_name FROM fruits;
(2)查询多个字段

使用SELECT声明,可以获取多个字段下的数据

SELECT 字段名1,字段名2,...,字段名n FROM 表名;
SELECT f_name,f_price FROM fruits;

MySQL中SQL语句是不区分大小写的,因此SELECT和select 的作用是相同的,但是,许多开发人员习惯将关键字大写、数据列表和表名小写,读者也应该养成一个良好的编程习惯,这样写出来的代码更容易阅读和维护。

3、查询指定记录

数据库中包括大量的数据,根据特殊要求,可能只需要查询表中的指定数据,即对数据进行过滤。在SELECT语句中,通过WHERE子句可以对数据进行过滤。

SELECT 字段名1,字段名2,...,字段名n 
FROM 表名 
WHERE 查询条件

查询价格为10.2元的水果的名称

SELECT f_name,f_price FROM fruits WHERE f_price =10.2

相等还可以用来比较字符串

SELECT f_name,f_price FROM fruits WHERE f_name='apple'

4、带IN关键字的查询

IN操作符用来查询满足指定范围内的条件的记录,使用IN操作符,将所有检索条件用括号括起来,索引条件之间用逗号隔开,只要满足条件范围内的一个值即为匹配项。

SELECT s_id,f_name,f_price 
FROM fruits 
WHERE s_id IN(101,102)
ORDER BY f_name;
SELECT s_id,f_name,f_price 
FROM fruits 
WHERE s_id NOT IN(101,102)
ORDER BY f_name;

5、带BETWEEN AND的范围查询

BETWEEN AND用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结束值,如果字段值满足指定的范围查询条件,则这些记录被返回。

SELECT f_name,f_price FROM fruits WHERE f_price BETWEEN 2.00 AND 10.20;

BETWEEN匹配范围中的所有值,包括开始值和结束值。

BETWEEN AND操作符前可以加关键字NOT,表示指定范围之外的值,如果字段值不满足指定的范围内的值,则这些记录被返回。

SELECT f_name,f_price
FROM fruits
WHERE f_price NOT BETWEEN 2.00 AND 10.20;

6、带LIKE的字符匹配查询

在前面的检索操作中讲述了如何查询多个字段的记录,如何进行比较查询或者是查询一个条件范围内的记录,如果要查找所有包含字符”ge“的水果名称,那该如何查找呢?简单的比较操作在这里已经行不通了,需要使用通配符进行匹配查找,通过创建查找模式对表中的数据进行比较。执行这个任务的关键字是LIKE。

通配符是一种在SQL的WHERE条件子句中拥有特殊意思的字符。SQL语句中支持多种通配符,可以和LIKE一起使用的通配符有‘%’和‘_’。

(1)百分号通配符‘%’,匹配任意长度的字符,甚至包括零字符
SELECT f_id,f_name FROM fruits WHERE f_name LIKE 'b%';
SELECT f_id,f_name FROM fruits WHERE f_name LIKE '%g%';
SELECT f_name FROM fruits 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值