枚举与集合类型 约束条件

枚举与集合类型

  枚举(enum) 限制某个字段能够存储的数据内容
  集合(set) 限制某个字段能够存储的数据内容

create table user(
      id int,
    name char(16),
    gender enum(‘male‘,‘female‘,‘others‘)
  );

  insert into user values(1,‘jason‘,‘xxx‘)  # 报错
  insert into user values(2,‘egon‘,‘female‘)  # 正确!

  create table teacher(
    id int,
    name char(16),
    gender enum(‘male‘,‘female‘,‘others‘),
    hobby set(‘read‘,‘sleep‘,‘sanna‘,‘dbj‘)
  );
  insert into teacher values(1,‘egon‘,‘male‘,‘read,sleep,dbj‘)  # 集合也可以只存一个

约束条件

not null 不能为空
default 给某个字段设置默认值(当用户写了的时候用用户的,当用户没有写就用默认值)
create table t17(id int,name char(16) default ‘jason‘);

往表中插入数据的时候 可以指定字段进行插入 不需要全部都插
insert into t17(name,id) values(‘egon‘,2);

unique 唯一
单列唯一 限制某一个字段是唯一的
联合唯一(在语句的最后 用括号的形式 表示哪几个字段组合的结果是唯一的)
ip
port

  create table server(
  id int,
  ip char(16),
  port int,
  unique(ip,port)
  )

primary key 主键
限制效果跟 not null + unique 组合效果一致 非空且唯一

create table t18(id int primary key);

primary key也是innodb引擎查询必备的索引
索引你就把当成书的目录

innodb引擎在创建表的时候 必须要有一个主键
当你没有指定主键的时候
1.会将非空切唯一的字段自动升级成主键
2.当你的表中没有任何的约束条件 innodb会采用自己的内部默认的一个主键字段
该主键字段你在查询时候是无法使用的
查询数据的速度就会很慢
类似于一页一页的翻书

create table t19(
id int,
name char(16),
age int not null unique,
addr char(16) not null unique
);

主键字段到底设置给谁呢???
通常每张表里面都应该有一个id字段
并且应该将id设置为表的主键字段

联合主键:多个字段联合起来作为表的一个主键,本质还是一个主键!!!
!!!!!!!!!!!!!!!!!ps:innodb引擎中一张表有且只有一个主键!!!!!!!!!!!!!!!!!!!!!!!

create table t20(
ip char(16),
port int,
primary key(ip,port)
);
desc t20;

主键字段应该具备自动递增的特点
每次添加数据 不需要用户手动输入
auto_increment 自动递增
create table t21(id int primary key auto_increment,name varchar(16));

create table t22(id int primary key,name varchar(16));

delete from 仅仅是删除数据 不会重置主键
truncate 初始化表 会重置主键

原文地址:https://www.cnblogs.com/lddragon/p/11380616.html

时间: 2024-11-07 23:42:30

枚举与集合类型 约束条件的相关文章

浮点型+字符(串)类型+时间类型+枚举与集合类型+约束条件

浮点型 分类:FLOAT DOUBLE decimal 应用场景:身高,体重,薪资 字段限制特点(5,3)前一位表示所有的位数,后一位表示小数个数 三者最大整数位和小数位对比: # 存储限制float(255,30)double(255,30)decimal(255,30)?# 精确度验证create table t9(x float(255,30));create table t10(x double(255,30));create table t11(x decimal(65,30));?i

MySQL数据类型--------枚举与集合类型实战

1. 背景 * MySQL数据库提供针对字符串存储的两种特殊数据类型:枚举类型ENUM和集合类型SET,集合类型数据类型可以给予我们更多提高性能.降低存储容量和降低程序代码理解的技巧. 2. 枚举与集合类型所属空间与最大成员数量 类型 占用字节 最大成员数量 ENUM 1 or 2, 取决于枚举成员的数量 65535 SET 1|2|3|4|8,取决于集合成员的数量 64 3. 枚举与集合约束检查应用 * 创建表 e_s mysql> CREATE TABLE e_s(     -> uid 

3 日期类型/字符类型/枚举类型/集合类型/约束条件

create table student( id int, name char(6), born_year year, birth_date date, class_time time, reg_time datetime ); insert into student values (1,'eddie',now(),now(),now(),now()); 字符类型 1 char: 定长 2 varchar: 变长 #宽度指的是字符的个数 create table t1(name char(5))

引擎,创建完整表,数据库模式,数据库类型,约束条件

引擎(****) 前提:引擎是提供给表使用的,不是数据库 mysql> show engines;#展示所有的引擎 #重点: #innodb(默认):支持事务,行级锁,外键 #myisam:查询效率优于innodb,当不需要支持事物,行级锁,外键,可以通过设置myisam来优化数据库 mysql> use db1; mysql> create table t1(id int)engine=innodb; mysql> create table t2(id int)engine=my

枚举类型与集合类型

枚举类型与集合类型 字段的值只能在给定范围中选择,如单选框,多选框 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...) MariaDB [db1]> create table consumer( -> name varchar(50), -> sex enum('male','female'), -> level enum('vip1','vip2','vip

3-3-4 枚举类型与集合类型

枚举类型与集合类型 字段的值只能在给定范围中选择,如单选框,多选框 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...) MariaDB [db1]> create table consumer( -> name varchar(50), -> sex enum('male','female'), -> level enum('vip1','vip2','vip

MySQL 存储引擎 字段类型 约束条件

? 1.存储引擎 ? - 存储引擎是用于根据不同的机制处理不同的数据. ? - 查看mysql中所有引擎: ? - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackhole: 类似于队列中的数据,存进去消失 - innodb: 默认使用存储引擎 - 支持事务 - 行锁 - 外键 - memory: 通电数据存在,断电丢失 create table t1(id int)engine=innodb; create table t2(id int)eng

进击的雨燕--------------集合类型

Swift 语言提供Arrays.Sets和Dictionaries三种基本的集合类型用来存储集合数据.数组(Arrays)是有序数据的集.集合(Sets)是无序无重复数据的集.字典(Dictionaries)是无序的键值对的集. Swift 语言中的Arrays.Sets和Dictionaries中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.同时这也说明我们完全可以对取回值的类型非常自信. 注意:Swift 的Arrays.Sets和Dictionaries类型被实现

集合类型

http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/04_Collection_Types.html 本页包含内容: 数组(Arrays) 字典(Dictionaries) 集合的可变性(Mutability of Collections) Swift 语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用