mysql数据类型、约束

一、数据类型

  数字:

  tinyint:无符号长度0-255 有符号长度 -128-127

  int、bigint、float、double、decimal(类似)

  int(5):显示长度,zerofill不足位用0补齐

  字符:

  char:定长数据结构,存取速度快,浪费空间

  varchar:变长数据结构,存取速度慢,节省空间

  length():查看字节数

  char_length():查看字符数

  时间类型:

  year:1901/2155

  DATE:YYYY-MM-DD

  TIME:HH:MM:SS

  DATETIME:YYYY-MM-DD HH:MM:SS

  create table s1(d date,s time,dt datetime);

  insert into s1 values(now(),now(),now());

  枚举:多选一

  enum

  集合:多选多

  set

  create table consumer(id int,sex enum('male','female'),fev set('read','play','music');

  insert into consumer values(1,'male','read,play');

二、完整性约束

  1、not null 与default:不为空、设置默认值

    cteate table t1(id int not null default 1,num int);

  2、unique:唯一

    第一种写法:create table s1(id int unique);

    第二种写法:create table s1(id int,unique(id));

    联合唯一:

    create table s1(id int,num int,unique(id,num));

    id与num只要有一个不同就可以添加

  3、primary key

    单列作为主键,多列作为主键

    primary key 等价于 not null +unique

    示例:

    create table s1(id int primary key,num int);

    create table s1 (id int, num int,primary key(id,num));

  4、auto_increment

    约束的字段自动增长,约束的字段必须同时被key约束

    示例:

    create table s1(id int primary key auto_increment,num int);

    insert into s1(num) values(2);

    

    # 设置步长 为会话设置,只在本次连接中有效
      set session auto_increment_increment=5;

    #全局设置步长 都有效。
      set global auto_increment_increment=5;

    # 设置起始偏移量
      set global auto_increment_offset=3;

    

原文地址:https://www.cnblogs.com/wszxdzd/p/9672978.html