Python 40 数据库-约束
约束
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 ******
最新文章
- cookie的存储和获取
- Python模块之常用模块,反射以及正则表达式
- [转载]html中DTD使用小结
- 使用Grunt启动和运行
- EM算法原理以及高斯混合模型实践
- Python-2.7.11+Django-1.9.4安装配置
- Visual Prolog 的 Web 专家系统 (9)
- windows系统下在dos命令行kill掉被占用的pid
- 关于js中的类型内容总结(类型识别)
- C语言学习——C程序的运行机理
- Log4j2 简明教程
- 开源库BaseRecyclerViewAdapterHelper
- 使用SimHash进行海量文本去重[转载]
- <;a>;链接添加样式问题
- 【Vegas原创】SQL Server 只安装客户端的方法
- [potatos][flex][TBC] 语义分析词法分析 flex
- 关于MySql数据库主键及索引的区别
- 如何给list清空
- UVC调试
- Oracle 11g数据库详解(3)
热门文章
- C# 后台按键 视频播放器 全屏后无法 触发
- 50.percentiles百分比算法以及网站延时统计
- 腾讯云&;硬盘信息
- PAT 1113 Integer Set Partition
- noip模拟赛 括号序列
- libcloud代码研究(三)——bugs
- code vs 2166 Bessie的体重问题
- MVC.Net 5:允许保存和输出Html内容
- HDU 5016 Mart Master II (树上点分治)
- [Cypress] Create Aliases for DOM Elements in Cypress Tests