MySQL 2.0

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 持久性:事务提交之后,数据是永久性的,不可再回滚,不受关机等事件的影响。

事务在如下情况终止:

  1. 遇到rollbackcommit命令
  2. 遇到DDL或者DCL语句.
  3. 系统发生错误,崩溃或者退出。

序列的使用

  • 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

猜你喜欢

转载自www.cnblogs.com/gyhbk/p/12335617.html