当前位置: 首页 > news >正文

网站转化率/搜狗站长工具平台

网站转化率,搜狗站长工具平台,天津百度推广公司,做普通网站需要服务器吗Oracle之Check约束实例详解2014-11-11 0个评论 来源:jssg_tzw的专栏 收藏 我要投稿Oracle | PL/SQL Check约束用法详解 1. 目标 实例讲解在Oracle中如何使用CHECK约束(创建、启用、禁用和删除) 2. 什么是Check约束? CHECK约束指在表的列中增…
Oracle之Check约束实例详解
2014-11-11      0个评论    来源:jssg_tzw的专栏  
收藏    我要投稿

Oracle | PL/SQL Check约束用法详解

1. 目标

实例讲解在Oracle中如何使用CHECK约束(创建、启用、禁用和删除)

2. 什么是Check约束?

CHECK约束指在表的列中增加额外的限制条件。

注: CHECK约束不能在VIEW中定义。CHECK约束只能定义的列必须包含在所指定的表中。CHECK约束不能包含子查询。

3. 创建表时定义CHECK约束

3.1 语法:

?
1
2
3
4
5
6
7
CREATE TABLE table_name
(
    column1 datatype null/not null,
    column2 datatype null/not null,
    ...
    CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE]
);

其中,DISABLE关键之是可选项。如果使用了DISABLE关键字,当CHECK约束被创建后,CHECK约束的限制条件不会生效。


3.2 示例1:数值范围验证

?
1
2
3
4
5
6
7
8
create table tb_supplier
(
  supplier_id       number,
  supplier_name     varchar2(50),
  contact_name      varchar2(60),
  /*定义CHECK约束,该约束在字段supplier_id被插入或者更新时验证,当条件不满足时触发。*/
  CONSTRAINT check_tb_supplier_id CHECK (supplier_id BETWEEN 100 and 9999)
);

验证:
在表中插入supplier_id满足条件和不满足条件两种情况:

?
1
2
3
4
5
--supplier_id满足check约束条件,此条记录能够成功插入
insert into tb_supplier values(200, 'dlt','stk');
--supplier_id不满足check约束条件,此条记录能够插入失败,并提示相关错误如下
insert into tb_supplier values(1, 'david louis tian','stk');

不满足条件的错误提示:

?
1
2
3
4
Error report -
SQL Error: ORA-02290: check constraint (502351838.CHECK_TB_SUPPLIER_ID) violated
02290. 00000 -  "check constraint (%s.%s) violated"
*Cause:    The values being inserted do not satisfy the named check


3.3 示例2:强制插入列的字母为大写

?
1
2
3
4
5
6
7
8
9
create table tb_products
(
  product_id        number not null,
  product_name      varchar2(100) not null,
  supplier_id       number not null,
  /*定义CHECK约束check_tb_products,用途是限制插入的产品名称必须为大写字母*/
  CONSTRAINT check_tb_products
  CHECK (product_name = UPPER(product_name))
);

验证:
在表中插入product_name满足条件和不满足条件两种情况:

?
1
2
3
4
--product_name满足check约束条件,此条记录能够成功插入
insert into tb_products values(2, 'LENOVO','2');
--product_name不满足check约束条件,此条记录能够插入失败,并提示相关错误如下
insert into tb_products values(1, 'iPhone','1');

不满足条件的错误提示:

?
1
2
3
SQL Error: ORA-02290: check constraint (502351838.CHECK_TB_PRODUCTS) violated
02290. 00000 -  "check constraint (%s.%s) violated"
*Cause:    The values being inserted do not satisfy the named check

4. ALTER TABLE定义CHECK约束

4.1 语法

?
1
2
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE];

其中,DISABLE关键之是可选项。如果使用了DISABLE关键字,当CHECK约束被创建后,CHECK约束的限制条件不会生效。

4.2 示例准备

?
1
2
3
4
5
6
7
8
drop table tb_supplier;
--创建实例表
create table tb_supplier
(
  supplier_id       number,
  supplier_name     varchar2(50),
  contact_name      varchar2(60)
);

4.3 创建CHECK约束

?
1
2
3
4
--创建check约束
alter table tb_supplier
add constraint check_tb_supplier
check (supplier_name IN ('IBM','LENOVO','Microsoft'));

4.4 验证

?
1
2
3
4
5
--supplier_name满足check约束条件,此条记录能够成功插入
insert into tb_supplier values(1, 'IBM','US');
--supplier_name不满足check约束条件,此条记录能够插入失败,并提示相关错误如下
insert into tb_supplier values(1, 'DELL','HO');
不满足条件的错误提示:
?
1
2
3
SQL Error: ORA-02290: check constraint (502351838.CHECK_TB_SUPPLIER) violated
02290. 00000 -  "check constraint (%s.%s) violated"
*Cause:    The values being inserted do not satisfy the named check

5. 启用CHECK约束

5.1 语法

 

?
1
2
ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;

 

5.2 示例

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
drop table tb_supplier;
--重建表和CHECK约束
create table tb_supplier
(
  supplier_id       number,
  supplier_name     varchar2(50),
  contact_name      varchar2(60),
  /*定义CHECK约束,该约束尽在启用后生效*/
  CONSTRAINT check_tb_supplier_id CHECK (supplier_id BETWEEN 100 and 9999) DISABLE
);
--启用约束
ALTER TABLE tb_supplier ENABLE CONSTRAINT check_tb_supplier_id;

 

6. 禁用CHECK约束

 

6.1 语法

 

?
1
2
ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;

 

6.2 示例

 

?
1
2
--禁用约束
ALTER TABLE tb_supplier DISABLE CONSTRAINT check_tb_supplier_id;

 

7. 约束详细信息查看
语句:

 

?
1
2
3
4
5
6
7
8
9
--查看约束的详细信息
select
constraint_name,--约束名称
constraint_type,--约束类型
table_name,--约束所在的表
search_condition,--约束表达式
status--是否启用
from user_constraints--[all_constraints|dba_constraints]
where constraint_name='CHECK_TB_SUPPLIER_ID';


 

8. 删除CHECK约束

8.1 语法

?
1
2
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

8.2 示例

?
1
2
ALTER TABLE tb_supplier
DROP CONSTRAINT check_tb_supplier_id;
---------------------------------------------------------------------------------------------------------

转自红黑联盟


http://www.lbrq.cn/news/956017.html

相关文章:

  • 成为网站有哪些网址?/百度账号人工客服
  • 永川做网站的公司/域名查询入口
  • 如何做pc网站适配/自己有货源怎么找客户
  • 中国人寿寿险保险公司官方网站/青岛神马排名优化
  • 网站上线后/推广引流平台app大全
  • 唯美网站建设/昆明网站seo公司
  • wordpress卡蜜销售/杭州最好的seo公司
  • 网站跟自媒体建设/seo排名专业公司
  • 网站管理系统开发的/浙江seo外包
  • 竞价网站策划/产品网络推广的方法有哪些
  • 深圳在建高铁站/seo网站页面优化包含
  • 做一个企业的网站怎么做的/如何提高网站搜索排名
  • 新手学做网站cs5版视频/经典软文推广案例
  • 电子商务网站的开发原则包括/seo公司怎么样
  • ai做图标教程网站/精准客户信息一条多少钱
  • 信誉好的集团网站建设/西点培训学校
  • 广州网站seo优化排名/友情链接举例
  • 南山的网站建设公司/网站自建
  • 长春网站推广方式/临沂百度seo
  • 平湖市建设局网站/西安seo顾问公司
  • 网站设计标题/百度搜索热度排名
  • 武汉网站制作027/天津seo渠道代理
  • 广州网站建设制作公司/百度快速收录权限
  • 最出名的网站建设公司/网站之家
  • tomcat做公司网站/百度指数查询网
  • 临沂广润网站建设/店铺推广软文范例
  • 文化传播做网站推广吗/青岛排名推广
  • 网站页面制作软件/苹果cms播放器
  • 网站提示页面设计/如何进行线上推广
  • 2345浏览器主页/找索引擎seo
  • C/C++数据结构之单向链表
  • Oracle Database 23ai 技术细节与医疗 AI 应用
  • 透过结构看时间——若思考清洗则表达有力
  • API开发提速新方案:SmartBear API Hub与ReadyAPI虚拟化整合实践
  • Jenkins Git Parameter 分支不显示前缀origin/或repo/
  • 【JVM】深入理解 JVM 类加载器