约束(constrain)
sql 约束
约束用于限制加入表的数据的类型。
可以在创建表时规定约束(通过 create table 语句),或者在表创建之后也可以(通过 alter table语句)。
我们将主要探讨以下几种约束:
1.not null ---------------不为null
2.unique ---------------唯一约束
3.primary key --------------主键约束
4.foreign key -----------外键约束
5.check -------------条件约束
6.default -------默认约束
下面将详细描述每一种约束(为了不使一篇博客太长部分约束写在下面的地址待完善):
3.primary key --------------主键约束:http://blog.csdn.net/hudegang_35/article/details/50156637
4.foreign key -----------外键约束:http://blog.csdn.net/hudegang_35/article/details/50157215
5.check -------------条件约束:http://blog.csdn.net/hudegang_35/article/details/50162267
6.default -------默认约束:http://blog.csdn.net/hudegang_35/article/details/50163733
1.not null约束
描述:not null约束强制列不接受null值 。
not null约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
案例:
create table persons
(
id int not null,
name varchar(20) not null
)
2.unique约束
描述:unique约束唯一标识数据库表中的每一条记录。
unique和primary key约束均为列或列集合提供了唯一性的保证。
primary key拥有自动定义的unique约束。
注意:每个表可以有多个unique约束,但是每个表只能有一个primary key约束。
案例:
MySql:
create table persons
(
id int not null,
name varchar(20) not null,
unique(id)
)
SQL Server/Oracle/MS Access:
create table persons
(
id int not null unique,
name varchar(20) not null
)
如果需要命名unique约束,以及为多个列定义unique约束,请使用下面sql语法:
Mysql/sql server/oracle/ms access:
create table persons
(
id int not null,
name varchar(255) not null,
address varchar(255),
constraint uc_PersonID unique (id,name)
)
------uc_PersonID为约束名。
当表已经创建时,如需在id列创建unique约束,请使用下面sql:
mySql/sql server/oracle/ms access:
alter table persons add unique (id)
如需要命名unique约束,并定义多个列的unique约束,请使用下面的sql语句:
mySql/sql server/oracle/ms access:
alter table persons
add constraint uc_personID unique (id,name)
--uc_personID是unique约束的名称
撤销unique约束
如需撤销unique约束,请使用下面的sql:
MySQL:
alter table persons
drop index uc_personID
--uc_personID是unique的约束名称
sql Servers/Oracle/Ms access:
alter table persons
drop constraint uc_personID
--uc_personID是unique的约束名称
约束(constrain)相关推荐
- 约束constrain,SystmVerilog语法
约束块是类的成员,像变量.task和function一样,约束块的名字在一个类里是唯一的,约束块的声明如下: class bus;rand bit [31:0] addr,dataconstrain ...
- Oracle truncate、 delete、 drop区别
相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. t ...
- .NET架构与模式探索
什么是架构 软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构.架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的视点也会造成软件体系结构的不同理解,以下是一些主流的标 ...
- [转]SQL truncate 、delete与drop区别
相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. t ...
- mysql 学习笔记(二)
常用情景 标签:常见 面试 sql 习题 1.列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 创建表: mysql> CREATE TABLE employee921(i ...
- SQL中truncate table和delete的区别
truncate table table_namedelete from table_namedrop table table_name truncate table在功能上与不带where子句的de ...
- oracle同义词truncate,详解Oracle DELETE和TRUNCATE 的区别
语法 delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以. 2.delete from记录是一条条删的,所删除的每 ...
- 转 Oracle 删除表,oracle 中删除表 drop delete truncate 的区别
相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名(后面不跟where语句,则也删除表中所有的数据) truncate ...
- 强化学习笔记:PPO 【近端策略优化(Proximal Policy Optimization)】
1 前言 我们回顾一下policy network: 强化学习笔记:Policy-based Approach_UQI-LIUWJ的博客-CSDN博客 它先去跟环境互动,搜集很多的 路径τ.根据它搜集 ...
- mysql 列名能不能写成col1、col2_Mysql 寒假刷题TIPs
##mysql数据库事务### 数据库事务(简称:事务)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元. 1. 主键 超键 候选键 外键 主 键:数据库表中对储存数据对象予以唯 ...
最新文章
- Asp.net中具体的日期格式化用法
- 借助线下渠道逆袭?小米的愿望恐成镜花水月!
- redis灵魂拷问:19图+11题带你面试通关
- 关于HashCode方法,可变对象和内存泄漏问题
- 浅析综合布线系统中检测双绞线的几种方式
- 笔记2深度学习 梯度和梯度法
- leetcode-136-只出现一次的数字
- 告别2013拥抱2014
- “鸿蒙”来了?华为或将于开发者大会公布鸿蒙系统
- Java中的SOAP技术
- php markdown 电子书_PHP Markdown转PDF解决方案
- Linux软件包管理之源码包、脚本安装包
- 无传感FOC控制中的转子位置和速度确定方法一
- 03 ZooKeeper底层原理剖析与命令实战
- 六分钟八法则塑造优秀程序员
- 【剑指offer】二进制中1的个数
- java token 超时_前后端分离——token超时刷新策略
- Java Exception的日志输出
- 在计算机网络中ftp服务器的用途是,FTP的作用以及传输文件的一般步骤
- 美元人民币汇率API