MySQL 2.0
select 完整语句
写的顺序: select ...
from...
where....
group by...
having...
order by..
执行顺序: from...
where...
group by...
having....
select ...
order by...
组函数
常用的组函数
- AVG
- COUNT
- MAX
- MIN
- SUM
组函数的语法:(Group By)
SELECT [column,]group_function(column),...
FORM table
[WHERE condition]
[GROUP BY column]
[ORDER BY column]
注意: 组函数不能在WHERE子句中使用
在组函数中可以使用 Distinct 关键字用于去重
过滤分组:HAVING 子句
- 使用 HAVING 过滤分组
- 1、行已使用被分组
- 2、使用了组函数
- 3、满足 HAVING 子句中条件的分组将被显示
SELECT [column,]group_function(column),...
FORM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
注意: 组函数不能嵌套使用
子查询
- 为了给主要查询提供数据而先执行的查询称之为子查询
- 子查询要包含在括号内
- 将子查询放在比较条件的右侧
- 单行子查询
- = / > / >= / < / <= / <> / !=
- 多行子查询
- IN / ANY /ALL
事务
4个特性
- A 原子性:事务必须是一个自动工作的单元,要么全部执行,要么全部不执行。
- C 一致性:事务把数据库从一个一致状态带入到另一个一致状态,事务结束的时候,所有的内部数据都是正确的。
- I 隔离性:并发多个事务时,一个事务的执行不受其他事务的影响。
- D 持久性:事务提交之后,数据是永久性的,不可再回滚,不受关机等事件的影响。
事务在如下情况终止:
- 遇到rollback 或commit命令
- 遇到DDL或者DCL语句.
- 系统发生错误,崩溃或者退出。
序列的使用
- MySQL 序列是以升序生成的一组整数:1,2,3,...,宇宇生成主要识别的唯一数字,即主键。
- 可以在列上设置AUTO_INCREMENT属性,这通常是主键列。
UUID
- UUID代表通用唯一表示符。UUID是基于 “RFC 4122” 通用唯一标识符定义的。
- UUID被设计为在空间和时间全球独一无二的数组。预期两个UUID值是不同的。
- 在MySQL中,UUID值是一个128位的数字,表示为以下格式的十五进制数字的utf-8字符串:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
- 要生成UUID值,需要使用 UUID() 函数
UUID()
注意: 如果是有效的字符串格式UUID,IS_UUID()函数将返回 1 。如果参数不是有效的字符串格式UUID,则IS_UUID函数返回 0,如果参数为 NULL ,则IS_UUID() 函数返回 NULL。
SELECT BIN_TO_UUID(id) id, name
FROM customers;
SQL 约束
- NOT NULL => 约束强制列不接受 NULL 值
- UNIQUE => 约束唯一标识数据库表中的每条记录
- PRIMARY KEY => 约束唯一标识数据库表中的每条记录(主键必须包含唯一的值、主键列不能包含 NULL 值)
- FOREIGN KEY => 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY
- CHECK => CHECK 约束用于限制列中的值的范围
- DEFAULT => DEFAULT 约束用于向列中插入默认值(如果没有规定其他的值,那么会将默认值添加到所有的新记录)
客户端连接设置字符集
- MySQL连接器允许设置字符集:
jdbc:mysql://127.0.0.1:3306/?characterEncoding=utf-8&useSSL=true
原文地址:https://www.cnblogs.com/gyhbk/p/12335617.html
时间: 2024-10-10 03:37:54