检索表记录

SELECT基本查询

SELECT...FROM 查询语句

SELECT语句

SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]

FROM<表名或视图名>[,表名或视图名]

[WHERE<条件表达式>]

[GROUP BY<列名1>[HAVING<条件表达式>]]

[ORDER BY<列名2>[ASC|DESC]]

[LIMIT[start,]count]

  • SELECT 字句用于指定查询数据的列名称
  • FROM字句用于指定要查询的表或视图
  • WHERE字句用于查询的数据应满足的条件
  • GROUP BY 字句表示将查询的结果按照<列名 1>的值进行分组,将该列值相等的记录作为一个组,如果GROUP字句带有HAVING字句,则只有满足指定条件的组才有相对输出,HAVING字句通常和GROUP字句一起使用。
  • ORDER BY 字句表示将查询结果按照<列名 2>的值进行升序或降序排列后输出,默认排序为ASC
  • LIMIT 字句用于限制结果的行数

检索

检索单个列

SELECT 列名
FROM 表名;

检索多个列

SELECT 列名,列名,列名
FROM 表名;

检索users表,查询所有会员的名称,性别和电话号码。(指定字段信息)

SELECT U_Name,U_Sex,U_Phone FROM Users;

检索所有列(使用通配符 *)

SELECT *
FROM products;

检索表或视图中所有的字段信息,那么可以在SELECT子句中实际列名的位置使用通配符“*” 

检索不同的行(去除重复行)

SELECT DISTINCT 列名
FROM 表名;

限制结果

SELECT 列名
FROM 表名
LIMINT (开始行,行数);

 使用完全限定的表名 即同时使用表名和列字(存在即合理)

在默认情况下,查询结果的列标题就是在定义表结构时使用的列名称。

可以在SELECT子句中使用别名修饰,在定义查询语句时使用别名,在查询结果时,定义的别名会取代表结构中的列名称

定义别名的方式

  • 列名 列标题
  • 列名 AS 列标题

列的别名可以使用一对" "引起来,不要使用'  '

 

 

 关键词字ISTINCT的使用

默认值为ALL,ALL关键字表示将会显示所有检索的数据行,包含重复的数据行; 

DISTINCT关键字,指示MySQL返回不同的数据行,对于重复的数据行只显示一次。 

WHERE子句操作符

#过滤条件,声明在from结构的后面

SELECT 列名
FROM 表名
WHERE 限定条件;

 使用关系表达式查询

常见的关系运算符:=(等于)、>(大于)、<(小于)、>=、<=、!=或<>(不等于)

使用逻辑表达式:NOT、AND、OR (优先级顺序)

不匹配检查 (关系表达式<> !=)

WHERE子句的位置 在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,

数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序,必须指定DESC关键字。

与DESC相反的关键字是ASC(ASCENDING) 但升序是默认的排列

范围值检查

为了检查某个范围的值,可使用BETWEEN操作符

SELECT 列名
FROM 表名
WHERE 列名 BETWEEN 起始值 AND 结束值;

空值检查

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。其语法如下:

SELECT 列名
FROM 表名
WHERE 列名 IS NULL;

数据过滤

MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用。

AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。

OR操作符与AND操作符不同,它指示MySQL检索匹配任一条件的行。

IN操作符

圆括号在WHERE子句中还有另外一种用法。IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

用通配符进行过滤

通配符(wildcard) 用来匹配值的一部分的特殊字符。

搜索模式(search pattern)由字面值、通配符或两者组合构成的搜索条件。

为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。LIKE关键字用于搜索与特定字符串相匹配的字符数据

[NOT]LIKE<匹配字符串>

如果在LIKE前面加一个NOT关键词,表示该条件取反

  • %:代表任意多个字符
  • _:代表任意一个字符

百分号(%)通配符

在搜索串中,%表示任何字符出现任意次数。

SELECT 列名
FROM 表名
WHERE 列名 LIKE '字符名%'

是否区分大小写取决于MySQL的配置方式

通配符可在搜索模式中任意位置使用,并且可以使用多个通配符

似乎%通配符可以匹配任何东西,但有一个例外,即NULL。即使是WHERE prod_name LIKE '%’也不能匹配用值NULL作为产品名的行。

下划线(_)通配符

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值