postgre sql 括字段_SQL-约束(cnostraints)
SQL 约束(Constraints)
SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 create table 语句),或者在表创建之后规定(通过 alter table 语句)。
create table + constraint 语法
create
在 SQL 中,我们有如下约束: - not null - 指示某列不能存储 NULL 值。 - unique - 保证某列的每行必须有唯一的值。 - primary key - not null 和 unique 的结合。确保某列(或两个列多个列的结合)有唯>一标识,有助于更容易更快速地找到表中的一个特定的记录。 - foreign key - 保证一个表中的数据匹配另一个表中的值的参照完整性。 - check - 保证列中的值符合指定的条件。 - default - 规定没有给列赋值时的默认值
接下来,我们依次给大家分享每一种约束。
Sql not null 约束
在默认的情况下,表的列接受 NULL 值。not null 约束强制列不接受 NULL 值。not null 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
下面的 SQL 强制 "PersonID" 列、 "Name" 列以及 "Address" 列不接受 NULL 值:
create
添加 not null 约束
在一个已创建的表的 "City" 字段中添加 not null 约束如下所示: 实例
alter
删除 not null 约束
在一个已创建的表的 "Age" 字段中删除 NOT NULL 约束如下所示: 实例
alter
注意:在添加和删除not null约束,我用change和modify命令始终报错,这是因为我用的是sql server数据库,而change和modify命令是在my sql 和oracle下才能用的语法。
Sql unique 约束
unique 约束唯一标识数据库表中的每条记录。unique 和primary key约束均为列或列集合提供了唯一性的保证。primary key 约束拥有自动定义的 unique 约束。请注意,每个表可以有多个 unique约束,但是每个表只能有一个 primary key 约束。
create table 时的 unique 约束
下面的 SQL 在 "Persons" 表创建时在 "PersonId" 列上创建unique 约束:
MySQL:
create
SQL Server / Oracle / MS Access:
create
如需命名 unique 约束,并定义多个列的 unique 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
create
alter 时的 unique 约束
当表已被创建时,如需在 "PersonID" 列创建unique 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
alter
如需命名 unique 约束,并定义多个列的 unique 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
alter
撤销 unique 约束
如需撤销 unique 约束,请使用下面的 SQL:
MySQL:
alter
SQL Server / Oracle / MS Access:
alter
primary key 约束
primary key 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
create table 时的 primary key 约束
下面的 SQL 在 "Persons" 表创建时在 "PersonID" 列上创建 primary key 约束:
MySQL:
create
SQL Server / Oracle / MS Access:
create
如需命名 primary key 约束,并定义多个列的 primary key 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
create
注释:在上面的实例中,只有一个主键 primary key(pk_PersonID)。然而,pk_PersonID 的值是由两个列(PersonID和 Name)组成的。
alter table 时的 primary key 约束
当表已被创建时,如需在 "PersonId" 列创建 primary key 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
alter
如需命名 primary key 约束,并定义多个列的 primary key 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
alter
注释:如果您使用 alter table 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
撤销 primary key 约束
如需撤销 primary key 约束,请使用下面的 SQL:
MySQL:
alter
SQL Server / Oracle / MS Access:
alter
foreign key 约束
一个表中的 foreign key 指向另一个表中的 unique key(唯一约束的键)。 让我们通过一个实例来解释外键。请看下面两个表:
Persons 表:
Orders表:
请注意: - Orders"表中的 "PersonId" 列指向 "Persons" 表中的 "PersonId" 列。 - "Persons" 表中的 "PersonId" 列是 "Persons" 表中的 primary key。 - "Orders" 表中的 "PersonId" 列是 "Orders" 表中的 foreign key。 - foreign key约束用于预防破坏表之间连接的行为。 - foreign key约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
create table 时的foreign key 约束
下面的 SQL 在 "Orders" 表创建时在 "PersonId" 列上创建 foreign key 约束:
MySQL:
create
SQL Server / Oracle / MS Access:
create
如需命名foreign key 约束,并定义多个列的foreign key约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
create
alter table时的foreign key约束
当 "Orders" 表已被创建时,如需在 "P_Id" 列创建 foreign key约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
alter
如需命名 foreign key约束,并定义多个列的 foreign key约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
alter
撤销foreign key约束
如需撤销 foreign key约束,请使用下面的 SQL:
MySQL:
alter
SQL Server / Oracle / MS Access:
alter
check 约束
check 约束用于限制列中的值的范围。如果对单个列定义 check 约束,那么该列只允许特定的值。如果对一个表定义 check 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
create table 时的check 约束
下面的 SQL 在 "Persons" 表创建时在 "PersonId" 列上创建 check 约束。check 约束规定 "PersonId" 列必须只包含大于 0 的整数。
MySQL:
create
SQL Server / Oracle / MS Access:
create
如需命名 check 约束,并定义多个列的 check 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
create
alter table 时的check 约束
当表已被创建时,如需在 "P_Id" 列创建 check 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
alter
如需命名 check 约束,并定义多个列的 check 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
alter
撤销 check 约束
如需撤销 check 约束,请使用下面的 SQL:
SQL Server / Oracle / MS Access:
alter
MySQL:
alter
Sql default 约束
default 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。
create table 时的default 约束
下面的 SQL 在 "Persons" 表创建时在 "City" 列上创建 default 约束:
My SQL / SQL Server / Oracle / MS Access:
create
通过使用类似getdata()这样的函数,default 约束也可以用于插入系统值:
create
alter table 时的default 约束
当表已被创建时,如需在 "City" 列创建 default 约束,请使用下面的 SQL:
MySQL:
alter
SQL Server / MS Access:
alter
Oracle:
alter
撤销 default 约束
如需撤销 default 约束,请使用下面的 SQL:
MySQL:
alter
SQL Server / Oracle / MS Access:
alter
postgre sql 括字段_SQL-约束(cnostraints)相关推荐
- postgre sql 括字段_【技术干货】30个最适合初学者的SQL查询
毫无疑问,SQL或结构化查询语言是最流行的编程语言之一,尤其是因为它具有访问和修改数据库中数据的功能.SQL与数据库接口的基本用法是其流行的最重要原因. 关于SQL的最基本方面之一就是查询.基本上,S ...
- Postgre SQL修改字段类型语法
最近有用到Postgre SQL,网上有些写法不能成功修改字段类型,这里记录一下 整体语法 ALTER table 表名 ALTER COLUMN 字段名 type 字段类型 USING 字段名::字 ...
- java解析sql查询字段_sql解析json格式字段 如何获取json中某个字段的值?
java将json数据解析为sql语句?小编给你倒一杯热水.可你惦记着其他饮料,所以你将它放置一旁.等你想起那杯水时,可惜它已经变得冰冷刺骨. 图片中是json数据,每个数据的开头都有表名称,操作类型 ...
- sql的外键约束和主键约束_SQL主键约束用示例解释
sql的外键约束和主键约束 A primary key is a column or a set of columns that uniquely identifies each row in a t ...
- sql 拼接int类型的字段_SQL 基础教程—第一章:4. 表的创建
第四节:表的创建 1.1 数据库的创建 创建表之前,需要先创建一个用来存储表的数据库,使用: create 比如我们要创建一个名称为 shop 的数据库,则 create database shop; ...
- sql的外键约束和主键约束_SQL约束
sql的外键约束和主键约束 SQL | 约束条件 (SQL | Constraints) Constraints are the guidelines implemented on the infor ...
- sql删除字段约束 删除字段
1 /*******sql删除字段约束 删除字段**********/ 2 DECLARE @table NVARCHAR(50);---定义表 3 DECLARE @cloumn NVARCHAR( ...
- mysql sql语句编码_SQL语句实用例子 MySQL编码设置
SQL语言包含4个部分: ★ 数据定义语言(DDL),例如:CREATE.DROP.ALTER等语句. ★ 数据操作语言(DML),例如:INSERT(插入).UPDATE(修改).DELETE(删除 ...
- SQL学习之check约束
目录 参考源 SQL check 约束 示例数据 create table 添加 check 约束 多个字段添加约束 给 check 约束命名 alter table 时的 SQL check 约束 ...
最新文章
- android 高通平台有前途吗,华为鸿蒙计划要适配高通平台了,可以告别安卓搭载鸿蒙OS了?...
- php会员中心模板,会员中心模板
- java c3p0 连接 mysql_Java使用C3P0数据源链接数据库
- [翻译] ObjectAL for iPhone and Mac(持续更新)
- css3制作一个漂亮的按钮
- 计算机网络实验设计应用题,计算机网络实验三实验报告.doc
- (Java集合框架)List接口
- TCP的三次握手与四次挥手图文
- 数据结构 2-3-3 循环链表
- 英伟达新GPU发布:快到飞起,快到老黄瞬间学会了跳舞
- 1035. 插入与归并(25)-浙大PAT乙级真题
- 直指Adobe的龌龊行径
- python3数据库框架_Python3 MySQL 数据库连接:安装pymysql(mysql数据库驱动), sqlalchemy(ORM框架)。...
- 常用开源 SLAM 方案
- c/c++再学习:C与Python相互调用
- 热门的Linux运维管理面板全面汇总
- Excel图表设置X轴位置为最底部
- 角谷猜想(次数+过程)
- linux终端如何连接wifi,如何在 Linux 终端中连接使用 WiFi?
- _motz_ forum.php_开启模块化大门 moto z体验