mysql建表排序规则bin_mysql 第二章 建库建表规范

mysql 第二章 建库建表规范

一. 数据类型

1.整数

tinyint

int

2.字符串

char(100)

定长字符串类型,不管字符串长度多长,都立即分配100个字符长度的存储空间,未占满的空间使用"空格"填充

注:char 最长255

varchar(100)

变长字符串类型,每次存储数据之前,都要先判断一下长度,按需分配此盘空间.

会单独申请一个字符长度的空间存储字符长度(少于255,如果超过255以上,会占用两个存储空间)

注:varchar 最长65533

注: 如何选择这两个数据类型?

少于255个字符串长度,定长的列值,选择char

多于255字符长度,变长的字符串,可以选择varchar

三. 建库规范

1 .库名不能大写,库名不能以数字开头,不能是数据库内部的关键字,要使用于业务有关的名称

2. 必须设置字符集,推荐utf8mb4字符集,1个字符占用4个字节,修改数据库字符集,一定是从小往大了改,比如utf8--->utf8mb4(目标字符集一定是源字符集的严格超级.)

3. 设置 排序规则: collation(建库时不写则默认)

对于英文字符串的,大小写的敏感

utf8mb4_general_ci 大小写不敏感

utf8mb4_bin 大小写敏感(存拼音,日文)

注:建库语句:

CREATE DATABASE zabbix CHARSET utf8mb4 COLLATE utf8mb4_bin;

四. 表的内部关键字

PRIMARY KEY : 主键约束,表中只能有一个,非空且唯一,只能创建一个,就是索引

AUTO_INCREMENT : 自增长的列,配合主键列

NOT NULL : 非空约束,不允许空值

UNIQUE KEY : 唯一键约束,不允许重复值 unique

DEFAULT : 一般配合 NOT NULL 一起使用.

UNSIGNED : 无符号,一般是配合数字列,非负数

COMMENT : 注释

五. 建表规范*****

1.表名不能大写,表名不能以数字开头,不能是数据库内部的关键字,要使用于业务有关的名称

2. 选择合适的数据类型及长度, enum类型,只保存字符串类型,不要保存数字

3. 主键列尽量是无关列数字列,最好是自增长,(无关就是和其他无关系)

4. 每个列设置 NOT NULL + DEFAULT .对于数据0填充,对于字符使用有空格串填充

5. 表必须设置存储引擎和字符集,每个列设置注释

注: 样例

CREATE TABLE stu (

id INT PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT '学号',

sname VARCHAR(255) NOT NULL COMMENT '姓名',

age TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',

gender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别',

intime DATETIME NOT NULL DEFAULT NOW() COMMENT '入学时间'

)ENGINE INNODB CHARSET utf8mb4;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值