🗒️MySQL教程
00 分钟
2023-4-21
2024-9-2
Sub-item
type
status
date
slug
summary
tags
category
icon
password
Parent item
日期
Sep 2, 2024 06:36 AM

Mysql常用命令

HAVING会在检索出所有记录之后才对结果进行过滤,需要排序等操作。
写的顺序:select ... from... where.... group by... having... order by..
执行顺序:from... where...group by... having.... select ... order by...

去重 distinct

作用:去除select 查询出来的结果中重复的数据,重复数据只展示一列.
关键字:DISTINCT
用法:select DISTINCT source from table
source:去重的字段条件
table: 表名

模糊查询 like

排序

order by 字段 desc 降序从高到底
Asc 升序

分组

group by
having

更新

新增

删除

delete,drop,truncate 都有删除表的作用,区别在于:
1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。
3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

创建表

新增数据库字段和注释,修改数据库字段长度

有值就查询,没值就不查这个字段

获取字段的长度

oracle

在 Oracle 中,要获取一个字符串的字节数,可以使用 LENGTHB 函数。LENGTHB 函数返回一个字符串的字节数,不包括末尾的空格。如果您需要获取一个字符串的字符数,可以使用 LENGTH 函数。请注意,这两个函数的行为略有不同,因为一个字符可能由多个字节组成。
以下是在 Oracle 中使用 LENGTHB 函数和 LENGTH 函数的示例:
这两个示例中,'Hello World' 是一个包含 11 个字符的字符串,其中包含一个空格。第一个示例使用 LENGTHB 函数来获取字符串的字节数,结果为 11。第二个示例使用 LENGTH 函数来获取字符串的字符数,结果为 11。请注意,对于 ASCII 字符集中的字符,一个字符通常由一个字节组成。但是,对于 Unicode 字符集中的字符,一个字符可能由多个字节组成。因此,在 Oracle 中,根据需要选择正确的函数来获取所需的信息。

mysql

在标准的My SQL 中,也没有 DATALENGTH 函数。MySQL 中获取字符串长度的函数有两种:
  1. LENGTH 函数:返回字符串的字符数,不包括末尾的空格。例如:
    1. 这个查询将返回 11,因为 'Hello World' 这个字符串包含 11 个字符。
  1. CHAR_LENGTH 函数:返回字符串的字符数,不包括末尾的空格。例如:
    1. 这个查询也将返回 11。
      在大多数情况下,CHAR_LENGTH 和 LENGTH 函数是相同的,因为 UTF-8 编码下,一个字符通常只占用一个字节。
需要注意的是,在一些编码环境下,通过 LENGTH 计算出的长度可能和实际完整字符长度不同,因此在使用 LENGTH 函数时需要注意编码环境的设置。
不同的数据库管理系统可能对 SQL 标准的实现略有不同,因此一些数据库可能会提供其他名称的函数来获取字符串长度,例如 Oracle 的 LENGTH 和 LENGTHB 函数。在具体使用时,应查阅相应数据库的文档。

数据库事务特征

原子性,一致性,隔离性,持久性。
隔离机制,脏读,丢失修改,不可重复读,幻读

GROUP BY

分组列: GROUP BY 语句后面跟的是一个或多个列,数据库根据这些列的值将数据分组。同一组内的行在所有指定的列上都有相同的值。 聚合函数: 聚合函数对数据进行数学运算,如计算平均值(AVG)、总和(SUM)、最大值(MAX)、最小值(MIN)或计数(COUNT)。 选择列: SELECT 语句中可以包含分组列和聚合函数,但如果选择的列没有包含在 GROUP BY 中,且没有使用聚合函数处理,那么查询可能会返回错误。
  • 选择非聚合列:在 SELECT 子句中,除了聚合函数计算的列外,所有列都应该在 GROUP BY 子句中列出。如果你选择了一个没有包含在GROUP BY 中的列,这通常会导致错误,因为没有聚合函数应用于它,数据库不知道如何为每个组选择一个值。
  • NULL 值的分组:在分组时,GROUP BY 会将 NULL 值视为相同的值进行分组。这意味着所有 NULL 值会被归入同一组。
  • HAVING 子句:如果你需要对分组后的结果进行过滤,应该使用 HAVING 子句而不是 WHERE 子句。WHERE子句在数据分组前进行过滤,而 HAVING 子句在数据分组后对分组的结果进行过滤。
  • 聚合函数的使用:在 SELECT 语句中可以使用多种聚合函数来计算每个组的统计信息,如 SUM()、AVG()、MAX()、MIN() 和 COUNT()。每个聚合函数都有其特定用途,选择合适的聚合函数可以帮助你获得需要的信息。
  • 性能考虑:GROUP BY 操作可能会涉及大量的数据处理,特别是在处理大型数据集时。合理地选择分组列和优化聚合函数的使用可以帮助提高查询的性能。
  • 分组顺序:在 GROUP BY 子句中列出多个列时,数据首先按照第一个列的值进行分组,然后是第二个列的值,以此类推。分组顺序可能会影响到输出结果的排序,但不会影响到分组聚合的结果。
  • 与ORDER BY共用:虽然 GROUP BY 会对输出结果进行一定的排序(按照分组列排序),但如果你需要特定的排序顺序,应明确使用 ORDER BY 子句。
 
 
 

评论