- 浏览: 309065 次
-
文章分类
- 全部博客 (291)
- hibernate (1)
- Java温故知新 (2)
- Ajax原理 (1)
- Spring嵌套事务 (1)
- asp (1)
- sax (1)
- javascript (2)
- 心灵鸡汤 (1)
- 其他 (1)
- 数据库 (1)
- android (2)
- Algorithm (1)
- 算法 (1)
- J2SE基础提高 (1)
- Java ee (1)
- VC++ (1)
- java (3)
- IOS开发 (1)
- Winform (1)
- ACM_博弈 (1)
- spring (1)
- 【RDBMS】 (1)
- Magento 基础应用 (1)
- 背包 (1)
- ACM-----哈希/set/map (1)
- Python (1)
- Java程序设计基础 (1)
- 电脑/网络/协议小知识 (1)
- 教程 (1)
- MVC系列 (1)
- Unix & Linux (1)
- 【SSH】 (1)
- 数据结构 (1)
- java学习笔记 (1)
- bfs (1)
- IOS (2)
- 心态 (1)
- 电脑网络 (1)
- linux、unix (1)
- 【Android开发学习之路】 (1)
- Library (1)
- 技术讨论 (1)
- JAVA技术 (1)
- 06_数据库 (1)
- oracle 体系结构 (1)
最新评论
-
finallygo:
Sorted Set 实现的有点问题吧,怎么没有传入score ...
Java版的Redis -
laoqian9527:
楼主你的客户群都淘汰了2003吗?
poi3.8操作word,动态添加文字 -
w156445045:
这是用的浏览器右键的那个导出的功能嘛?
jsp页面导出成word文件 -
youc3576:
来个完整版的么 哥们
hibernate - 多对多关联关系 -
lilai:
...
Ajax原理
ORACLE基本定义、操作语句
一、表
1.创建表
CREATETABLETAB_NAME
(
COL_01VARCHAR2(10)NOTNULL,
COL_02NUMBER(8,2),
COL_03DATE
);
2.添加主键约束
ALTERTABLETAB_NAMEADDCONSTRAINTPK_COL_01PRIMARYKEY(COL_01);
3.添加唯一性约束
ALTERTABLETAB_NAMEADDCONSTRAINTUK_COL_02UNIQUE(COL_02);
4.添加外键约束
ALTERTABLETAB_NAMEADDCONSTRAINTFK_COL0_03FOREIGNKEY(COL_03)REFERENCESTAB_2(COL_03);
5.添加check约束
ALTERTABLETAB_NAMEADDCONSTRAINTCHK_COL_03CHECK(COL_01<>‘ABC’);
6.创建索引
――创建唯一索引
CREATEUNIQUEINDEXIDX_NAMEONTAB_NAME(COL_01);
――创建非唯一索引
CREATEINDEXIDX_NAMEONTAB_NAME(COL_01);
7.给表添加一个新列
ALTERTABLETAB_NAMEADDCOL_04VARCHAR2(10);
8.修改列的数据类型
ALTERTABLETAB_NAMEMODIFYCOL_04NUMBER(8);
9.删除一列
ALTERTABLETAB_NAMEDROPCOLUMNCOL_04;
10.更改表的名称
ALTERTABLETAB_NAMERENAMETOTAB_NEW_NAME;
11.更改表的列名
ALTERTABLETAB_NAMERENAMECOLUMNCOL_04TOCOL_05;
12.给表和列添加注释说明
--addcommentstothetable
COMMENTONTABLETAB_NAMEIS‘示例表’;
--addcommentstothecolumn
COMMENTONCOLUMNTAB_NAME.COL_01IS‘列名’;
13.删除表
DROPTABLETAB_NAME;
14.MERGE
mergeintotj_test1tt1
usingtj_testtt
on(tt1.id=tt.id)
whenmatchedthen
updateset
tt1.name=tt.name,
tt1.age=tt.age
whennotmatchedthen
insertvalues(
tt.id,
tt.name,
tt.age)
altertableTab_Namemodify(字段varchar(20),字段varchar(50));
二、视图
1.创建视图
CREATEORREPLACEVIEWVW_NAMEAS
SELECTA.COL_01,
A.COL_02,
A.COL_03,
B.COL_04
FROMTAB_ONEA,TAB_TWOB
WHEREA.COL_01=B.COL_01;
三、序列
1.创建序列
CREATESEQUENCESQ_NAME
INCREMENTBY10--序列增量
STARTWITH20--开始值
MAXVALUE1000--最大值
MINVALUE20--最小值
NOCACHE/*如果要指定cache给序列,应该写成CACHEN
其中N为要指定的数值*/
NOCYCLE;/*如果序列到了最大值还要继续取值,
就写成CYCLE*/
2.修改序列
ALTERSEQUENCESQ_NAME
INCREMENTBY10--序列增量
STARTWITH20--开始值
MAXVALUE1000--最大值
MINVALUE20--最小值
CACHE5
CYCLE;
注:如果想要按不同的值从新开始一个序列,该序列必须删掉重建
四、同义词
1.创建同义词
CREATESYNONYMSY_NAMEFORTAB_NAME;
五、函数
创建函数
CREATEORREPLACEFUNCTIONFN_NAME([参数1],[参数2],[…..])
RETURNreturn_type
AS
--定义变量
BEGIN
--函数内容
Return[返回值];
END;
六、存储过程
创建过程
CREATEORREPLACEPROCEDURESP_NAME([参数1],[参数2],[…..])
AS
--定义变量
BEGIN
--过程内容
END;
七、触发器
创建过程
CREATEORREPLACETRIGGERTR_NAME
AFTER[BEFORE][INSERT/UPDATE/DROP]ONTAB_NAME
REFERENCINGOLDASoldNEWASnew
FOREACHROW
DECLARE
--定义变量
BEGIN
--触发器内容
END;
八、包和包体
创建包
CREATEORREPLACEPACKAGEPK_NAME
AS
--包内容
ENDPK_NAME;
创建包体
CREATEORREPLACEPACKAGEBODYPK_NAME
AS
--包体的内容
ENDPK_NAME;
九、用户
1.创建一个用户
CREATEUSERUSR_NAME
IDENTIFIEDBYPASSWORD
DEFAULTTABLESPACETAB_SPACE_NAME
TEMPORARYTABLESPACETMP_TABSPACE_NAME
PROFILEDEFAULT;
2.给该用户授权(常用权限有:connectresource)
GRANT权限类型TOUSR_NAME;
3.撤销用户权限
REVOKE权限类型FROMUSR_NAME;
4.修改用户密码
ALTERUSERUSR_NAMEIDENTIFIEDBYNEW_PSD;
5.设定用户缺省的角色
ALTERUSERUSR_NAMEDEFAULTROLEROLE_NAME;
设定缺省角色后,用户登陆后就只有该缺省的角色权限了。
这时可以使用下列命令来让其它角色权限生效(激活角色):
SETROLEROLE_NAMEIDENTIFIEDBYPWD;
6.给用户授予表空间使用权限
alteruseruser_namequotaunlimitedontablespace_name;
十、角色
1.创建一个角色
CREATEROLEROLE_NAMEIDENTIFIEDBYPWD;
2.给角色授权
GRANT权限类型TOROLE_NAME[WITHADMINOPTION];
3.撤销角色权限
REVOKE权限类型FROMROLE_NAME;
4.取消角色的密码
ALTERROLEROLE_NAMENOTIDENTIFIED;
5.设置当前用户要生效的角色
(注:角色的生效是一个什么概念呢?假设用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;在用户登录后,oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。)
sql>setrolerole1;//使role1生效
sql>setrolerole,role2;//使role1,role2生效
sql>setrolerole1identifiedbypassword1;//使用带有口令的role1生效
sql>setroleall;//使用该用户的所有角色生效
sql>setrolenone;//设置所有角色失效
sql>setroleallexceptrole1;//除role1外的该用户的所有其它角色生效。
sql>select*fromSESSION_ROLES;//查看当前用户的生效的角色。
6.修改指定用户,设置其默认角色
sql>alteruseruser1defaultrolerole1;
sql>alteruseruser1defaultroleallexceptrole1;
十一、表空间
1.创建表空间
droptablespacetabspace_nameINCLUDINGCONTENTS;
CREATETABLESPACEtabspace_nameDATAFILE'/home/oracle/oradata/lgdb/tabspace_name.dbf'SIZE100MREUSE
AUTOEXTENDONMAXSIZEUNLIMITED
DEFAULTSTORAGE(INITIAL320K
NEXT320K
MINEXTENTS1
MAXEXTENTSUNLIMITED
PCTINCREASE0);
临时表空间:
CREATEtemporaryTABLESPACE"TEMP03"
tempfile'/home/oracletg/odspxdb/oradata/odspx/temp03.dbf'
SIZE4000Mreuse
2.增加数据文件的大小
ALTERDATABASEDATAFILE'/home/oracle/oradata/lgdb/tabspace_name.dbf'RESIZE500M;
3.给表空间添加数据文件
ALTERTABLESPACEtabspace_nameADDDATAFILE'/home/oracle/oradata/lgdb/tabspace_name2.dbf'SIZE100MONLINE;
SQLPLUS中常用的set参数
常用的数据字典及SQL
Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。
1.静态数据字典
这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、all_*、dba_*。
user_*
该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
all_*
该视图存储了当前用户能够访问的对象的信息。(与user_*相比,all_*并不需要拥有该对象,只需要具有访问该对象的权限即可)
dba_*
该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。没有DBA权限的用户只能看到user_*和all_*视。如果没有被授予相关的SELECT权限的话,他们是不能看到dba_*视图的。
由于三者具有相似性,下面以user_为例介绍几个常用的静态视图:
user_users视图
主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。例如执行下列命令即可返回这些信息。
select*fromuser_users
user_tables视图
主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。执行命令为:select*fromuser_tables
user_objects视图
主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。
user_tab_privs视图
该视图主要是存储当前用户下对所有表的权限信息。
2.动态数据字典
Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。
Oracle中这些动态性能视图都是以v$开头的视图。
v$access
该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。
v$session
该视图列出当前会话的详细信息。
v$active_instance
该视图主要描述当前数据库下的活动的实例的信息。
v$context
该视图列出当前会话的属性信息。比如命名空间、属性值等。
查看哪些表被锁和锁的模式
selectp.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name,b.locked_mode
fromv$processp,v$sessiona,v$locked_objectb,all_objectsc
wherep.addr=a.paddranda.process=b.processandc.object_id=b.object_id
或
SELECTS.SIDSESSION_ID,S.USERNAME,
DECODE(LMODE,0,'None',1,'Null',2,'Row-S(SS)',3,'Row-X(SX)',4,'Share',5,'S/Row-X(SSX)',6,'Exclusive',TO_CHAR(LMODE))MODE_HELD,
DECODE(REQUEST,0,'None',1,'Null',2,'Row-S(SS)',3,'Row-X(SX)',4,'Share',5,'S/Row-X(SSX)',6,'Exclusive',TO_CHAR(REQUEST))MODE_REQUESTED,
O.OWNER||'.'||O.OBJECT_NAME||'('||O.OBJECT_TYPE||')',S.TYPELOCK_TYPE,L.ID1LOCK_ID1,L.ID2LOCK_ID2
FROMV$LOCKL,SYS.DBA_OBJECTSO,V$SESSIONS
WHEREL.SID=S.SIDANDL.ID1=O.OBJECT_ID
或
selectb.owner,b.object_name,l.session_id,l.locked_mode
fromv$locked_objectl,dba_objectsb
whereb.object_id=l.object_id
ORACLE锁有一下几种模式:
0:none
1:null空
2:Row-S行共用(RS):共用表锁,subshare
3:Row-X行独占(RX):用于行的修改,subexclusive
4:Share共用锁(S):阻止其他DML操作,share
5:S/Row-X共用行独占(SRX):阻止其他事务操作,share/subexclusive
6:exclusive独占(X):独立访问使用,exclusive
如果锁长期没有释放,我们可以杀掉该锁所在的进程
altersystemkillsession'sid,serial#';
临时表空间曾经最大使用情况:
selectd.tablespace_name,space"sum_space(m)",blockssum_blocks,used_space"used_space(m)",round(nvl(used_space,0)/space*100,2)"used_rate(%)",nvl(free_space,0)"free_space(m)"from(selecttablespace_name,round(sum(bytes)/(1024*1024),2)space,sum(blocks)blocksfromdba_temp_filesgroupbytablespace_name)d,(selecttablespace_name,round(sum(bytes_used)/(1024*1024),2)used_space,round(sum(bytes_free)/(1024*1024),2)free_spacefromv$temp_space_headergroupbytablespace_name)fwhered.tablespace_name=f.tablespace_name(+)
当前的临时表空间使用情况:
selectsum(blocks*8192)/1024/1024fromv$sort_usage
相关推荐
本篇将深入探讨Oracle中的基本建表语句及其相关操作。 首先,建表语句的基本格式如下: ```sql CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... ); ``` 1. **表名**:这是你...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它提供了丰富的SQL语法和管理工具来支持各种数据库操作。以下是一些Oracle数据库的常用操作语句及其详细...熟悉这些基本操作是管理和维护Oracle数据库的基础。
本文将详细介绍Oracle的基本建表语句及相关操作。 首先,创建用户是数据库管理的基础。Oracle中创建用户的基本语法如下: ```sql CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名 TEMPORARY ...
根据提供的文件信息,本文将对Oracle数据库中的基本SQL语句进行详细介绍,并结合示例代码来解释如何在PL/SQL环境中使用这些语句。 ### 一、Oracle数据库基本SQL语句 #### 1. 创建用户(Create User) 创建用户是...
在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义语句(DDL)和其他相关知识点。 一、数据控制语句(DML) 数据控制语句用于操作数据库中的数据,包括插入、删除、更新等...
本文将详细解析Oracle的基本建表语句以及相关的数据库操作。 首先,创建用户是数据库管理的第一步。以下是一个创建用户`han`的示例: ```sql CREATE USER han IDENTIFIED BY han DEFAULT TABLESPACE users ...
总结,Oracle基本SQL语句的学习涵盖了从数据结构的定义到数据的操作和查询,以及事务控制,这些都是数据库管理的基础。通过深入理解和实践,你可以逐步提升在Oracle数据库管理中的技能,更好地服务于各种业务需求。
在Oracle SQL运维中,DML(数据操纵语言)操作如INSERT、UPDATE、DELETE和SELECT是最基本的操作。例如,插入数据: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` 更新数据: ```sql ...
### Oracle操作语句详解 #### 一、Oracle基础概念与用户管理 在Oracle数据库系统中,用户管理和权限分配是至关重要的部分。以下是关于用户管理的关键知识点: - **Sys 用户**:作为系统内置的最大BOSS,拥有最高...
### Oracle初级学习操作语句详解 #### 一、概述 Oracle数据库系统因其高效性和稳定性,在企业级应用中占据着重要地位。SQL(Structured Query Language)作为标准的关系型数据库查询语言,是与Oracle交互的主要手段...
例如,MySQL的DML(Data Manipulation Language)语句,如`INSERT`、`UPDATE`和`DELETE`,与标准SQL基本一致,但其DDL(Data Definition Language)如`CREATE TABLE`在某些特性上可能与Oracle或SQL Server有所不同。...
建表语句(CREATE TABLE)是SQL语言的基本组成部分,用于定义数据库中的表结构,包括字段名、数据类型、约束条件等。 Excel 2003作为一个电子表格软件,提供了丰富的数据组织和分析功能,但并不直接支持SQL操作。...
Oracle 数据库语句大全还包括创建表空间、删除表空间、查询表空间基本信息、创建用户、更改用户、锁定用户、删除用户等语句。 二.数据操纵语言(DML) 数据操纵语言(DML)用于操作数据库中的数据,包括插入、...
上述Python脚本生成的建表语句中,所有字段都被定义为VARCHAR2类型,这是Oracle中用于存储变长字符串的类型。在实际应用中,你需要根据数据特性选择更适合的数据类型,如NUMBER(数值)、DATE(日期)、BOOLEAN...
以上内容总结了Oracle数据库中常用的SQL语句及函数,涵盖了数据库的基本操作、数据管理、数据定义和查询等方面。对于初学者来说,掌握这些基础是非常重要的。希望这份指南能够帮助大家更好地理解和应用Oracle数据库...
【Oracle基本语句和常见用法】 Oracle数据库是世界上最广泛使用的数据库管理系统之一,它提供了丰富的SQL语法和PL/SQL编程语言来管理和操作数据。本文主要介绍Oracle中的基本语句和一些常见用法,包括游标、存储...
在这个话题中,我们将探讨如何在Oracle中创建用户、管理表以及进行一些基本的表操作,包括添加和删除字段,以及处理主键和外键。 首先,创建用户是数据库管理的基础。在Oracle中,你可以使用`CREATE USER`语句来...
本篇将介绍Oracle数据库的基本操作,包括常用的工具、数据类型、创建数据表、索引和视图。 首先,Oracle数据库的基本操作工具主要包括以下几种: 1. SQL Plus:这是一个命令行接口,允许用户输入SQL语句进行数据库...