oracle数据库constraint用法

在Oracle数据库中,约束(constraint)用于实施所谓的"业务规则",防止非法信息进入数据库,满足管理员和应用开发人员所定义的规则集。以下是约束的几种类型及其用法:

1. 主键约束(Primary Key):对一个列进行约束,要求非空且不重复。格式:alter table [表名] add constraint [约束名称] primary key

([列名])。

2. 外键约束(Foreign Key):通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键。格式:alter table [表名] add constraint [约束名称]

foreign key ([列名]) references [其他表名]([列名])。

3. 检查约束(Check):给一列的数据进行了限制。格式:alter table

[表名] add constraint [约束名称] check ([列名])。

4. 唯一约束(Unique):给列的数据追加的不重复的约束类型。格式:alter table [表名] add constraint [约束名称] unique ([列名])。

5. 默认约束:让此列的数据默认为一定的数据。格式:alter table

[表名] add constraint [约束名称] default ([默认值]) for [列名]。

在使用这些约束时,需要注意以下几点:

1. 如果没有为约束提供一个名字,那么Oracle会分配一个系统生成的唯一名字,以SYS_开头。

2. 约束定义存储在数据字典中,可以通过查询USER_CONSTRAINTS来获得相关信息。

3. 如果相关的约束定义在单列上,可以在列这一级指定约束的定义;多列约束必须定义在数据表级,相关的列要在括号中指定,用逗号分隔。

4. 如果一个DML语句执行的任何结果破坏了完整性约束,Oracle就会回滚语句,返回错误信息。

合集下载

oracle_primary用法_概述及解释说明

oracle_primary用法_概述及解释说明

oracle primary用法 概述及解释说明

1. 引言

1.1 概述

在关系型数据库中,Primary Key(主键)是一种重要的数据库约束,用于唯一标识一个表中的每一行数据。它是数据库设计中非常重要的概念之一,对于保障数据完整性和提高查询效率都具有很大作用。本文将详细介绍Oracle数据库中Primary Key的用法及其相关解释说明。

1.2 文章结构

本文由以下几个部分组成。首先是引言部分,对文章进行概述,并介绍文章的结构。接下来是Oracle Primary用法部分, 介绍了Primary Key的基本定义、作用以及如何定义和使用Primary Key。然后是Primary Key的特点和限制部分,

包括唯一性约束、非空约束以及自动递增特性等。随后是如何选择和设计Primary Key部分, 讨论根据业务需求选择合适的Primary Key类型、设计复合主键时需要考虑的因素以及索引对Primary Key性能的影响等方面内容。最后是结论部分,总结了Primary Key在数据库设计中的重要性与应用价值,并给出了正确使用Primary Key提高数据完整性和查询效率的建议,并展望了未来Database设计发展趋势。

1.3 目的

本文旨在全面介绍Oracle Primary Key的用法,帮助读者深入了解Primary Key的概念、作用和限制,以及如何正确选择和设计Primary Key。通过本文的阅读,读者将能够更好地理解Primary Key在数据库设计中的重要性,并能够合理运用它来提高数据库的性能和数据完整性。此外,本文还对未来Database设计发展趋势进行了展望,为读者提供思考与探索的方向。

2. Oracle Primary用法:

2.1 什么是Primary Key

Primary Key(主键)是数据库表中的一列或一组列,其具有唯一性和非空性的特点。每个数据库表都应该有一个Primary Key,它用于唯一标识表中的每行数据。

第四章理论课数据库对象

第四章理论课数据库对象

《Oracle数据库应用 》理论课

数据库对象

 本章技能目标

 使用同义词

 使用序列

 创建视图

 创建索引

1. 数据库对象

Oracle 数据库对象又称模式对象。数据库对象是逻辑结构的集合,最基本的数据库对象是表。其他数据库

对象包括:同义词,序列,视图,索引。下面我们依次讲解这几个数据库对象的使用。

2. 同义词

同义词是数据库对象的一个别名,这些对象可以是表,视图,序列,过程,函数,程序包,甚

至其它同义词,通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀,

例如用户USER1要访问用户USER2的表EMP,必须使用USER2.EMP,那么USER1就可以使

用同义词像访问自己的表一样引用USER2.EMP了。

同义词有以下用途:

 简化SQL语句

 隐藏对象的名称和所有者

 提供对对象的公共访问

 为分布式数据库德远程对象提供了位置透明性

同义词允许应用程序访问数据库对象,不论那个用户或哪个数据库拥有该对象。但是同义词不

能代替权限,在使用同义词之前确保用户已得到访问对象的权限。

可以通过同义词执行SELECT,INSERT,UPDATE,DELETE,LOCK TABLE ,GRANT和REVOKE

等语句。同义词只是表的一个别名,因此对它的操作都会影响到表。

同义词共有两种类型:

 公有同义词。

 私有同义词。

2.1 私有同义词和公有同义词 第4章 数据库对象

- 2 - 2

私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM 系统权限。要在其

它用户模式的创建私有同义词,用户必须CREATE ANY SYNONYM系统权限.。

创建私有同义词语法如下: Create [OR REPLACE] SYNONYM [schema.]synonym_name FOR [schema.]object_name;

oracle查询表结构sql语句

oracle查询表结构sql语句

oracle查询表结构sql语句

在Oracle数据库中,查询表结构的SQL语句可以通过查询数据库的系统表来实现。以下是一些常用的查询表结构的SQL语句。

1. 查询表的所有列名和数据类型:

```

SELECT column_name, data_type

FROM all_tab_columns

WHERE table_name = '表名';

```

这条SQL语句会返回指定表的所有列名和对应的数据类型。

2. 查询表的主键列:

```

SELECT constraint_name, column_name

FROM all_cons_columns

WHERE table_name = '表名' AND constraint_name = 'PK_表名';

```

这条SQL语句会返回指定表的主键列名。

3. 查询表的外键列:

```

SELECT constraint_name, column_name, r_constraint_name,

r_table_name FROM all_cons_columns

WHERE table_name = '表名' AND constraint_name LIKE 'FK_%';

```

这条SQL语句会返回指定表的外键列名、相关联的表名和外键约束名。

4. 查询表的索引:

```

SELECT index_name, column_name

FROM all_ind_columns

WHERE table_name = '表名';

```

这条SQL语句会返回指定表的索引名和对应的列名。

5. 查询表的约束:

```

SELECT constraint_name, constraint_type

FROM all_constraints

WHERE table_name = '表名' AND constraint_type IN ('P', 'U',

OracleDDL语句及基本操作

OracleDDL语句及基本操作

OracleDDL语句及基本操作

DDL语句create、alter、drop、truncate

数据定义 (DDL) 部分

⼀、create语句

基本语法:CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)

常⽤的字段类型有

CHAR 固定长度的字符串

VARCHAR2 可变长度的字符串

NUMBER (M,N) 数字型M是位数总长度, N是⼩数的长度

DATE ⽇期类型

INT 整数型

创建表时要把较⼩的不为空的字段放在前⾯, 可能为空的字段放在后⾯,

创建表时可以⽤中⽂的字段名, 但最好还是⽤英⽂的字段名,

创建表时可以给字段加上默认值, 例如 DEFAULT SYSDATE这样每次插⼊和修改时, 不⽤程序操作这个字段都能得到动作的

时间

创建表时可以给字段加上约束条件

例如: 不允许重复 UNIQUE , 主键 PRIMARY KEY ,外键Foreign key ⼆、alter语句

语法 ALTER (改变表, 索引, 视图等)1.改变表名

ALTER TABLE 表名1 TO 表名2;

2.增加字段

ALTER TABLE表名 ADD 字段名(列) 字段名描述;

增加⼀列

ALTER TABLE table_name ADD column_1 DATE NOT NULL;

ALTER TABLE table_name ADD column_2 VARCHAR2(44) DEFAULT '';

ALTER TABLE table_name ADD column_3 number(28,10);

增加多列

ALTER TABLE table_name

ADD (

column_1 type constraint,--列名 类型 约束

column_2 type constraint,

...

);

3.删除字段

删除⼀列ALTER TABLE table_name DROP COLUMN column_name;

ORACLE数据库中查看所有表的外键信息SQL

ORACLE数据库中查看所有表的外键信息SQL

ORACLE数据库中查看所有表的外键信息SQL

ORACLE 数据库中查看所有表的外键信息SQL

a.OWNER "外键拥有者",

a.Table_Name "外键表",

c.Column_Name "外键列",

b.OWNER "主键拥有者",

b.Table_Name "主键表",

d.Column_Name "主键列",

c.Constraint_Name "外键名",

d.Constraint_Name "主键名"

user_Constraints a,

user_Constraints b,

user_Cons_Columns c,-- 外键表

user_Cons_Columns d -- 主键表

a.r_Constraint_Name = b.Constraint_Name

a.Constraint_Type = 'R'

b.Constraint_Type = 'P'

a.r_Owner = b.OWNER

a.Constraint_Name = c.Constraint_Name

b.Constraint_Name = d.Constraint_Name

a.OWNER = c.OWNER

a.Table_Name = c.Table_Name

b.OWNER = d.OWNER

b.Table_Name = d.Table_`Name`

a.Table_Name ;

Oracle常用命令大全(很有用,做笔记)

Oracle常用命令大全(很有用,做笔记)

Oracle常⽤命令⼤全(很有⽤,做笔记)

⼀、ORACLE的启动和关闭 1、在单机环境下

要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下 su - oracle

a、启动ORACLE系统

oracle>svrmgrl

SVRMGR>connect internal

SVRMGR>startup

SVRMGR>quit

b、关闭ORACLE系统

oracle>svrmgrl

SVRMGR>connect internal

SVRMGR>shutdown

SVRMGR>quit

启动oracle9i数据库命令: $ sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> connect / as sysdba

Connected to an idle instance.

SQL> startup^C

SQL> startup

ORACLE instance started.

2、在双机环境下

要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下 su - root

a、启动ORACLE系统

hareg -y oracle

b、关闭ORACLE系统

hareg -n oracle

Oracle数据库有哪⼏种启动⽅式

说明:

有以下⼏种启动⽅式: 1、startup nomount

⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库

读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。

2、startup mount dbname

安装启动,这种⽅式启动下可执⾏:

oracle modify用法 -回复

oracle modify用法 -回复

Oracle Modify 用法

Oracle Modify 是 Oracle 数据库中的一个关键字,用来修改已存在的数据库表或视图的结构和数据。在本文中,我们将逐步探讨 Oracle Modify

的用法和示例。

在使用 Oracle 数据库进行开发和管理时,经常需要对已存在的表或视图进行修改。这可能是为了增加新的列,删除现有的列,修改数据类型,更新约束条件,或者进行其他结构和数据的更改。Oracle Modify 提供了一种方便和高效的方法来实现这些需求。

首先,让我们了解一些基本的 Oracle Modify 语法。下面是一个典型的

Oracle Modify 语句的基本结构:

ALTER TABLE table_name

MODIFY (column_name1 data_type1 constraint1,

column_name2 data_type2 constraint2,

...

column_nameN data_typeN constraintN);

在这个语句中,你需要指定表名(table_name)以及需要修改的列名、数据类型和约束条件。可以一次性修改多个列。

现在让我们通过一个实际的示例来说明 Oracle Modify 的用法。假设我们有一个名为 "employees" 的表,其中包含 "employee_id"、"first_name" 和 "last_name" 等列。我们想要将 "first_name" 和

"last_name" 列的数据类型从 VARCHAR2 改为 NVARCHAR2。

以下是对应的 Oracle Modify 语句:

ALTER TABLE employees

MODIFY (first_name NVARCHAR2(100),

last_name NVARCHAR2(100));

oracle表结构查询语句

oracle表结构查询语句

Oracle是一种关系型数据库管理系统,它具有强大的数据操作和查询功能。在Oracle中,表是存储数据的基本单位,表结构查询语句用于查看表的结构信息,包括表名、字段名、字段类型、字段长度等。下面列举了10个符合要求的Oracle表结构查询语句。

1. 查询指定表的所有字段名和字段类型

```sql

SELECT COLUMN_NAME, DATA_TYPE

FROM ALL_TAB_COLUMNS

WHERE TABLE_NAME = '表名'

```

这条语句通过查询ALL_TAB_COLUMNS视图,可以获取指定表的所有字段名和字段类型。

2. 查询指定表的所有字段名和字段长度

```sql

SELECT COLUMN_NAME, DATA_LENGTH

FROM ALL_TAB_COLUMNS

WHERE TABLE_NAME = '表名'

```

这条语句通过查询ALL_TAB_COLUMNS视图,可以获取指定表的所有字段名和字段长度。

3. 查询指定表的主键字段名

```sql

SELECT COLUMN_NAME

FROM ALL_CONSTRAINTS C, ALL_CONS_COLUMNS CC

WHERE C.TABLE_NAME = '表名'

AND C.CONSTRAINT_TYPE = 'P'

AND C.CONSTRAINT_NAME = CC.CONSTRAINT_NAME

AND CC.TABLE_NAME = '表名'

```

这条语句通过查询ALL_CONSTRAINTS和ALL_CONS_COLUMNS视图,可以获取指定表的主键字段名。

4. 查询指定表的外键字段名和关联表名

```sql

SELECT A.COLUMN_NAME, B.TABLE_NAME

FROM ALL_CONSTRAINTS A, ALL_CONSTRAINTS B

oracle语句汇总

Oracle 常用语句汇总

select * from user_tab_comments 取得所有表的注释

select * from user_col_comments 取得所有列的注释

select * from user_tables 取得当前用户下所有的表

1、查找表的所有索引(包括索引名,类型,构成列):

select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name

and t.table_name = i.table_name and t.table_name = 要查询的表

2、查找表的主键(包括名称,构成列):

select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name =

au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表

3、查找表的唯一性约束(包括名称,构成列):

select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name =

au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表

4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表

Oracle删除视图

Oracle删除视图

在本教程中,您将学习如何使⽤Oracle DROP VIEW语句从数据库中删除视图。

Oracle DROP VIEW语句简介

要从数据库中删除视图,请使⽤以下DROP VIEW语句:

DROP VIEW schema_name.view_name

[CASCADE CONSTRAINT];

下⾯来看看各个参数的说明 -

schema_name - ⾸先,指定包含视图的模式的名称。如果跳过模式名称,则Oracle假定该视图位于当前⽤户模式中。

view_name - 其次,指定要删除的视图的名称。如果⼀个视图被其他视图,物化视图或同义词所引⽤,Oracle将把这些对象标记

为INVALID,但不会将其移除。

CASCADE CONSTRAINT - 第三,如果视图有任何约束,则必须指定CASCADE CONSTRAINT⼦句以删除引⽤视图中的和唯⼀键的所有

参照完整性约束。如果不这样做,存在这样的约束时,DROP VIEW语句将会失败。

Oracle DROP VIEW⽰例

以下语句基于employees表创建⼀个名为salesman的视图:

CREATE VIEW salesman AS

SELECT

*

FROM

employees

WHERE

job_title = 'Sales Representative';

该视图仅返回职位为销售代表的员⼯。

SELECT

*

FROM

salesman;

如下所⽰ -

以下语句基于salesman视图创建另⼀个名为salesman_contacts的视图:

CREATE VIEW salesman_contacts AS

SELECT

first_name,

last_name,

email,

phone

FROM

salesman;

salesman_contacts视图返回推销员的唯⼀名称,电⼦邮件和电话:

SELECT

*

FROM

salesman_contacts;

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档