MySQL | 基本查询

1、基础查询语句

语法格式:

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

语法说明:

  • GROUP BY <字段>:如果显示查询出来的数据,并按照指定的字段分组。
  • ORDER BY <字段>:按什么样的顺序显示查询出来的数据
  • LIMIT:每次显示查询出来的数据条件

1.1、使用"*"查询表中的全部内容

语法格式:

SELECT * FROM 表名;

一般情况下,除非需要使用表中所有的字段数据,否则最好不要使用通配符"*"。

1.2、查询表中指定的字段

语法格式:

SELECT <字段名1>,<字段名2>,... FROM <表名>;

1.3、在查询时给表和字段设置别名

语法格式:

{ <表名> | <列名> } [AS] <别名>

语法说明:

  • AS:关键字为可选参数
  • 为表取别名时,要保证不能与数据库中的其他表的名称冲突

1.4、使用DISTINCT关键字去除结果中的重复行

语法格式:

SELECT DISTINCT <字段名> FROM <表名>;

1.5、使用LIMIT关键字指定查询结果的行数

语法格式:

<LIMIT> [<位置偏移量>,] <行数>

语法说明:

  • 位置偏移量:指示从哪一行开始显示,是一个可选参数,如果不指定"位置偏移量",将从第一天记录开始
  • 行数:返回的记录条数

1.6、使用ORDER BY对查询结果进行排序

语法格式:

ORDER BY { <列名> | <表达式> | <位置> } [ ASC | DESC ]

语法说明:

  • <列名>:指定用于排序的列,可以指定多个列,列名之间用逗号分隔
  • <表达式>:指定用于排序的表达式
  • <位置>:指定用于排序的列在SELECT语句结果集中的位置
  • ASC:关键字,表示按升序分组,默认值
  • DESC:关键字,表示按降序分组

2、带WHERE关键字的子查询

在SELECT语句中,可以使用WHERE子句来指定查询条件,从FROM子句的中间结果中选取适当的数据行,达到数据过滤的效果。

WHERE <查询条件> { <判定运算1>,<判定运算2>,... }

2.1、常用的运算符

2.1.1、比较运算符

比较运算符 说明
= 等于
< 小于
<= 小于等于
> 大于
>= 大于等于
<=> 安全的等于,不会返回UNKNOWN
<>或!= 不等于
IS NULL或ISNULL 判定一个值是否为NULL
IS NOT NULL 判定一个值是否不为NULL
LEAST 当有两个或多个参数时,返回最小值
GREATEST 当有两个或多个参数时,返回最大值
BETWEEN AND 判定一个值是否在另外两个值之间
IN 判定一个值是IN列表中的任意一个值
NOT IN 判定一个值不是IN列表中的任意一个值
LIKE 通配符匹配
REGEXP 正则表达式匹配

2.1.2、算术运算符

算术运算符 说明
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算
% 求余运算

2.1.3、逻辑运算符

逻辑运算符 说明
NOT或者! 逻辑非
AND或者&& 逻辑与
OR或者`
XOR 逻辑异或

2.1.4、位运算符

位运算符 说明
` `
& 按位与
^ 按位异或
<< 按位左移
>> 按位右移
~ 按位取反,反转所有比特

2.1.5、运算符优先级

2.2、单条件的查询语句

案例:查询姓名为“Green”的学生信息

案例:查询年龄小于23岁的学生信息

2.3、多条件的查询语句

使用SELECT查询时,在WHERE子句中使用AND连接两个甚至多个查询条件。
案例:查询年龄小于23岁,性别为女的学生信息

案例:查询age大于21,height大于等于175的学生信息

2.4、使用LIKE的模糊查询

语法格式:

<表达式> [NOT] LIKE <表达式>

字符串匹配是一种模式匹配,使用运算符LIKE设置过滤条件,过滤条件使用通配符进行匹配运算,而不是判断是否相等进行比较。MySQL支持的通配符:百分号(%):匹配任何字符串、下划线(_):只匹配单个字符

案例:查询姓名以"J"开头的学生信息

案例:查询所有姓名中包含"e"字母的学生信息

案例:查询姓名由3个字母组成的学生信息

2.5、使用BETWEEN AND的范围查询

BETWEEN AND用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结算值。
案例:查询login_date在2015-09-10和2016-01-15之前的学生信息

posted @ 2020-09-26 23:45  Cyzhouke  阅读(136)  评论(0编辑  收藏  举报