MariaDB -- 数据类型

时间:2022-12-13 09:03:45

Mariadb 的数据类型

MariaDB数据类型可以分为数字,日期和时间以及字符串值。

使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的

常用的数据类型

  1. 整数:int, bit
  2. 小数:decimal                                     #decimal(5,2)
  3. 字符串:varchar, char  
  4. 日期时间:date, time, datetime
  5. 枚举类型(enum)

约束

  1. 主键primary key:物理上存储的顺序
  2. 非空not null:此字段不能为空
  3. 唯一unique:此字段不允许重复
  4. 默认default:当不填写此值时会使用默认值,如果填写则已填写为准
  5. 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常

# varchar,与char 的区别

  1. 首先明确的是,char的长度是不可变的,而varchar的长度是可变的,
  2. 定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,
  3. char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
  4. char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。

1> 简单的创建一个表 (注:进入数据库里)

create   table clasees;( id  tinyint  unsigned, name  varchar());

MariaDB -- 数据类型

#查看  show tables;

MariaDB -- 数据类型

2>查看 表里有哪些字段

desc  clasees;

MariaDB -- 数据类型

3>查看表的结构

show  create table  clasees;

MariaDB -- 数据类型

4>创建一个稍微复杂一丢丢的表

创建students表(id, name, age, high, gender, cls_id)

create table students(
id tinyint unsigned,
name varchar(),
age tinyint unsigned,
high decimal(,),
gender enum('男','女','人妖','中性') default ('人妖'),
cls_id tinyint unsigned);

#

MariaDB -- 数据类型

#2查看下

desc    students;

MariaDB -- 数据类型