找回密码
 立即注册

[代码] mysql 常用语法

[复制链接]
69伙伴 发表于 2024-2-17 01:41:56 | 显示全部楼层 |阅读模式
在MySQL中,`SELECT`查询语句的各个部分按照特定的逻辑顺序执行,尽管在编写SQL时它们的顺序是固定的。以下是这些关键字及它们在MySQL查询中的作用和执行流程:

1. **SELECT**
   - 作用:指定从数据库表中选择哪些列或表达式(包括计算字段、聚合函数等)包含在查询结果集中。
   - 示例:`SELECT column1, column2, AVG(column3) AS avg_value FROM ...`
   - 注释:在GROUP BY和HAVING子句中使用时,可以指明对分组后的数据进行何种计算或提取哪些非聚合列。

2. **FROM**
   - 作用:指定要查询的数据源,即从哪一张或多张表中获取数据,也可以包括JOIN操作来连接多个表。
   - 示例:`FROM table1 JOIN table2 ON table1.id = table2.id`

3. **WHERE**
   - 作用:定义一个搜索条件,用来过滤FROM子句中选定表的原始记录行。WHERE子句中的条件会在任何分组或聚合之前应用到单行记录上。
   - 示例:`WHERE column4 > 100 AND column5 = 'some_value'`

4. **GROUP BY**
   - 作用:将查询结果按一个或多个列的值进行分组,这样每个分组内的所有行具有相同的列值。只有那些出现在GROUP BY子句中的列(或其派生列),或者在SELECT列表中出现的聚合函数才能出现在查询结果中。
   - 示例:`GROUP BY column1, column3`

5. **HAVING**
   - 作用:应用于GROUP BY的结果集,用于筛选满足某些条件的组,类似于WHERE子句但针对的是分组后的汇总数据,而不是单行记录。
   - 示例:`HAVING COUNT(*) > 10 OR SUM(column3) < 1000`

6. **ORDER BY**
   - 作用:对最终查询结果集进行排序,可以根据一列或多列的值来指定升序(ASC)或降序(DESC)排列。
   - 示例:`ORDER BY column2 DESC, column1 ASC`

7. **LIMIT**
   - 作用:限制返回结果的数量,可以用于实现分页效果。LIMIT接受一个或两个参数,第一个参数表示起始位置(通常是0开始的索引),第二个参数表示要返回的记录数量。
   - 示例:
     - `LIMIT 10` 表示只返回前10条记录。
     - `LIMIT 5, 10` 表示跳过前5条记录,然后返回接下来的10条记录。

执行顺序总结如下:
1. FROM
2. JOIN
3. WHERE
4. GROUP BY
5. HAVING
6. SELECT
7. DISTINCT
8. ORDER BY
9. LIMIT

注意:虽然上述顺序描述了逻辑执行流程,但在实际处理过程中,MySQL会对查询进行优化并可能改变部分步骤的实际执行顺序以提高效率。例如,在某些情况下,WHERE条件的部分过滤可能会与JOIN操作同时进行。不过,对于开发者来说,理解这种逻辑顺序有助于正确构建查询语句以及预测查询结果。









-----------
在MySQL中,TEXT类型有四种不同的大小规格:

TINYTEXT:最大长度为 255 字节,存储非常短的文本串。
TEXT:最大长度为 65,535 字节,适合存储较长的文章、描述等。
MEDIUMTEXT:最大长度为 16,777,215 字节(约16MB),适合存储更大篇幅的文章或日志记录。
LONGTEXT:最大长度为 4,294,967,295 字节(约4GB),适用于存储超长文本内容。


--------

1. 数值类型
  • 整数类型:
    • BIT: 可变长度的位字段。
    • BOOL 或 BOOLEAN: 实际上是 TINYINT(1) 的别名,用于存储布尔值。
    • TINYINT: 有符号范围为 -128 到 127,无符号范围为 0 到 255。
    • SMALLINT: 较小的整数范围。
    • MEDIUMINT: 中等大小的整数。
    • INT 或 INTEGER: 常用的整数类型,通常占用4个字节。
    • BIGINT: 存储大整数。
  • 浮点数和定点数类型:
    • FLOAT: 单精度浮点数,不精确但存储空间较小。
    • DOUBLE 或 DOUBLE PRECISION: 双精度浮点数,提供更高的精度。
    • DECIMAL: 定点数类型,用于需要高精度且不允许舍入误差的场合。

2. 字符串类型
  • 固定长度字符:
    • CHAR(size): 固定长度的字符串,不足部分以空格填充。
  • 可变长度字符:
    • VARCHAR(size): 可变长度的字符串,只存储实际使用的字符数量,节省空间。
  • 文本类型:
    • TINYTEXT: 最多能存储 2^8 字节的文本。
    • TEXT: 最多能存储 2^16 字节的文本。
    • MEDIUMTEXT: 最多能存储 2^24 字节的文本。
    • LONGTEXT: 最多能存储 2^32 字节的文本。

3. 日期和时间类型
  • DATE: 存储年-月-日格式的日期。
  • TIME: 存储时-分-秒格式的时间。
  • DATETIME: 存储包含日期和时间的完整信息。
  • TIMESTAMP: 同样存储日期和时间,但根据系统设置可能自动更新当前时间。
  • YEAR: 存储两位或四位表示的年份。
4. 二进制类型(BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR)
  • BINARY(size): 固定长度的二进制数据。
  • VARBINARY(size): 可变长度的二进制数据。
5. 二进制大对象类型(BLOBs)
  • TINYBLOB: 最多能存储 2^8 字节的二进制数据。
  • BLOB: 最多能存储 2^16 字节的二进制数据。
  • MEDIUMBLOB: 最多能存储 2^24 字节的二进制数据。
  • LONGBLOB: 最多能存储 2^32 字节的二进制数据。
6. 其他特殊类型
  • ENUM: 枚举类型,允许在列中存储指定列表中的一个值。
  • SET: 集合类型,允许在列中存储多个来自预定义列表的值集合。




临时交流 ⇨点我留言
特别声明:以上内容(如有图片或视频亦包括在内)均为其他媒体用户上传并发布,本平台仅为信息转存。 行首地址为剪报来源!信息内容真实可靠性,需要用户自行理解。本站无法为您承担任何责任!
Notice: The content above (including the pictures and videos if any) is uploaded and posted by Other media.WGPro.CoM is a social media platform and only provides information storage services.
【附件·直下】非必要·勿注册

网格·联系我们 ( 京ICP备16001788号|京公网安备 11010502049360号 ) | 网站地图 | 2012- WGPro.CoM |

GMT+8, 2024-4-27 16:36

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表