二、MYSQL中的SQL
MYSQL支持关系数据库的三级模式结构:
- 外模式:视图、部分基本表
- 模式:基本表,一个表可以有多个索引,索引也在存储文件中。
- 内模式:若干存储文件,存储文件的逻辑结构组成了内模式,存储文件的物理结构对用户透明。
一个关系对应一个基本表,一个或多个基本表对应一个存储文件。
视图是从一个或多个基本表导出的虚表,数据库只存储视图的定义,不需要存储其数据。
视图上可以再定义视图。
MYSQL还在SQL标准的基础上增加了一些语言要素:
(1)常量
- 字符串常量:使用单引号或双引号括起来的字符序列。(建议一直使用单引号, When to use single quotes, double quotes, and backticks in MySQL)
- Ascii字符串常量: 'ABCD'
- Unicode字符串常量: N'ABCD'
- 数值常量:
- 整型常量: 34, 89
- 浮点型常量: 1.45 6.37
- 十六进制常量:默认类型是字符串!!可以使用函数转为数字处理 cast(... as unsigned)。字符串或数值也可以用 hex()转为16进制常量。通常以字符串常量的形式书写,0x'4D7953514C',每2个十六进制数字可以被转换为一个Ascii字符(4D->M, 79->y),其最前面有大写字母"X"或小写的"x",也可以用0x4D7953...的形式书写,此时不需要单引号。
- 日期时间常量:单引号括起来的字符串。'2019-10-10'
- 位字段值(BIT列的值):b'value'的形式书写,value是二进制序列。
- 布尔值:TRUE = 1 / FALSE =0
- NULL值
(2)变量
- 用户变量: @UserVar
- 系统变量: @@systemVar
(3)运算符
- 算数运算符: + - * / %
- 位运算符: &, | ,^ ,~ ,>> ,<<
- 比较运算符:=, >, <, >=, <=, <>, !=, <=>(当两个值都为NULL时,结果为1,否则为0)
- 逻辑运算符:NOT/! , OR/||, AND/&&, XOR