Oracle 禁止和激活约束
- 格式:doc
- 大小:64.00 KB
- 文档页数:2
oracle中constraint用法Oracle中Constraint用法在Oracle数据库中,Constraint(约束)是用于限制表中数据的完整性的规则。
它可以帮助我们保持数据的准确性和一致性。
下面是一些常用的Constraint用法。
1. NOT NULL Constraint(非空约束)NOT NULL约束用于确保某一列的值不为空。
当试图插入或更新该列中的值时,如果为空,则会触发一个错误。
示例:CREATE TABLE students (id NUMBER PRIMARY KEY,name VARCHAR2(50) NOT NULL,age NUMBER);2. UNIQUE Constraint(唯一约束)UNIQUE约束用于确保某一列中的值是唯一的,即不重复。
这可以用于避免重复数据的插入。
示例:CREATE TABLE employees (id NUMBER PRIMARY KEY,email VARCHAR2(50) UNIQUE,phone VARCHAR2(20),...);3. PRIMARY KEY Constraint(主键约束)PRIMARY KEY约束用于定义一列或一组列作为表的主键,主键的值在表中必须是唯一的,并且不能为空。
示例:CREATE TABLE customers (id NUMBER PRIMARY KEY,name VARCHAR2(50),email VARCHAR2(50),...);4. FOREIGN KEY Constraint(外键约束)FOREIGN KEY约束用于定义与其他表之间的关联关系,确保数据的一致性。
一个表的外键关联到另一个表的主键。
示例:CREATE TABLE orders (id NUMBER PRIMARY KEY,customer_id NUMBER,...CONSTRAINT fk_orders_customers FOREIGN KEY (customer_i d)REFERENCES customers(id));5. CHECK Constraint(检查约束)CHECK约束用于限制一列中的值必须满足特定的条件。
1.主键约束主键约束保证数据表中的数据不会出现重复,这也是常说的实体完整性。
2.主键不一定只有一列,主键不能为空。
3.创建主键约束3.1在创建表的时候定义主键约束:Create table 表名(列名1 数据类型primary key,列名2 数据类型……)3.2创建表后添加主键Alter table 表名add primary key(列名1,列名2….)alter table student add primary key(id)4.为主键命名alter table student add constraint keyid primary key(id)5.重命名主键alter table student rename constraint keyid to idkey6.删除主键alter table student drop primary key7.索引是数据库提供的一种可以用于提高数据性能的机制,当用户在数据表的某列上创建了索引,而在检索数据时又使用了该索引时,Oracle可以很快地捕获符合条件的记录,而不必采用全表逐条扫描的方式。
8.在Oracle中,创建了主键之后,都会存在一个建立在主键列上的索引。
9.外键约束主键的作用是保证数据的完整性----即保证数据的唯一性主键可以看做表中数据之间的区分,而外键约束则适用于不同表之间的相互参照关系。
在两个表之间,一个表中的记录依附于另一个表的记录而存在,称为表之间的参照完整性。
如customer表中存储了客户的信息,而purchase_order表中存储了订单信息,那么purchase_order中的每一条记录都依附于coustomer表中的记录而存在,即建立了两表之间的参照完整性。
10.创建外键约束alter table course add constraint courseforeignkey foreign key(STUDENTID)references student (id)在course表中,把列studentid创建为外键,附属于表student. 我们可以发现,由于外键的约束,在course中无法创建studentid超过10的行,因为在student中id没有超过10的。
Oracle常用DDL语句一、表空间管理CREATE [BIGFILE|SMALLFILE] [TEMPORARY] TABLESPACE tablespace name -- 表空间名字DATAFILE datafile spec | TEMPORARYFILE tempfile spec -- 数据文件/临时文件说明[MINIMUM EXTENT minimum extent size] -- 最小扩展空间[[BLOCKSIZE blocksize] DEFAULT STORAGE (defalut storage clause)] -- (锁空间大小)默认存储子句[LOGGING | NOLOGGING] -- 有无日志[FORCE LOGGING] -- 强制日志[ONLINE | OFFLINE] -- 在线/不在线[EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE size]] -- 扩展管理字典/本地(自动定位/统一大小)[SEGMENT SPACE MANAGEMENT MANUAL | AUTO] -- 管理extent中的block(设置为自动最佳)[FLASHBACK ON|OFF] -- 删除文件是否可找回1、1、创建永久表空间例:CREATE TABLESPACE MYTABLESPACE LOGGINGDATAFILE'D:\oracle\product\10.1.0\oradata\MYDB\MYTABLESPACE.DBF' SIZE 10M REUSEAUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL1、2、创建临时表空间例:CREATE TEMPORARY TABLESPACE MYTEMP LOGGINGTEMPFILE'D:\oracle\product\10.1.0\oradata\MYDB\MYTEMP.DBF' SIZE 10M REUSEAUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL更改默认临时表空间alter database default temporary tablespace TEMP2;1、3 删除表空间1)强行删除表空间,包括数据文件drop tablespace mytemp including contents and datafiles cascade constraints2)表空间内无任何对象时才能删除drop tablespace mytemp1.4 为表空间增加文件alter tablespace users add datafile 'd:\oracle\oradata\....\users02.dbf' size 10m;1.5 默认临时表空间在创建用户时,如果没有指定临时表空间,则会使用系统表空间作为临时表空间,如果指定了默认临时表空间,则在未指定临时表空间的情况下使用默认的临时表空间。
oracle约束条件(最新版)目录1.Oracle 约束条件的概念和作用2.Oracle 约束条件的分类3.Oracle 约束条件的实现方法4.Oracle 约束条件的优缺点分析5.Oracle 约束条件在实际应用中的案例正文Oracle 约束条件是指在 Oracle 数据库中,对表的数据进行限制和控制的规则。
它可以保证数据的完整性、一致性和可靠性,从而确保数据库的正确运行。
一、Oracle 约束条件的概念和作用在 Oracle 数据库中,约束条件是用来限制表中数据的添加、修改和删除操作的规则。
它可以防止无效数据的插入和修改,确保数据的正确性和完整性。
约束条件可以分为主键约束、外键约束、唯一约束、检查约束和默认约束等。
二、Oracle 约束条件的分类1.主键约束:主键约束是用来唯一标识表中的记录的,一个表只能有一个主键。
主键可以是一列或多列,可以是数值型、字符串型或日期型等。
2.外键约束:外键约束是用来建立表与表之间关系的,它可以保证数据的一致性和完整性。
外键约束可以参考其他表的主键,也可以参考其他表的唯一约束。
3.唯一约束:唯一约束是用来保证某列或多列的值唯一的,可以防止重复数据的插入。
唯一约束可以与主键一起使用,也可以单独使用。
4.检查约束:检查约束是用来保证某列或多列的值满足指定的条件的,可以防止无效数据的插入。
检查约束可以是数值型、字符串型或日期型等。
5.默认约束:默认约束是用来为列设置默认值的,当插入数据时,如果没有为该列设置值,系统会自动将默认值插入该列。
三、Oracle 约束条件的实现方法在 Oracle 数据库中,可以使用 ALTER TABLE 语句来添加、修改或删除约束条件。
例如,可以使用以下语句添加主键约束:```ALTER TABLE table_nameADD PRIMARY KEY (column_name);```使用以下语句添加唯一约束:```ALTER TABLE table_nameADD UNIQUE (column_name);```使用以下语句添加检查约束:```ALTER TABLE table_nameADD CONSTRAINT constraint_nameCHECK (column_name > value);```使用以下语句添加默认约束:```ALTER TABLE table_nameALTER COLUMN column_name SET DEFAULT default_value;```四、Oracle 约束条件的优缺点分析约束条件的优点是可以保证数据的完整性、一致性和可靠性,从而确保数据库的正确运行。
oracle constraint用法(一)Oracle Constraint用法•什么是Oracle Constraint?–Constraint(约束)是定义在表上的规则,用于限制对表中数据的插入、更新和删除操作。
–Oracle Constraint用于保证数据的完整性和一致性。
•主键约束(Primary Key)–主键约束用于定义一列或多列的唯一标识,并自动创建唯一索引。
–语法:CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ...)。
•唯一约束(Unique)–唯一约束用于确保某列或某几列的值都是唯一的。
–语法:CONSTRAINT constraint_name UNIQUE(column1, column2, ...)。
•非空约束(Not Null)–非空约束用于确保某列不允许为空值。
–语法:CONSTRAINT constraint_name NOT NULL (column_name)。
•外键约束(Foreign Key)–外键约束用于确保一张表中的数据引用另一张表中已存在的数据。
–语法:CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES parent_table(parent_column)。
–通过外键约束,可实现表之间的关联性和完整性。
•检查约束(Check)–检查约束用于限制某列的值必须满足特定条件。
–语法:CONSTRAINT constraint_name CHECK(condition)。
•启用和禁用约束–使用ENABLE关键字启用约束,该约束将会在表的修改操作中起作用。
–使用DISABLE关键字禁用约束,该约束将不会在表的修改操作中起作用。
•修改和删除约束–可使用ALTER TABLE语句修改或删除现有约束。
–修改约束:ALTER TABLE table_name MODIFYCONSTRAINT constraint_name new_constraint。
oracle数据库中提供的5种约束约束作⽤:⽤来保持数据的完整性,防⽌⽆效数据进⼊到数据库中。
oracle数据库中提供的5种约束,都是限定某个列或者列的组合的。
1、主键约束(PRIMARY KEY):在⼀个表中能唯⼀的标识⼀⾏。
主键可以限定在多个列上。
2、唯⼀键约束(UNIQUE key):在⼀个表中能唯⼀的标识⼀⾏,唯⼀键也可以限定在多个列上。
主键和唯⼀键的区别:a、⼀个表中最多只能有⼀个主键。
可以多个唯⼀键。
b、主键所限定的列不能为null,唯⼀键所限定的列可以为null.3、外键约束(FOREIGN key):引⽤表:有外键约束的列所在的表。
被引⽤表:外键所引⽤的列。
被引⽤的列只能是主键或者唯⼀键。
4、⾮空约束(NOT null):表⽰该列上的数据不能有null值。
5、检查性约束(check):表⽰该列上的数据必须满⾜某⼀个条件表达式。
如何创建约束:1、在创建表的同时创建约束a.列级别约束:在每个列写完之后写约束。
CREATE TABLE t_08132(id NUMBER(10) PRIMARY KEY ,NAME CHAR(10) NOT NULL,gender CHAR(2) CHECK (gender IN ('男','⼥')),email CHAR(20) UNIQUE)INSERT INTO t_08132 VALUES(1,'a','男','1@')INSERT INTO t_08132 VALUES(2,'a','男','2@')INSERT INTO t_08132 VALUES(3,'c','男','3@')INSERT INTO t_08132 VALUES(4,'d','','4@')INSERT INTO t_08132 VALUES(5,'e','妖','5@')//外键约束CREATE TABLE t_08133( id NUMBER(10) PRIMARY KEY ,NAME CHAR(10) NOT NULL,deptno NUMBER(2) REFERENCES dept(deptno))INSERT INTO t_08133 VALUES(1,'a',20)//给约束命名CREATE TABLE t_08134(id NUMBER(10) CONSTRAINT t4_id_pk PRIMARY KEY ,NAME CHAR(10) CONSTRAINT t4_name_nn NOT NULL,gender CHAR(2) CONSTRAINT t4_gen_ck CHECK (gender IN ('男','⼥')),email CHAR(20) CONSTRAINT t4_em_uk UNIQUE,deptno NUMBER(2) CONSTRAINT t4_deptno_fk REFERENCES dept(deptno))INSERT INTO t_08134 VALUES(5,'e','男','5@',NULL)INSERT INTO t_08134 VALUES(6,'e','男','6@',NULL)b.表级别约束:在所有列写完之后写约束。
oracle数据库约束、索引,enable和disable⽤处1.数据库索引索引:索引是对数据库表中⼀列或多列的值进⾏排序的⼀种结构索引分类:主键索引(PRIMAY KEY)、唯⼀索引(UNIQUE)、常规索引(INDEX)、全⽂索引(FULLTEXT)常规索引 CREATE INDEX 索引名 ON 表名 (字段名)唯⼀索引 CREATE UNIQUE INDEX 索引名 ON 表名 (字段名)2.数据库约束约束:数据库约束时防⽌⾮法记录的规则约束分类:主键约束(Primay Key Coustraint):唯⼀性,⾮空性,⼀个表只能有主键,创建主键时会⾃动创建主键索引ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (字段名)唯⼀约束(Unique Counstraint):唯⼀性,可以空,但只能有⼀个空,⼀张表可以有多个唯⼀约束,创建唯⼀约束时会⾃动创建唯⼀索引ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段)检查约束(Check Counstraint):对该列数据的范围、格式的限制(如:年龄、性别等)ALTER TABLE 表名 CHECK (字段约束)默认约束(Default Counstraint):该数据的默认值ALTER TABLE 表名 ALTER 字段名 SET DEFAULT '默认值'外键约束(Foreign Key Counstraint):需要建⽴两表间的关系并引⽤主表的列ALTER TABLE 表名1 ADD CONSTRAINT 外键名 FOREING KEY (表1字段) REFENCES 表名2(表2字段)3.disable与enable约束控制约束的约束,控制表的约束时禁⽌还是激活状态disable:禁⽌状态,相当于该列没有约束,使⽤disable默认为Novalidateenable:激活状态,默认新创建的约束状态是激活状态,使⽤enable默认为ValidateValidate Novalidate已有记录新增/删除记录已有记录新增/删除记录Enable Yes(表⽰需要受到约束条件限制)Yes No YesDisable Yes No No No。
约束简介约束用于确保数据库数据满足特定的商业逻辑或者企业规则,如果定义了约束,并且数据不符合约束,那么DML操作(INSERT、UPDA TE、DELETE)将不能成功执行。
约束包括NOT NULL、UNIQUE、PRIMARY KEY、FOREING KEY 以及CHECK等五种类型定义约束列级约束:column [CONSTRAINT constraint_name] constraint_type表级约束:column ,...,[CONSTRAINT constraint_name] constraint_type (column,...)1.定义NOT NULL约束NOT NULL 约束只能在列级定义,不能在表级定义例:CREATE TABLE emp01(eno INT NOT NULL,name V ARCHAR2(10) CONSTRAINT nn_name NOT NULL,salary NUMBER(6,2));2.CREATE TABLE remp01(Eno INT NOT NULL,Name varchar2(10) CONSTRAINT nn_name2 NOT NULL,Salary NUMBER(6,2),);上例中,eno列与name列上定义了NOT NULL约束,其中eno列的NOT NULL约束没有指定约束名,而name列则指定了约束名nn_name。
可以通过查询user_constraints字典来查看所定义的约束,如:SQL> select constraint_name,constraint_type from user_constraints2 where table_name='EMP01';CONSTRAINT_NAME CO------------------------------------------------------------ --SYS_C0010618 CNN_NAME C可见,没有给约束名的,系统将会自动的定义一个约束名称,其中约束类型中,P:表示主键,R:表示外键,C表示NOT NULL或CHECK,U表示UNIQUE。
oracle约束条件摘要:1.Oracle 约束条件的定义与作用2.Oracle 约束条件的类型3.Oracle 约束条件的使用示例4.Oracle 约束条件的优缺点正文:Oracle 约束条件是指在Oracle 数据库中,对表的数据进行限制和约束的条件。
它可以保证数据的完整性和准确性,防止无效数据的插入、更新和删除,从而确保数据库的稳定性和可靠性。
一、Oracle 约束条件的定义与作用在Oracle 数据库中,约束条件是用来限制表中数据的添加、修改和删除操作的规则。
它可以确保数据的完整性、一致性和有效性,从而保证数据库的可靠性和稳定性。
约束条件可以有效地防止无效数据的插入、更新和删除,提高数据的准确性和可靠性。
二、Oracle 约束条件的类型Oracle 约束条件主要包括以下几种类型:1.主键约束(Primary Key Constraint):主键是用来唯一标识表中的记录的字段或字段组合,它可以确保表中每一条记录的唯一性。
2.外键约束(Foreign Key Constraint):外键是用来连接两个表的字段或字段组合,它可以确保表之间的引用完整性。
3.唯一约束(Unique Constraint):唯一约束可以确保某个字段或字段组合的值在表中唯一,防止出现重复数据。
4.检查约束(Check Constraint):检查约束可以确保某个字段的值满足指定的条件,防止无效数据插入。
5.不能为空约束(Not Null Constraint):不为空约束可以确保某个字段的值不为空,防止出现空数据。
三、Oracle 约束条件的使用示例下面是一个简单的示例,假设有一个名为“employees”的表,其中包含以下字段:id(员工编号)、name(员工姓名)、department_id(所属部门编号)。
创建表时添加主键约束:```sqlCREATE TABLE employees (id NUMBER PRIMARY KEY,name VARCHAR2(50),department_id NUMBER);```创建表时添加外键约束:```sqlCREATE TABLE employees (id NUMBER PRIMARY KEY,name VARCHAR2(50),department_id NUMBER,CONSTRAINT fk_employees_departments FOREIGN KEY (department_id) REFERENCES departments(id));```创建表时添加唯一约束:```sqlCREATE TABLE employees (id NUMBER PRIMARY KEY,name VARCHAR2(50) UNIQUE,department_id NUMBER);```创建表时添加检查约束:```sqlCREATE TABLE employees (id NUMBER PRIMARY KEY,name VARCHAR2(50),department_id NUMBER,CONSTRAINT chk_employees_department_id CHECK (department_id >= 1 AND department_id <= 10));```创建表时添加不为空约束:```sqlCREATE TABLE employees (id NUMBER PRIMARY KEY,name VARCHAR2(50) NOT NULL,department_id NUMBER);```四、Oracle 约束条件的优缺点1.优点:(1)有效地防止无效数据的插入、更新和删除,提高数据的准确性和可靠性。
Oracle 10g 数据库管理应用与开发课后习题答案(填空与选择题)填空题第二章1.用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在日志缓冲区中,随后由LGWR进程保存到日志文件。
2.在Oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB段和临时段。
3.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务器进程。
当一个用户运行应用程序,如PRO*C程序或一个Oracle工具(如SQL*Plus),系统将为用户运行的应用程序建立一个用户进程。
第三章1.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
2.在需要滤除查询结果中重复的行时,必须使用关键字Distinct;在需要返回查询结果中的所有行时,可以使用关键字ALL。
第四章1.创建一个UPDATE语句来修改ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是update artists set t_id=15;。
2.使用describe命令可以显示表的结构信息。
3.使用SQL*Plus的get命令可以将文件检索到缓冲区,并且不执行。
4.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令clear column,而当要清除某列具体的显示属性时,需要使用命令OFF/column 列名clear。
5.使用SA VE命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Start命令运行该文件。
6.要设置SQL*Plus显示数字时的格式可以使用NumFormat命令,而要设置某个数字列的显示格式要使用Column命令。
第五章1.ROWID实际上保存的是记录的物理地址,2.在STORAGE子句中可以设置6个存储参数。
其中,Initial指定为表中的数据分配的第一个盘区的大小;Next指定为存储表中的数据分配的第二个盘区大小;Pctincrease指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;Minextents指定允许为表中的数据所分配的最小盘区数目;Maxextents指定允许为表中的数据所分配的最大盘区数目。
第六章模式对象模式对象:存储在用户模式(如:system用户模式)中的数据库对象。
第六章模式对象 (1)7.1表 (1)一、数据类型 (1)二、创建表 (1)三、管理表中的列 (2)7.2表的完整性约束 (4)一、约束的分类 (4)二、禁用和激活约束 (6)7.3索引 (6)一、创建索引 (7)二、管理索引 (7)7.4视图 (8)一、创建视图 (8)二、创建复杂视图 (8)5.7、序列 (9)一、创建序列 (9)二、使用序列 (10)三、修改和删除序列 (11)7.8、同义词 (11)一、分类 (11)二、使用同义词 (11)7.1表表就是数据库中最常用的模式对象,用户的数据在数据库中以表的形式存储的。
表通常由一个或多个列组成,每一个列表示一个属性,每一个行则表示一条记录。
一、数据类型ORACLE数据类型二、创建表1)、创建管理员用户CREA TE USER bookstoreIDENTIFIED BY bookstore;GRANT dba TO bookstore;授予管理员权限2)、创建一个表personSQL> CREA TE TABLE person(2 id NUMBER(4),3 name V ARCHAR2(8),4 sex CHAR(2),5 birthday DA TE);三、管理表中的列1)、修改列a、增加列SQL> ALTER TABLE person ADD email V ARCHAR2(20);SQL> ALTER TABLE person ADD (t1 NUMBER(4),t2 V ARCHAR2(4));b、删除列SQL> ALTER TABLE person DROP COLUMN email;SQL> ALTER TABLE person DROP (T1,T2);c、修改列名SQL> ALTER TABLE person RENAME COLUMN id TO personID;d、修改表的数据类型SQL> ALTER TABLE person MODIFY personID int;SQL> ALTER TABLE person MODIFY (personID NUMBER(4),sex CHAR(4));2)、设置列不可用:UNUSED (USED 使用)由于删除列时,系统会删除列中存储的所有数据,并释放该列所占用的存储空间,所以在数据库使用高峰期间执行删除列的操作会占用过多的系统资源,而且执行时间也会很长。
实战经验Oracle数据库基本操作步步详解来源: 2007年06月12日 15:34网友评论:0条点击: 274一,约束操作1:更改约束名称:ALTER TABLE TName RENAME CONSTRAINT oldname TO newname;2:删除约束ALTER TABLE TName DROP CONSTRAINTame3:停止约束ALTER TABLE TName MODIFY CONSTRAINTame DISABLE;4:起用约束ALTER TABLE TName MODIFY CONSTRAINTame ENABLE VALIDATE;5:新增约束ALTER TABLE TName ADD CONSTRAINTame FOREIGN KEY (ORG_ID) REFERENCES ref_table (ORGID);二,字段操作1:更改字段数据类型:ALTER TABLE TName MODIFY(ORG_ID VARCHAR2(50 BYTE));2:更改字段数据长度:ALTER TABLE TName MODIFY(ORG_ID VARCHAR2(80 BYTE));3:修改表的列名alter table TName rename column xx to yy;三,表操作1:删除表数据:truncate table TName;2:复制空表结构create table new_table as select * from old_table where 1=2;3:复制表(含记录)create table new_table as select * from old_table ;四,存储过程1:命令行编译存储过程ALTER PROCEDURE procedure_name COMPILE;五,数据库(DBlink)1:建立数据库连接CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING 'NetServiceName';六,Oracle服务器常用命令行(1)数据库管理相关bbed.exe 数据块浏览和编辑工具dbv.exe 数据文件逻辑检测工具exp.exe 数据导出工具imp.exe 数据导入工具mig.exe 数据库移植工具nmumigrate.exe Data Gatherer移植工具ocopy.exe 裸分区数据文件备份工具oradim.exe Oracle服务创建、删除工具orakill.exe Oracle线程删除工具orapwd.exe Oracle密码文件创建工具orastack.exe Oracle进程堆栈修改工具oratclsh.exe TCL脚本解释器otrccol.exe trace命令行服务管理工具otrccref.exe trace管理文件生成工具otrcfmt.exe trace数据格式化工具otrcrep.exe trace数据统计报表生成工具rman.exe 备份与恢复工具setlinks.exe 磁盘分区管理工具sqlldr.exe sql Load数据批量导入工具sqlplus.exe 命令行的sqlplussvrmgrl.exe Oracle实例管理工具tkprof.exe SQL语句跟踪文件解析工具vppcntl.exe Data Gatherer服务管理工具(2)Internet Directory相关bulkload.exe 使用SQL*Loader生成目录对象的工具bulkdelete.exe 子树删除工具bulkmodify.exe 目录对象修改工具ldifwrite.exe 将目录中的信息转换成LDIF格式ldapadd.exe 向目录中增加目录对象、属性、值的工具ldapaddmt.exe ldapadd的多线程版本ldapbind.exe 客户端认证工具ldapcompare.exe 属性值比较工具ldapdelete.exe 将目录对象从目录中删除的工具ldapmoddn.exe 修改DN和RDN的工具ldapmodify.exe 属性修改工具ldapmodifymt.exe ldapmodify的多线程版本ldapsearch.exe 查找和获取目录中目录对象工具oidpasswd.exe Internet Directory密码管理工具oidreconcile.exe 目录对象同步工具(3)NLS相关csscan.exe 数据库字符集转换测试工具lxbcnf.exe NLS配置工具lxegen.exe 自定义日期格式生成工具lxinst.exe 自定义字符集生成工具(4)Net8相关agtctl.exe 异构服务代理控制程序cmctl.exe 连接服务管理工具lsnrctl.exe 监听服务管理工具naegen.exe 哈夫曼参数生成工具namesctl.exe 名字服务管理工具okdstry.exe 删除Kerberos证书工具okinit.exe 创建Kerberos证书工具oklist.exe 检查Kerberos证书工具tnsping.exe 服务名连接测试工具trcasst.exe SQL*Net跟踪文件解析工具(5)interMedia相关ctxhx.exe ConText文本转换工具ctxkbtc.exe ConText词典编译工具ctxload.exe ConText词典导入/导出工具(6)开发相关lmsgen.exe OCI使用的消息文件转换工具loadpsp.exe PL/SQL Server Page装载器ott.exe Oracle对象类型转换工具sqlj.exe sqlj翻译器wrap.exe 存储过程加密工具xml.exe XML解析器xmlcg.exe XML C++ Class 生成器七,Soralis环境下Oracle管理1:启动数据库管理命令:dbca八,Oracle性能优化1:ORACLE的优化器共有3种:a. RULE (基于规则)b. COST (基于成本)c. CHOOSE (选择性)2.ORACLE 采用两种访问表中记录的方式:a.全表扫描全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.b.通过ROWID访问表采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.3:选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM 子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.5. WHERE子句中的连接顺序.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.九,Oracle数据库重建1:数据库重建应注意的问题在利用import进行数据库重建过程中,有些视图可能会带来问题,因为结构输入的顺序可能造成视图的输入先于它低层次表的输入,这样建立视图就会失败.要解决这一问题,可采取分两步走的方法:首先输入结构,然后输入数据:imp user/pwddabaseSID file=empdata.dmp rows=Nimp user/pwddabaseSID file=empdata.dmp full=Y buffer=64000commit=Y ignore=Y2:快速编译所有视图---- 当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。
oracle避免约束带来的导入数据解决方案Oracle导入数据其实很简单,但是如果数据存在约束:如主外键、主键约束、唯一约束,可能给数据导入带来很大的麻烦。
比如主外键,如果批量导入数据,是难于指定导入的先后顺序的,相信有不少入门级朋友们,会遇到跟我一样的问题。
因此,为了节省大家的宝贵时间,特此分享自己的研究成果。
个人解决方案为:在导入过程中,先导入表结构,再禁用约束,其次导入数据,最终启用约束即可。
其核心就是禁用和启用约束过程的创建。
具体步骤如下:(1)、导出(分为2步):导出结构、导出数据--只导出表结构$exp dev_sem/dev_sem@pcmdb file=d:\struct.dmplog=d:\struct.log rows=n;--导出数据$exp dev_sem/dev_sem@pcmdb file=d:\data.dmplog=d:\data.log ;(2)、导入结构--导入表结构$imp file=d:\struct.dmp log=d:\imp.log full=y;(3)、编写过程CREATE OR REPLACE PROCEDUREMANAGE_USER_CONSTRAINTS(OPERATIONV ARCHAR2,FK BOOLEAN DEFAULT TRUE,PK BOOLEAN DEFAULT TRUE,UK BOOLEAN DEFAULT TRUE) ISST V ARCHAR2(255);CURSOR R ISSELECT TABLE_NAME, CONSTRAINT_NAMEFROM USER_CONSTRAINTSWHERE CONSTRAINT_TYPE = 'R'; CURSOR P ISSELECT TABLE_NAME, CONSTRAINT_NAMEFROM USER_CONSTRAINTSWHERE CONSTRAINT_TYPE = 'P'; CURSOR U ISSELECT TABLE_NAME, CONSTRAINT_NAMEFROM USER_CONSTRAINTSWHERE CONSTRAINT_TYPE = 'U';BEGINIF UPPER(OPERATION) IN ('DROP', 'DISABLE') THENIF FK THENBEGINFOR E IN R LOOPST := 'ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;END IF;IF PK THENBEGINFOR E IN R LOOPST := 'ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;BEGINFOR E IN P LOOPST := 'ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;END IF;IF UK THENBEGINFOR E IN U LOOPST := 'ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;END IF;ELSIF UPPER(OPERATION) IN ('ENABLE') THENIF PK THENBEGINFOR E IN P LOOPST := 'ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;END IF;IF FK THENBEGINFOR E IN P LOOPST := 'ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;BEGINFOR E IN R LOOPST :='ALTER TABLE '|| E.TABLE_NAME ||' '||OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;END IF;IF UK THENBEGINFOR E IN U LOOPST :='ALTER TABLE '|| E.TABLE_NAME ||' '|| OPERATION ||' CONSTRAINT '||E.CONSTRAINT_NAME;EXECUTE IMMEDIATE (ST);DBMS_OUTPUT.PUT_LINE(ST);END LOOP;END;END IF;ELSEDBMS_OUTPUT.PUT_LINE('the first parameter of the procedure must be DROP or ENABLE or DISABLE'); END IF;END;/--调用过程:禁用约束检查execMANAGE_USER_CONSTRAINTS('disable',true,true,true); (4)、导入数据$imp file=d:\data.dmp log=d:\data.log ignore=y full=y; (5)、启用约束execMANAGE_USER_CONSTRAINTS('enable',true,true,true);(6)、删除过程drop procedure MANAGE_USER_CONSTRAINTS;如上查找即正确无误的导入数据,而不用担心导入的先后顺序问题了。
oracle 约束条件(一)Oracle 约束条件在 Oracle 数据库中,约束条件是用于限制表中数据的完整性和一致性的规则。
通过定义约束条件,我们可以确保数据库中的数据满足特定的规范,避免无效或不一致的数据被插入或修改。
本文将介绍几种常见的 Oracle 约束条件。
主键约束•主键约束用于唯一标识表中的每一行数据。
主键列的值不能重复且不能为空,确保表中每个记录都有唯一的标识。
•创建主键约束的语法:ALTER TABLE 表名ADD CONSTRAINT 约束名称 PRIMARY KEY (列名);外键约束•外键约束用于在两个表之间建立关系,确保数据的一致性。
外键列的值必须是关联表的主键值或者为空。
•创建外键约束的语法:ALTER TABLE 表名ADD CONSTRAINT 约束名称 FOREIGN KEY (外键列名) REFERENCES 关联表名(关联表的主键列名);唯一约束•唯一约束用于确保表中某列的值是唯一的,但可以为空值。
•创建唯一约束的语法:ALTER TABLE 表名ADD CONSTRAINT 约束名称 UNIQUE (列名);非空约束•非空约束用于确保表中某列的值不能为空。
•创建非空约束的语法:ALTER TABLE 表名MODIFY (列名 NOT NULL);检查约束•检查约束用于确保表中某列的值满足指定的条件。
•创建检查约束的语法:ALTER TABLE 表名ADD CONSTRAINT 约束名称 CHECK (条件表达式);以上是几种常见的 Oracle 约束条件,它们在数据库设计中起着重要的作用,用于保证数据的完整性和一致性。
通过合理定义约束条件,我们可以避免无效数据的插入或修改,提高数据库的质量和可靠性。
注意:在创建约束条件时,请确保已经对相关的表和列进行了适当的设计和定义。