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用法 概述及解释说明
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语句可以通过查询数据库的系统表来实现。以下是一些常用的查询表结构的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语句及基本操作
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
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的启动和关闭 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;
