学习笔记-关系型数据库-MySQL-shell基本操作、数据类型
SQL结构化查询语言
类型:
数值类型:
整数:
TINYINT: 1byte, -128-127, 0-255, 微整数
SMALLINT: 2byte, -32768-32767, 0-65535, 小整数
MEDIUMINT: 3byte, -2^23-2^23-1, 0-2^24-1, 中等整数
INT: 4byte, -2^31-2^31-1, 0-2^32-1, 整数
BIGINT: 8byte, -2^63-2^63-1, 0-2^64-1, 大整数
小数:
FLOAT: FLOAT(M, D)
M:总宽度
D:小数位数
FLOAT(5, 2) 举例如:129.35
DOUBLE: 比FLOAT精度更高
DECIMAL: DECIMAL(M, D)
M:有效位数
D:小数位数
占用M+2字节
字符类型:
CHAR: 固定长度字符
用法:CHAR(n),n是长度
最大长度255字符
不够指定字符数时在右边用空格补齐
自动截断超出指定字符数的数据
VARCHAR:可变长字符
用法:VARCHAR(n),n是长度
按数据大小分配存储空间
自动截断超出指定字符数的数据
text/blob:大文本类型
字符数大于65535存储时使用
日期时间类型
日期时间,DATETIME
占用8个字节
范围:1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
日期时间,TIMESTAMP,常用于时间戳
占用4个字节
范围:1970-01-01 00:00:00.000000 ~ 2038-01-19 03:14:07.999999
日期,DATE
占用4个字节
范围:0001-01-01 ~ 9999-12-31
年份,YEAR
占用1个字节
范围:1901~2155
时间,TIME
占用3个字节
格式:HH:MM:SS
关于日期的说明
关于日期时间字段
当未给TIMESTAMP字段赋值时,自动以当前时间赋值,而DATETIME字段默认赋值为0
YEAR年份的处理
默认用4位数表示
当只用2位数字赋值时
00-69 表示2000-2069
70-99 表示1970-1999
日期和时间函数
now():获取调用此函数时的系统日期时间,得出一次后,以后就不变了
sysdate():执行时动态获取系统日期时间,实时的
sleep(N):休眠N秒
curdate():获取当前的系统日期
curtime():获取当前的系统时刻
month():获取指定时间中的月份
date():获取指定时间中的日期
tiem():获取指定时间中的时刻
枚举类型
从给定值集合中选择单个值,ENUM
定义格式:enum(值1, 值2, 值N)
从给定值集合中选择一个或多个值,SET
定义格式:set(值1, 值2, 值N)
约束条件
Null允许为空,默认的设置是为空
NOT NULL不允许为空
Key索引类型(是否主键)
Default设置默认值,缺省为Null