您的位置:首页 > 数据库 > MySQL

MySQL数据库学习05-查询数据:单表查询

2017-11-17 21:27 176 查看
一、基本查询语句

MySQL从数据表中查询数据的基本语句为select语句,格式如下:

SELECT
*|字段列表
FROM 表1,表2,...
WHERE 表达式
GROUP BY 字段
HAVING 表达式
ORDER BY 字段
LIMIT 行数;


1.{*|字段列表}:包含星号通配符选择字段列表,表示查询的字段,其中字段至少包含一个字段名称,如果要查询多个字段,多个字段间用逗号隔开,最后一个字段后不要加逗号。

2.FROM 表1,表2,… :表示查询数据的来源,可以是单个或者多个。

3.WHERE :WHERE子句之后都是可选项,WHERE用于限定查询到的行必须满足的条件。

4.GROUP BY 字段 :将查询出来的数据按照指定的字段分组。

5.ORDER BY 字段 :将查询出来的数据按之地当顺序排序后显示,有:升序(ASC)、降序(DESC)。

6.LIMIT 行数 :查询出来的数据每次显示的行数。

示例:

a.创建一张名为fruits的表并插入数据



b.使用select语句查询f_name和f_price字段的数据



二、单表查询

1.查询所有字段

a.使用星号通配符(*)可以查询所有字段



2.查询指定字段,操作同“一、基本查询语句”中示例相同。

3.查询指定记录

查询表中的指定记录即对数据进行过滤。在SELECT语句中,可以通过WHERE语句对数据进行过滤。

a.查询价格为10.30的水果信息



·数值类型直接写在“=”后面。

b.查找名称为“apple”的水果价格



·字符型要用单引号。

c.查询价格大于等于10的水果名字



4.带IN关键字的查询

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

a.查询s_id为101和102的记录



b.查询s_id不为101和102的记录



5.带BETWEEN AND的范围查询

BETWEEN AND 用来查询某个范围内的值,该操作需要两个参数,即范围的开始值和结束值。

a.查询价格在2.00元到10.20元之间的水果名称和价格



·BETWEEN匹配范围中的所有值,包括端点值(此处为10.02)。

b.查询价格不在5.00到10.02之间的水果



6.带LIKE的字符匹配查询

MySQL中可以使用关键字LIKE进行通配符匹配查找。可以和LIKE一起使用的通配符有“%”和“_”。

a.百分号通配符’%’,匹配任意长度的字符,甚至包括零字符



·’b%’查找所有以’b’开头的水果名称。



·’%g%’查找名字中带有’g’的水果名称。



‘b%y’查找名字以b开始以y结束的水果名称

b.下划线通配符’_’,一次只能匹配任意一个字符



7.查询空值

使用IS NULL查询某字段中内容为空的记录。

a.创建表并添加数据



b.查询表中c_email为空的记录的c_id和c_name



·与IS NULL相反的时NOT IS NULL,查询不为空的记录。

8.带AND的多条件查询

可以使用AND连接二至多条查询条件,查找满足所有条件的记录。

a.在fruits表中查找s_id=101或者102,且price大于5的水果名称和价格



9.带OR的多条件查询

可以使用OR连接多个条件,只要满足其中一个条件即可。

a.查询s_id为101或者102,且价格在5.00以上的水果



·OR 和AND一起使用时,由于AND优先级高于OR,先执行AND两边的操作,此处用括号使OR两端的操作作为一个整体没有被AND分开,若不使用括号则查询得不到预计结果。

·OR操作符和IN操作符得到的结果相同,但是IN操作符执行速度高于OR且书写更加简洁。

10.查询结果消除重复

使用DISTINCT关键字消除重复记录值。

a.查询fruits表中s_id,存在重复值



b.使用DISTINCT关键字消除重复值

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 mysql