1.sql的基础应用

a.库

名字
属性:字符集,排序规则




名字
表属性:存储引擎类型,字符集,排序规则
列名
列属性:数据类型,约束,其他属性
数据行


b.字符集
show charset; 查询支持的字符集

默认情况下5.7的字符集默认是 latin1 | cp1252 West European

2种utf8

utf8 3个字节
utf8mb4 (建议) 4个字节 (8.0默认此种utf8) 支持emoji

c.排序规则

show collation; 查看校对(排序)规则


+--------------------------+----------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| utf8mb4_general_ci | big5 | 1 | Yes | Yes | 1 |
| utf8mb4_bin | big5 | 84 | | Yes | 1 |

对于英文字符串的来说

utf8mb4_general_ci 大小写不敏感
utf8mb4_bin 大小写敏感(存日文 拼音等)

d.数据类型

数字

tinyint
int
浮点数

字符串

char(100) 定长度 不管存储的字符串长度有多长,都立即分配100个字符长度的存储空间,未占
满的 空间使用“空格”填充
varchar(100) 可变长度 每次存储数据之前,都要先判断一下长度,按需分配,当长度在255之内,使
用1个 字符长度的空间存储长度,超过255则使用2个字符长度的空间存储长度

如何选择这2种数据类型呢?

少于255个字符的,定长的选择char (仅针对写 可能影响索引性能)
大于255个字符的,变长的选择varchar (仅针对写 可能影响索引性能)

 

enum 枚举数据类型

定义时将可能用到的全部定义进去,未来在使用的过程中只能在定义的范围内选择,如:

address enum('apple','banana','orange'....)

优势是在定义时会给apple banana orange 编号为 1 2 3 这样会提高性能


时间

datetime

范围 1000-01-01 至 9999-12-31

timestamp

范围 1970-01-01 至 2038-01-19 03:14:07
带有时区的概念

 

附https://www.runoob.com/mysql/mysql-data-types.html

posted on 2020-05-19 15:10  wilson'blog  阅读(181)  评论(0)    收藏  举报