一个简单的表.
还有建表语句.
还有表结构
unsigned 无符号(正数)
zerofill 前导零填充
auto_increment 自增
default 默认值
not null 非空
PRIMARY KEY 主键 (非null并不重复)
unique 唯一性 (可以为null但不重复)
ENGINE=MyISAM 表类型(innoDB)
CHARSET=utf8 字符集(utf8)
\h -- 快捷帮助
\c -- 取消命令输入
\s -- 查看当前数据库的状态
\q -- 退出mysql命令行
mysql的数据类型分类
整型
tinyint 微整型
有符号: -128 ~ 127
无符号: 0 ~ 255
主要用于:年龄数据,常常用于表示一个布尔值!
smallint 小整形
有符号: -32768 ~ 32767
无符号: 0 ~ 65535
很少使用
mediumint 中整型
有符号:-8 388 608,8 388 607
无符号:0 ~ 16 777 215
较少使用
int 整型
有符号:-2147483648 ~ 2147483647
无符号:0 ~ 4294967295
表示用户的数字id.最常用的类型.
bigint 大整形
有符号:-9233372036854775808 ~ 9223372036854775807
无符号:0,18 446 744 073 709 551 615
甚少使用,因为很少需要这么大的数值
##浮点型
float 单精度浮点型
使用4字节存储浮点型
double 双精度浮点型
使用8字节存储浮点型
decimal 字符串双精度浮点型
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值
金融数据存储推荐使用decimal类型,因为他的本质是字符串.
##布尔类型
在MYSQL中没有真正的布尔类型,如果表示布尔类型需要使用tinyint来进行表示
0表示false 1表示true
##字符串类型
varchar 变长字符串
范围:0 ~ 255
char 定长字符串
范围:0 ~ 255
定长字符和变长字符的优缺点:
定长字符:浪费物理存储空间,读取效率高
变长字符:节省物理存储空间,读取效率低.
使用方式:
如果可以确定数据的最大长度.推荐使用定长字符串,效率更高.
如果没有办法确定数据的最大长度,推荐使用变长字符存储
----
tinytext 微文本类型
范围:0 ~ 255字节
text 文本类型
范围:0-65535字节
mediumtext 中文本类型
范围: 0-16 777 215字节
longtext 长文本类型
范围:0-4 294 967 295字节
---
tinyblob 微二进制文本类型
范围:0 ~ 255字节
blob 二进制文本类型
范围:0-65535字节
mediumblob 中二进制文本类型
范围: 0-16 777 215字节
longblob 长二进制文本类型
范围:0-4 294 967 295字节
blob类型和text类型的区别
text 区分字符大小写,用于存储文本数据
blob 不区分字符大小写,用于存储文件数据
----
binary 定长二进制数据
varbinary 变长二进制数据
binary和varbinary的特征":
binary和varbinary用于存储二进制字符,blob用于存储二进制文件
binary存储时采用定长字符存储,占用空间,读取效率高
varbinary存储时采用变长字符存储,节省空间,读取效率低
-----
char 用于存储正常的字符
binary 用于存储二进制的字符
text 用于存储正常的文本字符
blob 用于存储二进制文件的字符
----
##时间和日期类型
date 日期格式数据
范围:1000-01-01/9999-12-31
格式:YYYY-MM-DD
time 时间格式数据
范围:'-838:59:59'/'838:59:59'
格式: HH:MM:SS
year 年格式数据
范围:1901/2155
格式:YYYY
datetime 日期时间格式数据
范围:1000-01-01 00:00:00/9999-12-31 23:59:59
格式:YYYY-MM-DD HH:MM:SS
timestamp 时间戳格式
范围:1970-01-01 00:00:00/2037 年某时
格式:YYYYMMDD HHMMSS
----
##枚举类型
enum 枚举类型
格式: enum(值1,值2...);
必须从给定的数值中选取1个插入数据库,否则报错
##集合类型
set 集合类型
格式: set(值1,值2...)
必须从给定的值中选取N个值插入数据库,否则而报错,N>=1