MariaDB -- 数据类型
Mariadb 的数据类型
MariaDB数据类型可以分为数字,日期和时间以及字符串值。
使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的
常用的数据类型
- 整数:int, bit
- 小数:decimal #decimal(5,2)
- 字符串:varchar, char
- 日期时间:date, time, datetime
- 枚举类型(enum)
约束
- 主键primary key:物理上存储的顺序
- 非空not null:此字段不能为空
- 唯一unique:此字段不允许重复
- 默认default:当不填写此值时会使用默认值,如果填写则已填写为准
- 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
# varchar,与char 的区别
- 首先明确的是,char的长度是不可变的,而varchar的长度是可变的,
- 定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,
- char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
- char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
1> 简单的创建一个表 (注:进入数据库里)
create table clasees;( id tinyint unsigned, name varchar(20));
#查看 show tables;
2>查看 表里有哪些字段
desc clasees;
3>查看表的结构
show create table clasees;
4>创建一个稍微复杂一丢丢的表
创建students表(id, name, age, high, gender, cls_id) create table students( id tinyint unsigned, name varchar(20), age tinyint unsigned, high decimal(5,2), gender enum('男','女','人妖','中性') default ('人妖'), cls_id tinyint unsigned);
#
#2查看下
desc students;