MySQL基础学习: 第二章 DQL语句

发布时间:2024年01月04日

一、MySQL中的DQL语句

DQL主要指的是SELECT语句。SELECT用于检索从一个或多个表中选择的行,并且可以包括UNION操作和子查询。从MySQL 8.0.31开始,也支持INTERSECT和EXCEPT操作。本章主要对SELECT语句的用法进行逐一的介绍,语法如下:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
  • select_expr:包含一个选择列表,可以表示一列或、达式或者*来简写。

二、基础查询操作

1、查询常量

主要包含数字常量和字符串常量:

  • 数字常量:select 1
  • 字符常量:select ‘abc’
2、查询表达式

例如数字相乘或相加:

  • select 2*3
  • select 2+3:在MySQL中+号的功能仅仅是一个运算符,其运算有如下规则:
    • 如果其中有一项元素为字符,则在做加法运算时会将字符转成数字。
    • 如果字符可以转成数字,则做相加。
    • 如果字符不可以转数字,则将字符转为0,然后做相加。
    • 如果其中一项元素为null,则相加的结果为null,例如SELECT null + 10,结果为null。
3、查询函数

例如查询数据库版本和当前所在的数据库:

  • select version()
  • select database()
4、查询表

在查询的过程中可以为字段、函数、子查询、表名使用as(也可以不用写)关键字起别名。起别名可以起到如下作用:(1)使用有意义的别名便于理解;(2)对于联合查询如果两个表的字段名相同,可以使用别名进行区分。

三、查询语句的执行顺序

查询中用到的关键词主要包含六个,并且他们的顺序依次为
select、from、where、group by、having、order by 、limit
对于我们书写SELECT语句的的顺序如下:

SELECT DISTINCT
    select_list
FROM
    left_table join_type
JOIN right_table ON join_condition
WHERE 
    where_condition
GROUP BY
    group_by_list
having
    having_condition
ORDER BY
    order_by_condition
LIMIT limit_number

而MySQL server按照如下的顺序对SELECT语句进行解析:

FROM left_table
ON join_condition
join_type JOIN right_table
WHERE where_condition
GROUP BY group_by_list
HAVING having_condition
SELECT 
DISTINCT select_list
ORDER BY order_by_condition
LIMIT limit_number

其中select和from是必须的,关键字的解析如下:

  • from:需要从哪个数据表检索数据
  • where:过滤表中数据的条件
  • group by:如何将上面过滤出的数据分组
  • having:对上面已经分组的数据进行过滤的条件
  • select:查看结果集中的哪个列,或列的计算结果
  • order by :按照什么样的顺序来查看返回的数据

四、条件查询

1、 简单条件运算符:
  • “>”
  • "< "
  • “=”
  • “!=”
  • “<>”
  • " >= "
  • “<=“”
2、逻辑运算符:
  • &&
  • ||
  • !
  • and
  • or
  • not
3、模糊查询:
  • like:%匹配诺干个元素,可以为0,_匹配一个元素
  • between and: 包含临界值
  • in:判断某个字段的值是否属于in列表中的某一项
  • is null:=或<>不能用于判断null值,is null 或is not null可以判断null值且仅仅可以判断null值
  • 安全等于:<=>既可以判断null值,又可以判断普通值
文章来源:https://blog.csdn.net/yuming226/article/details/135397029
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。