约束

1、什么是约束 ?

除了数据类型以外额外添加的约束

2、为什么要使用约束 ?

为了保证数据的合法性 完整性

分类:

1、not null 非空约束,数据不能为空-------------------create table student (id ind,name char(10) not null);

2、default  默认值约束   可以指定字段的默认值--------create table user (id ind,name char(10) not null,sex char(1) default "woman");

3、unique   唯一性约束  该字段的值不能重复,unique其实是一种索引索引是一种数据结构 用于提高查询效率,可以为空,一张表中可以有多个唯一约束

单列唯一约束---------------------create table t5(idcard char(18) unique);

多列联合唯一约束---------------create table t6(idcard char(18),phonenumber char(11),unique(idcard,phonenumber));

4、primary key  (******)称之为主键约束,

用于唯一标识表中一条记录,该字段只要是惟一的,并且不为空即可,也就是说,从约束的角度来看主键约束和非空约束,唯一约束没有区别,

它们之间的区别是,

唯一约束是一种索引,必然存在硬盘上的某个文件中,是物理层面(实实在在存在的数据)

primary key 是一种逻辑意义上的数据 (实际上不存在)

换句话说,主键就是由唯一约束和非空约束组成的约束,就像 一男一女,可以组成夫妻,但是夫妻只是一种称呼,不实际存在

语法:

create table stu (stuid int primary key,name char(3));

create table t7(id int unique not null,name char(3));

有主键和没有主键的区别

1.无法区分两个相同记录,比如班级里有两个人名字相同

2.有主键则意味有这索引,效率更高

3.可以建立关联关系

多列联合主键---------------create table t8(idcard char(18),phonenumber char(11),primary key(idcard,phonenumber));

要不要主键?

必须的,每个表都应该有主键 哪怕不用唯一标识 也应该考虑提升效率,主键的字段名 几乎都叫id

同一个表中可以不可以有多个主键?

不可以,没有任何意义,主键的类型需要设置为整型,当然别的也行!建议你别这么干!

5、auto_increment ******

中文:自动增长

作用:通常搭配主键字段使用,可以自动为你的数据分配逐渐

分配的方式是,添加一条就自动加1  计数从1开始

语法: ******

create table t9(id int primary key auto_increment,name char(3));

如果主键是自动增长  你可以跳过这个字段 也可以为它插入null  都可以,修改自动增长的起始位置  **     alter table t9 auto_increment = 7;

注意: 自动增长 只能用于整型

6、foreign key ******

最新文章

  1. cookie的存储和获取
  2. Python模块之常用模块,反射以及正则表达式
  3. [转载]html中DTD使用小结
  4. 使用Grunt启动和运行
  5. EM算法原理以及高斯混合模型实践
  6. Python-2.7.11+Django-1.9.4安装配置
  7. Visual Prolog 的 Web 专家系统 (9)
  8. windows系统下在dos命令行kill掉被占用的pid
  9. 关于js中的类型内容总结(类型识别)
  10. C语言学习——C程序的运行机理
  11. Log4j2 简明教程
  12. 开源库BaseRecyclerViewAdapterHelper
  13. 使用SimHash进行海量文本去重[转载]
  14. <a>链接添加样式问题
  15. 【Vegas原创】SQL Server 只安装客户端的方法
  16. [potatos][flex][TBC] 语义分析词法分析 flex
  17. 关于MySql数据库主键及索引的区别
  18. 如何给list清空
  19. UVC调试
  20. Oracle 11g数据库详解(3)

热门文章

  1. C# 后台按键 视频播放器 全屏后无法 触发
  2. 50.percentiles百分比算法以及网站延时统计
  3. 腾讯云&硬盘信息
  4. PAT 1113 Integer Set Partition
  5. noip模拟赛 括号序列
  6. libcloud代码研究(三)——bugs
  7. code vs 2166 Bessie的体重问题
  8. MVC.Net 5:允许保存和输出Html内容
  9. HDU 5016 Mart Master II (树上点分治)
  10. [Cypress] Create Aliases for DOM Elements in Cypress Tests