版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 oracle 的安装和体系结构 *oracle理解*Oracle服务器(oracle server)由实例和数据库组成。其中,实例就是所谓的关系型数据库管理系统(Relational Database Management System,RDBMS),用来提供相关的数据库管理功能;而数据库则由Oracle数据库文件组成,用来存储数据。实例可以进一步细分为系统全局区域(System Global Area,SGA)和后台进程(Background Processes)。数据库也可以再细分为数据文件(data files)、控制
2、文件(control files)和联机重做日志文件(Online Redo Log file)。其中,实例的SGA是使用操作系统的内存空间,后台进程需要使用CPU与内存资源,组成的数据库文件则存放在硬盘中。在一个多用户的访问数据环境中可靠的管理大量的数据并允许多用户对相同数据的访问,所有这一切都必须完成的同时还要提供高性能。一个Oracle服务器还必须防止未经授权的访问,并提供故障恢复的有效解决。 Oracle数据库(Oracle database)Oracle数据库由操作系统文件,也称为数据库文件,提供实际的物理存储数据库信息。数据库文件用于确保数据是一致的,可以恢复在出现故障的
3、实例。Oracle实例(oracle instance)由后台进程和内存结构(SGA)组成,用于和操作系统进行联系的标识,也就是说数据库和操作系统之间的交互使用的是数据库实例.数据库名和实例名可以相同也可以不同。在一般情况下,实例名和数据库名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。数据库实例名与ORACLE_SID两者都表示oracle实例,但是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问
4、实例名,必须通过ORACLE_SID.*操作数据库*1. 连接到数据库:sqlplus “/as sysdba”2. 停止数据库:shutdown immediate3. 启动数据库实例(instance):startup nomount4. 启动数据库(database),这时读取了control file文件:alter database mount;5. 打开数据库服务,其实完成了数据文件及日志文件的校验:alter database open;6. 直接加载启动:startup*system global area*Instancememory structure (shared po
5、ol library cache,data dictionary cache,Database buffer cache,redo log buffer cache) Background process(pmon,smon,dbwr,lgwr,ckpt,others)Databasedata file Log file Control fileDictionary cache=row cache*一个数据库可以有多个实例,一个实例只能操作一个数据库。*查看后台进程Set wrap offSet linesize 200;Col name for a30Select * from v$bgpr
6、ocess;Select * from v$bgprocess where paddr <>00;*parameter process:pmon,smon,lgwr,dbwn,ckpt,reco*optional process:不做阐述*查看日志文件1.查看控制文件:select * from v$controlfile;2.查看数据文件:select * from v$datafile;3.查看日志文件:select * from v$logfile;*查看共享池: show parameter shared*查看数据缓存:show parameter db_cache*查看日
7、志缓存:show parameter log*查看SGA大小:show parmeter sga*调整db_cache: alter system set db_cache_size=64m;*修改会话语言提示:alter session set nls_language=American;*查看db相关参数:show parameter db*关于db_cache修改开启相关参数:alter system set db_cache_advice=on;*查看large_pool_cache大小:show parameter large*修改large_pool大小:alter system
8、large_pool_size=20m;*查看oracle归档模式:archive log list*查看oracle归档日志参数:show parameter log_archive_dest*查看oracle归档日志所在路径:show parameter db_recovery_file_dest*查看oracle数据库具有管理员权限的:select * from v$pwfile_users;*创建备份pfile文件:create spfile=/databack/files/spfile.ora from pfile;*创建备份spfile文件:create pfile=/dadaba
9、ck/files/init.ora from spfile;*查看数据库文件类型的数量:show parameter db_create*查看oracle实例* 登录oracle的sqlplus内置工具:show parameter instance 或 select * from v$instance; 或是以linux为例查看init.ora一般参数文件在/database/oracle/product/10.2.0/db_1/dbs下。 *oracle物理结构或称文件系统* 数据库启动:oracle服务启动,通过参数文件查找控制文件,启动控制文件,则控制文件
10、调用数据文件和日志文件。oracle的文件系统组成:参数文件,控制文件,数据文件,日志文件组成。参数文件(initialization parameter file):是 ORALE RDBMS 主要的配置点,它是配置参数和数值的集合。每一个参数值都控制或修改数据库和实例的某个方面。控制文件(control file):由Oracle数据库实例在启动时被访问的内部二进制文件,它们所存放的路径由参数文件的control_files=参数来确定。 Oracle一般有两个或更多的控制文件,每个控制文件记录有相同的信息,在数据库运行中如果某个控制文件出错时,Oracle会自动使用另外一个控制文件。当所
11、有的控制文件都损坏时系统将不能工作;控制文件是实例和数据库的链接文件。数据文件(data file):用于存放所有数据库的数据文件,Oracle安装过程中自动建立多个必要的数据文件。这些数据文件用于存放Oracle系统的基本数据。在应用系统开发过程中,我们可根据需要另建立一些数据文件。如果按数据存放类型来分:用户数据(存放应用系统的数据),系统数据(管理用户数据和数据库系统本身的数据,如:数据字典,用户所建的表名,数据类型等)。日志文件(log file):也叫事务记录文件,该文件记录有事物对数据库进行的一切修改操作或事务。其他支持文件:sqlnet.ora文件,tnsnames.ora文件,
12、listener.ora文件;以linux为例一般存放于/database/oracle/product/10.2.0/db_1/network/admin中。 参数文件:登录到SQLPLUS里键入:show parameter spfile;,查看spfile的位置.windos:G:oracleproduct10.2.0db_1dbsSPFILEORCL.ORA,linux:/database/oracle/./dbs/spfile.ora. 尽可能的多备份控制文件,以免发生数据瘫痪造成的不便;在备份控制文件时,数据库必须为close状态,对一个
13、open状态的数据库控制文件进行拷贝容易造成某个数据块的损坏。 1.通过oracle的sqlplus的内置工具,登录到数据库.linux:sqlplus /as sysdba,windows:sqlplus “/as sysdba”, 键入:select * from v$controfile 通过sql命令查询控制文件存放的位置,并记住该控制文件的路径。2.停止当前数据库,shutdown immediate; 不建议应用 shutdown
14、,一个面向数据访问比较频繁的数据,直接应用shutdown 有可能造成数据库数据丢失或数据错误问题。3.找到oracle初始化参数文件,linux: vi/database/orac/./SPFILEORCL.ORA;wiondows:G:oracleproduct10.2.0db_1dbsSPFILEORCL.ORA;编辑参数文件的control_file的新增路径,编辑完成后注意保存。并在控制文件的存放目录copy任意control.ctl,linux:cp -p /./control01.ctl /./control04.ctl.4.登录
15、到linux或windows的sqlplus工具里,启动oracle数据库;建议使用:stratup.启动完成后,键入select status,name from v$controlfile 后你会发现新增的备份控制文件. *通过sqlplus 查看控制文件位置select status,name from v$controlfile *通过sqlplus 查看数据文件位置select status,name from v$datafile *
16、通过sqlplus 查看日志文件位置select status,member from v$logfile *.通过sqlplus查看重做日志文件信息archive log list;Select * from v$log; 重做日志文件(Redolog file) Oracle 所作的一切操作都记录在日志文件中,Oracle系统在工作当中并不是每作一条记录的修改就立即存盘(写入数据文件),而是只作修改记录,联机重做日志就保存所有这些改变的信息。当所有的修改最后写入数据文件时
17、,所有的修改仍记录在联机重做日志中,这将有利于对这些事务记录进行恢复操作。但如果不是联机重做日志,则只能恢复部分近期的操作。主要存放数据库执行DML(inset,update,delete)语句,顺序写入,写满之后自动切换。只有归档模式才可以恢复数据,非归档模式只能恢复当前数据。 -查看重做日志文件信息archive log list;Select * from v$log;-切换访问体质文件(正常工作中使用不到)Alter system switch logfiel Select *
18、 from v$logfile;-增加重做日志文件Linux:alter database add logfile /database/./redolog09.rdosize 2g autoextend off;Windows:alter database add logfie(G:oracleproduct10.2.0db_1databasearchiveredolog09.rdo)size 2g Alter system switc
19、h logfiel 使新增日志文件生效Select * from v$logfile;查看日志信息-制定工作组增加重做日志文件Alter database add logfile member /database/./redolog11.rdo to group 1 ,/database/./redolog12.rdo to group 2;Alter system switch logfiel&
20、#160;Select * from v$logfile; *oracle内存结构*oracle的数据库实例是一组后台进程和内存结构组成的,而内存结构由系统全局区(system global area)和程序全局区(program global area)组成。-修改SGA和PGA的配置文件,通常在/./oracle/admin/spfile/init.ora中的sgz_max_size=64M、sga_target=64M、pga_aggregate_target 参数,或在sqlplus里Alter system set sga_max_size=6
21、4M scope=spfile; 修改后重启数据库和服务生效。 系统全局区(SGA):Oracle 系统用于存放系统信息的一块存储区域,用户进程和Oracle后台进程都可以使用SGA。 SGA:database buffer cache(数据库高速缓存区),redolog buffer cache(重做日志高速缓存区),大的共享池(java pool,large pool),共享池(library cache库缓存区,data dictionary cache数据字典缓存区),固定SGA(不可以设置修改,oracle之初自动创建的);*数据
22、高速缓冲区(Data Buffer Cache) 在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。oracle每执行一个查询必须从磁盘调用数据DBSGA的存在,数据库用于调用的访问数据一般存在DBSGA。长期访问的代码表存在于保持缓存池长期存于内存并不释放,频繁访问的大表存在于再生缓存池。数据高速缓存区包括三个类型: 1.脏的区(Dirty Bu
23、ffers):包含有已经改变过并需要写回数据文件的数据块。 2.自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块的存储信息写入该区。 3.保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用作将来用数据访问的区。*重做日志缓冲区(Rado Log Buffer) 任何事务(Transaction)在记录到重做日志(恢复工作需要使用联机重做日志)之前都必须首先放到重做日志缓冲区(Redo Log Buffer)中。然后由日志写入进程(LGWR)定期将此缓冲区
24、的内容写入重做日志文件(redolog file)中。*共享池(Shared Pool) 共享池是SGA保留的区,用于存储如SQL、PL/SQL存储过程及包、数据字典、锁、字符集信息、安全属性等。共享池包含有: 1.库高速缓存(Library Cache):共享SQL区(保留SQL解释版本),PL/SQL区(保留PLSQL的函数和过程及包) 2.字典高速缓冲区(Dictionary Cache):数据字典,校验表名,列名,锁,字符集信息,安全属性等 *查看SGA*通过sqlplus工具,键入:show parame
25、ter SGA 或 select * from v$SGA; 。SGA=fixed size+variable size+database buffers+redo buffers *大的共享池:在SGA中大池是可选的缓冲区。它可以根据需要有管理权进行配置。它可以提供一个大的区以供对象数据库的备份与恢复等操作。程序全局区:(PGA)是Oracle使用的内存区域,该区同一时间只能被一个进程存放数据和控制,用于存放会话变量及内部数组等;在专用服务模式(dedicated server configuration)下,每个只处理一个用户进程的请求。在共享服务模式(sha
26、red server configuration)下,大量用户可以共享几个服务进程,通过减少服务进程数量达到有效利用系统资源的目的。例:用户访问进程与服务进程的会话。 *查看PGA*show parameter pga ;* Process Structure进程结构*Oracle有两种类型的进程: 服务器进程和后台进程(server processes and background processes)。 1.服务器进程 Oracle 服务器进程是处理用户与实例连接的事务。任务是: ·分析和执行应用所发出的SQL语句。 ·从数据文件读必要
27、的数据到SGA区的共享数据区。 ·返回必要信息给应用。2.后台进程 Oracle系统使用一些附加的进程来处理系统的必须的工作;其中有5个强制性的进程(DBWn,LGWR,CKPT,PMON,SMON)。这些进程叫后台进程: * DBWn 数据库写入器(Database Writer)的任务是将修改,变更,撤销后的(在内存)数据块写回数据文件(data file)中。在某些操作系统中,Oracle可以有两个BDWn进程.* LGWR 日志写入器(Log Writer)用于将SGA区中的存在于redo log buffer(重做日
28、志缓存区)日志信息写入日志文件(redodlog file)的进程。一般是用户所作的修改值先记入日志文件。等到一定时才真正将修改结果写回数据文件.* CKPT 检测点(Check Point)在系统运行中当出现查找数据请求时,系统从数据库中找出这些数据并存入内存区,这样用户就可以对这些内存区数据进行修改等。当需要对被修改的数据写回数据文件时就产生重做日志的交替写(Switch),这时就出现校验点。系统要把内存中灰数据(修改过)块中的信息写回磁盘的数据文件中,此外系统还将重做日志通知控制文件。DBA可以改变参数文件中CHECKPOINT_PROCESS TRUE来使能(使有效或无效)该进程。*
29、SMON 系统监控器(System monitor)是在数据库(database=control file+data file+redolog file)系统启动时执行恢复工作的强制性进程。比如在并行服务器模式下(两台服务器共用一磁盘组),SMON可以恢复另一台处于失败的数据库;使系统切换到另一台正常的服务器上。* PMON 进程监控器(Process Monitor)用于终止那些失败的用户,释放该用户所占用的资源等;回滚当前用户所执行的事物,重置当前用户所占用的锁表和行级锁,释放当前用户保留的其他资源。* ARCn 归档器(Archive)可选进程,当数据库系统处于归档(ARCHIVELOG
30、)模式时使用.* RECO 恢复器 (Recover)分布式数据库(不同地点有不同机器和不同的Oracle系统)模式下使用的可选进程,用于数据不一致时作的恢复工作。在RECO解决恢复前,所作的修改数据的标志均标为“可疑” 。* LCK0 锁(LOCK) 可选进程,当在并行服务器模式可出现多个锁定进程以利于数据库通信。 * 调度(Dnnn) 可选进程,在多线程下使用,即对每个在用(D000,.,Dnnn)的通信协议至少创建一个调度进程,每个调度进程负责从所联接的用户进程到可用服务器进程的路由请求。把响应返回给合适的用户进程。
31、60; * 快照进程(SNPn) 快照进程处理数据库快照的自动刷新,并通过 DBMS_JOB 包运行预定的数据库过程. INITsid.ORA 参数 JOB_QUEUE_PROCESS 设置快照进程数, 参数 JOB_QUEUE_INTERVAL 决定快照进程在被唤醒以处理挂起的作业或事务之前休眠的秒数。 * 并行查询进程(Pnnn)可根据数据库的活动并行查询选项的设置,ORACLE服务器起动或停止查询进程.这些进程涉及并行索引的创建,表的创建及查询。启动的数量与参数 PARALLEL_MIN_SERVERS指定的数量相同,不能超出该参数指定的值。-查看o
32、racle后台进程和连接数1.查看oracle后台进程select * from v$bgprocess where paddr <> '00' 或在linux系统上:ps -ef |grep ora_ 2.查看oracle连接数select count(*) from v$session;3.查看oracle并发连接数select count(*) from v$session where status='ACTIVE'4.查看最大连接数show parameter processes;5.修改连接数,重启数据库生效alter
33、system set processes=500 scope=spfile; *oracle 逻辑结构* Oracle数据库包含至少一个表空间,一个表空间对应着多个数据文件(数据表),一个表空间(由多个数据文件组成)包含多个段,一个段包括多个盘区,一个盘区包含若干个块,oracle存储数据的基本单位是块, 块的大小可以从2k至64k不等,一般情况下,一块=8K=7192字节.表(Table) :存放专门数据而建立和分配的空间。 表空间(Tablespace):是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。表空
34、间可分为:1.系统表空间(System tablespace):是各种不同版本的Oracle必备的部分,存放Oracle系统的一些信息,一般只有一个SYSTEM表空间。2.临时表空间(Temporary tablespace ):由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要用作查询时带有排序(Group by,Order by等)等算法所用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此叫临时表空间。一般安装之后只有一个TEMP临时表空间。 3.工具表空间(Tools tablespace):用于保存Oracle数据库工具所需的数据库对象,这些工具表空间存放在工作时所
35、用的专用表。旧的Oracle版本无此表空间。安装之后的工具表空间是Tools。 4.用户表空间(Users tablespace):用于存放一些实验例子用的空间,当然也可以用于存放应用系统的数据。旧版本无Users表空间。现在的用户表空间为 USERS 。 5.数据及索引表空间 :存放数据及索引的表空间,Oracle7以后都提倡在应用系统中,特别是具有大量数据的系统,要把数据和索引分开存放在不同的分区中,以便提高查询速度。在安装后索引表空间可能是INDX。数据表空间就是USERS。 6.回滚段表空间(Rollback Segment):Oracle数据库系统在运行Insert、Update、D
36、elete时都需要一个磁盘空间来存放恢复信息(Undo Information),以便在进行恢复时能将原来信息读出来。安装后的回滚段表空间是RBS表空间。数据库管理员也可根据应用的需要建立另外的回滚段 表空间。 Oracle 以表空间来存储逻辑数据并以物理数据相连。-查询表空间剩余情况select tablespace_name, sum(bytes) / 1024 / 1024 / 1024 AS G from dba_data_files group by tablespace_name order by tablespace_name; Sqlp
37、lus 工具的简单运用 连接数据库: sqlplus user_name/password host_string.user_name 指定数据库的用户名.password 指定数据用户名的密码.host_string 指定要连接的数据库*登录方式:1.sqlplus/nologgingconnect sys/oracle as sysdba2.windows登录: sqlplus "/as sysdba" linux登录:sqlplus '
38、;/as sysdba'查看数据库状态select name,open_mode from v$database;select instance_name,status from v$instance; 数据库启动:startup 归档启动startup mount 非归档启动startup nomount 控制文件丢失,使用此命令STARTUP启动数据库顺序:启动实例,打开控制文件,打开数据文件. 数据库关闭:正常关闭:shutdown immediate;遇到自然灾害或是火灾时,应急关闭数据库
39、:shutdown abort;查看oracle数据库版本信息:select * from v$version; sqlplus 里内置的命令信息调用:help index SET命令的帮助信息? SET 一次会话关闭,SQLPLUS的留存命令释放。 list 查看历史SQL命令:1.设置输入格式SET SQLBLANKLINES ON SET PAGESIZE 100SET WRAP OFFSET LINESIZE 200SELECT
40、39;DROP TALBE'|' '|TABLE_NAME|' '|'' FROM USER_TABLES; 2.改变缓冲区里的命令 C/N/M List /3.保存缓冲区命令LINUX:SAVE /BACKUP/TEXT.TXTWINDOWS:SAVE E:BACKUPTEXT.TXT4.查看保存的命令GET E:BACKUPTEXT.TXT 5.加载并运行命令/ OR START E:BACKUPTEXT.TXT OR E:BACKUPTEXT.SQL
41、 ORACLE SQL语言基础 SQL语言分为:DDL数据定义语言,DML数据操纵语言,DCL是数据库控制语言,TC事务控制语言*DDL数据定义语言(Data Definition Language):是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP,RENAME,TRUNCATE几个语法所组成。*DML数据操纵语言(Data Manipulation Language),用户通过它可以实现对数据库的基本操作,用来查询、添加、修改和删除 数据库中数据的语句,由SELECT,INSERT,UPDATE,DELETE四个语法组成。*DCL数据库
42、控制语言(Data Control Language):用来设置或更改数据库用户或角色权限的语句,包括(GRANT,REVOKE等)语句。*TC事物控制语言(Transaction Control):用于对数据的修改永久性的存储在表中或是取消这些修改操作,包括(COMMIT,ROLLBACK,SAVEPOINT)语句。 *DDL语言* 用于数据库对象的建立,修改,删除;举凡数据库、数据表、数据库索引、预存程序、用户函数、触发程序或是用户自定型别等对象,都可以使用 CREATE,ALTER,DROP 指令来处理,而为了各式数据库对象的不同,指令也有很多的参数。-重
43、命名表名称REANME OLD_NAME TO NEW_NAME;-创建表及添加主键约束方法1:CREATE TABLE INFOR (SID VARCHAR2(20), PID VARCHAR2(10),
44、; MONEY NUMBER(12,2) ;ALTER TABLE INFOR ADD CONSTRAINT PK_INFO PRIMARY KEY (SID);方法2:CREATE TABLE INFORS (SID VARCHAR2(20) NOT NULL CONSTRAINT PK_INFORS PRIMARY KEY,
45、 PID VARCHAR2(10), MONEY NUMBER(12,2) ;-根据现有表创建所需的新表CREATE TABLE INFORS AS (SELECT B.COMPCODE AS 单位编码, B.COMPNAME AS 单位名称, A.PERSID AS 人员编码, A.P
46、ERID AS 身份证号, A.PERNAME AS 人员姓名, (CASE A.PERSEX WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '未说明' END) AS 人员性别 FROM PERINFOR A,COMPINFOR B WHERE A.COMPCODE = B.COMPCODE AND B.COMPZREA = '150XXX');-修改表追加表字段ALTER TABLE INFOR ADD CHANGE_MONEY NUMBER(12
47、,2) ; -修改表中某个表字段的名称ALTER TABLE INFOR RENAME COLUMN MONEY TO MONEYS;-修改表中某个表字段的数据类型或数据长度ALTER TABLE INFOR MODIFY MONEYS VARCHAR2(12);-删除表DROP TABLE INFORS;-删除表中的某个字段ALTER TABLE INFOR DROP COLUMN CHANGE_MONEY ; -创建用户和密码create user test identified by password;-创建用户并指定表空间 select us
48、ername,default_tablespace from dba_users;create user USERNAME identified by PASSWORD default tablespace DATAtemporaray tablespace TEMP;create user nmsi_cf identified by nmsi_cf_57g default tablespace data_nmsi ;create user drm_nm identified by drm_nm defa
49、ult tablespace data_nmsi_drm ;create user nm_report identified by nm_report default tablespace data_nmsi_drm ;DROP USER CFDXPT CASCADE;-修改用户的表空间alter user nmsi_cf default tablespace data_nmsi;alter user drm_nm default tablespace data_nmsi_drm;alter user nm_report default tablespace data_nmsi_drm;-删除
50、用户drop user test;-修改用户密码alter user test identified by password1;-修改用户的锁定模式alter user test account unlock;-创建角色和密码CREATE ROLE CHINA IDENTIFIED BY PASSWORD;-删除角色DROP ROLE CHINA;-修改角色密码ALTER ROLE CHINA IDENTIFIED BY PASSWD ;-创建索引/普通索引/CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN_NAME) ;/唯一索引/CREATE UNI
51、QUE INDEX INDEX_NAME ON TABLE_NAME(COLUMN_NAME) ;/指定索引的归属表空间/CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN_NAME) TABLESPACE TAB_SPACE ;-外键和主键关联的select a.owner AS 主键拥有者, a.table_name AS 主键表, b.column_name AS 主键列, c.owner AS 外键拥有者, c.table_name AS 外键表, d.column_name AS 外键列 from user_constraints a left
52、join user_cons_columns b on a.constraint_name = b.constraint_name left join user_constraints C on c.constraint_name = a.constraint_name left join user_cons_columns d on c.constraint_name = d.constraint_name and a.constraint_type = 'P' and a.table_name = '表名' -需要查看主外键关系的表 order by a.t
53、able_name ;-删除外键级联ALTER TABLE US_ROLE_CONNECTION DROP constraint FK_RO_U_ID ;-修改索引/重命名索引/ALTER INDEX OLD_INDEX_NAME RENAME TO NEW_INDEX_NAME;-删除索引DROP INDEX INDEX_NAME;-删除主键1 确定该主键是否有外键,如果有的话执行下面,没有的话执行第2语句alter table tablename drop constraint column cascade;2 定义主键无效alter table tablename disable pri
54、mary_column;3 删除索引drop index index_name;4或是直接执行删除主键ALTER TABLE TABLENAME DROP PRIMARY KEY;-创建视图/创建普通视图/CREATE VIEW ONE_VIEW AS SELECT COUNT(AAC001) AS 人数 FROM AC01_00 ;/创建检测是否满足WHERE条件的视图,只有满足WHERE条件才能对视图使用DML语句/CREATE OR REPLACE VIEW ONE_VIEW AS SELECT COUNT(AAC001) AS 人数 FROM AC01_00 WHERE AAB001
55、IN (SELECT AAB001 FROM AB01_00 WHERE AAB301 = '150499') WITH CHECK OPTION CONSTRAINT ONE_VIEW_DML ;/创建只读视图,不能对视图进行DML语言/CREATE OR REPLACE VIEW ONE_VIEW AS SELECT COUNT(AAC001) AS 人数 FROM AC01_00 WHERE AAB001 IN (SELECT AAB001 FROM AB01_00 WHERE AAB301 = '150499') WITH READ ONLY CONST
56、RAINT ONE_VIEW_DML ;-修改视图 ALTER VIEW ONE_VIEW DROP CONSTRAINT ONE_VIEW_DML ;-删除视图DROP VIEW ONE_VIEW ;-函数的简单应用,判断字符类型的时间格式CREATE OR REPLACE FUNCTION <函数名><参数列表>RETURN<函数数据类型>IS|AS<局部变量声明>BEGIN <过程体> RETURN<函数值>END<函数名>CREATE OR REPLACE FUNCTION function_name(
57、parameter_name IN|OUT|IN OUT type , .)RETURN typeIS | AS BEGIN function_body END function_name;/创建函数/-创建函数,函数名(CHECK_DATE),指定传给函数的参数名(P_DATE)及数据类型;指定参数返回的数据类型。CREATE OR REPLACE FUNCTION CHECK_DATE(P_DATE VARCHAR2) RETURN NUMBER IS-定义传递参数的变量和数据类型 V_DATE DATE;-开始函数体 BEGIN-变量赋值及指定校验的数据格式,校验的列为空时返回FAULT
58、 V_DATE := TO_DATE(NVL(P_DATE, 'FAULT'), 'YYYY-MM-DD HH24:MI:SS');-比对匹配时返回1 RETURN 1;-异常 EXCEPTION-如果为其他情况那么返回0 WHEN OTHERS THEN RETURN 0;-结束函数 END CHECK_DATE;/检测函数/SELECT CHECK_DATE(JOIN_TIME) FROM INFORS;OR SELECT * FROM HSQINFOR WHERE CHECK_DATE(AAC006) = '1' ;/删除函数/DROP F
59、UNCTION CHECK_DATE ;-创建序列CREATE SEQUENCE <序列名> MINVALUE <数值> -定义最小值 NOMAXVALUE -不设置最大值 START WITH <数值>-定义序列值从几开始 INCREMENT BY <数值>-定义序列间隔数值 NOCYCLE -不设置循环 CACHE <数值>-定义告诉缓存大小CREATE SEQUENCE sequence_nameMAXVALUE max_num | NOMAXVALUE MINVALUE min_num | NOMINVALUE START WITH start_numINCREMENT BY increme
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学课件-颈椎病(项痹)首次病程
- 医学课件-监察医秋田的尸检
- 医学课件-宫颈癌患者P53、P16、Ki-67表达、病理特征及预后的意义
- 2025年病历书写及医患沟通
- 2025年医学分析-(完整版)土力学复习题
- 深度强化学习游戏AI(如Atari)入门技巧课程设计
- 拥堵预测可视化设计课程设计
- 基于RAG的知识助手设计课程设计
- 毕设课程设计通关攻略
- AI换脸表情教程网网课程设计
- 四年级上数学学困生转化计划
- 2025年新员工三级安全培训考核试题之三级安全教育考试(班组级)及答案
- 2026国企中层干部竞岗笔试真题题库及标准答案(竞聘专用完整版)
- 苏轼自题金山画像 课件
- 河科大金属材料成形基础课件01工程材料的性质
- RTCA∕DO-160G 机载设备环境条件和试验程序
- 骨科术后神经肌肉电生物反馈训练方案
- 国际货运代理客服部培训
- 2026北京语言大学新编长聘人员招聘25人备考题库(第一批)带答案详解
- 中医基础理论全套课件415P-课件
- 2026年农村房屋买卖合同模板
评论
0/150
提交评论