一、oracle基本常用的数据类型
varchar(长度) 字符串
char(长度) 字符
number(x,y) x表示总位数 y表示保留小数点后几位数 eg面试题:number(5,3)最大的数是99.999
decimal() 数字
long int integer 整数
date 日期
timestamp 日期
clob blob 特殊文本 二进制
二、DLL操作
create
创建表的前提是:1、具备创建表的条件 2、有可用的存储空间
创建表的语法是:
create table 表名 (column1 数据类型,column2 数据类型……);
drop table 表名;
表中的所有数据都将删除、此前未完成的事务都将被提交、所有相关的索引被删除、DLL语句,一经执行,不可撤销。
alter
对表添加字段
alter table 表名 add (column1 数据类型,column2 数据类型……);
对表删除字段
alter table 表名 drop (column1,column2……);
对表现有字段进行修改
alter table 表名 modify (column1 数据类型,column2 数据类型……);
truncate table 表名;
清空表中所有记录、释放表空间、DLL语句,一经执行,不可撤销。
三、DML操作
select
select */column1,column2…… from 表名 where ……;
delete from 表名 where 条件……
update 表名 set column = ‘字段’where 条件……
insert into 表名 (column1,column2……)values (值1,值2……);
四、事务控制语言
commit rollback savepoint
五、数据控制语言
grant revoke
算术运算 + - * /
连接运算 || 与concat类似
两者区别:||可以连接多个字符串 concat只能连接两个字符串。
别名 AS 关键字
空值 --无效值
去重 distinct
排序 order by --永远存在sql语句的结尾。
分组 group by
--当语句中出现group by分组语句时,select对应的列要么是group by分组列,要么是聚合函数列。
--对分组过后的数据进行二次过滤可以使用hiving关键字。
--where 后面不能跟聚合函数列
六、函数
字符函数
数值函数
日期函数
转换函数
通用函数
decode用法:
第一种用法:替换分组
decode(column,‘列中可能出现的值‘,‘肯定打印出的值‘,‘否定打印出的值‘)
eg:select tname,decode(tname,‘小花‘,‘本科‘,‘中专‘) from s7 order by tname ;--解释decode函数中的意思:
tname列中出现‘小花’就打印本科,不是小花就打印中专
第二种用法:动态排序
--要求 销售部拍第一位
select * from dept
order by decode(d_name,‘产险系统开发部‘,1,‘销售部‘,2,3);--解释d_name这一列如果是产险系统开发部就显示1,销售部就显示2,其他就显示3.
第三种用法 :行转列
select s_years ,
max(decode(s_months , ‘1季度‘,s_money)) as 一季度 ,
min(decode(s_months , ‘2季度‘,s_money)) as 二季度,
sum(decode(s_months , ‘3季度‘,s_money)) as 三季度,
avg(decode(s_months , ‘4季度‘,s_money)) as 四季度
from sales group by s_years ;
聚合函数
min(column)求列的最小值
max(column)求列的最大值
sum(column)求和
avg(column)求平均--计算时空值会被除外
count(column)统计有效数据的数量,空值null不会被统计在内。
一、Oracle的稳定性比Sql Server要好。
二、Oracle在导数据工具Sqlload.exe功能要比SqlServer中的Bcp功能要好,oracle可以按照条件把文本数据导入。
三、Oracle的安全机制较SqlServer完善。
四、在进行大数据处理的模块Oracle有强大的运行机制。
五、处理数据速度方面速度较快。
各项开发工具的使用
一、PL/SQL Developer
比较使用开发人员,界面简单易用,功能也有不少。
二、Tod
较为专业型的使用,使用DBA使用,功能强大,也是很容易上手,因为时间问题,在实际的使用上,已经在慢慢减少。
sqlplus登录几种登录方式
sqlplus有几种登陆方式 比如:
1.C: > sqlplus / as sysdba; –以操作系统权限认证的oracle sys管理员登陆
2.C: > sqlplus / nolog –不在cmd或者terminal当中暴露密码的登陆方式
SQL> conn / as sysdba
或者
SQL> conn sys/password as sysdba
3.C: > sqlplus scott/tiger –非管理员用户登陆
4.C: > sqlplus scott/tiger@orcl –非管理员用户使用tns别名登陆
5.C: > sqlplus sys/password@orcl as sysdba –管理员用户使用tns别名登陆
6.C: > sqlplus –不显露密码的登陆方式
Enter user-name:sys
Enter password:password as sysdba –以sys用户登陆的话 必须要加上 as sysdba 子句
备注:
在作为oracle学习的过程中,建议使用的登录账号名及密码的使用为
Scott/tiger
System/manager
sys/change_on_install
hr/hr
等等其中几个用户。
常用数字字典
均在 Oracle 11g R1 上,通过 Oracle Sql Developer 进行过测试的,全部通过。其中很多的数据字典都必须以 system 或者是 sysdba 用户登录才能够使用的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
|
Oracle中的各种数据文件
一、数据文件(Datafile)
Oracle数据中的每一个表空间(Tablespace)都是由一个或多个物理数据文件(datafile)构成的。
二、控制文件(Controlfile)
控制文件(control file)是一个二进制文件,供数据库启动及正常工作时使用。
在数据库运行过程中,控制文件会频繁地被Oracle修改,因此数据库处于开启(open)状态时控制文件必须可写。如果控制文件因故不能访问,数据库 也将无法正常工作。
每当添加,重命名,或移除数据库中的数据文件(datafile)及重做日志文件(redo log file)时,控制文件(control file)就会被更新以反映这些数据库物理结构变化。
三、重做日志文件
Oracle引入重做日志的目的:数据库的恢复。
Oracle相关进程:重做日志写进程(LGWR)。
重做日志性质:联机日志文件,oracle服务器运行需要管理它们。
相关数字字典:vlog;vlogfile。
操作者权限:具有sys用户或system用户权限。
四、归档日志文件
归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.
oracle常用的指令
打开图形化窗口:
1)Database Configuration Assistant windows (添加数据库实例)
$ dbca
2)Oracle Net Configuration Assistant windows (配置监听)
$ netca
3)打开EM
$ oemapp dbastudio (打开企业管理器图形界面)
$ opemapp console (打开企业管理器图形界面(和上面的命令效果一样))
常用命令:
$ lsnrctl start|stop|status (启动|停止|活动状态 监听)
$ isqlplusctl start|stop (启动|停止 isqlplus 可以在浏览器登录 5560端口)
$ sqlplus /nolog (以不连接数据库的方式启动sqlplus)
$ sqlplus system/manager @ file.sql (执行sql脚本文件)
$ sqlplus system/manager (使用system用户登录sqlplus)
$ imp system/manager file=/tmp/expfile.dmp log=/tmp/implogfile.log ignore=y fromuser=expuser touser=impuser (用户模式表数据导入,如果没有特别指定值,就使用默认的值)
$ exp username/password file=/tmp/expfile.dmp log=/tmp/proV114_exp.log (用户模式表数据导出,这是最简单的导出方法)
SQL> conn / as sysdba (以sysdba用户连接)
SQL> startup
SQL> shutdown
SQL> shutdown immediate (立即关闭实例)
SQL> desc dba_users; (查询dba_users表结构)
SQL> select username from dba_users; (查询当前sid下的所有用户的username)
SQL> select count(*) from username.tablename; (查询tablename表的行数)
SQL> drop user username cascade; (删除名称为username的oracle用户)
SQL> select distinct table_name from user_tab_columns; (查看当前user模式下所有表名)
一、ORACLE的启动和关闭
1、在单机环境下
要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下
su - oracle
a、启动ORACLE系统
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit
a、启动ORACLE系统
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit
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
安装启动,这种方式启动下可执行:
数据库日志归档、
数据库介质恢复、
使数据文件联机或脱机,
重新定位数据文件、重做日志文件。
执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
但此时不对数据文件和日志文件进行校验检查。
3、startup open dbname
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
这种方式下可访问数据库中的数据。
4、startup,等于以下三个命令
startup nomount
alter database mount
alter database open
5、startup restrict
约束方式启动
这种方式能够启动数据库,但只允许具有一定特权的用户访问
非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
6、startup force
强制启动方式
当不能关闭数据库时,可以用startup force来完成数据库的关闭
先关闭数据库,再执行正常启动数据库命令
7、startup pfile=参数文件名
带初始化参数文件的启动方式
先读取参数文件,再按参数文件中的设置启动数据库
例:startup pfile=E:Oracleadminoradbpfileinit.ora
8、startup EXCLUSIVE
二、用户如何有效地利用数据字典
ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化,
体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。
我们不能手工修改数据字典里的信息。
很多时候,一般的ORACLE用户不知道如何有效地利用它。
dictionary 全部数据字典表的名称和解释,它有一个同义词dict
dict_column 全部数据字典表里字段名称和解释
如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
SQL>select column_name,comments from dict_columns where table_name=‘USER_INDEXES‘;
依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
1、用户
查看当前用户的缺省表空间
SQL>select username,default_tablespace from user_users;
查看当前用户的角色
SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
2、表
查看用户下所有的表
SQL>select * from user_tables;
查看名称包含log字符的表
SQL>select object_name,object_id from user_objects
where instr(object_name,‘LOG‘)>0;
查看某表的创建时间
SQL>select object_name,created from user_objects where object_name=upper(‘&table_name‘);
查看某表的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper(‘&table_name‘);
查看放在ORACLE的内存区里的表
SQL>select table_name,cache from user_tables where instr(cache,‘Y‘)>0;
3、索引
查看索引个数和类别
SQL>select index_name,index_type,table_name from user_indexes order by table_name;
查看索引被索引的字段
SQL>select * from user_ind_columns where index_name=upper(‘&index_name‘);
查看索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper(‘&index_name‘);
4、序列号
查看序列号,last_number是当前值
SQL>select * from user_sequences;
5、视图
查看视图的名称
SQL>select view_name from user_views;
查看创建视图的select语句
SQL>set view_name,text_length from user_views;
SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的大小
SQL>select text from user_views where view_name=upper(‘&view_name‘);
6、同义词
查看同义词的名称
SQL>select * from user_synonyms;
7、约束条件
查看某表的约束条件
SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
from user_constraints where table_name = upper(‘&table_name‘);
SQL>select c.constraint_name,c.constraint_type,cc.column_name
from user_constraints c,user_cons_columns cc
where c.owner = upper(‘&table_owner‘) and c.table_name = upper(‘&table_name‘)
and c.owner = cc.owner and c.constraint_name = cc.constraint_name
order by cc.position;
8、存储函数和过程
查看函数和过程的状态
SQL>select object_name,status from user_objects where object_type=‘FUNCTION‘;
SQL>select object_name,status from user_objects where object_type=‘PROCEDURE‘;
查看函数和过程的源代码
SQL>select text from all_source where owner=user and name=upper(‘&plsql_name‘);
三、查看数据库的SQL
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3、查看回滚段名称及大小
select segment_name, tablespace_name, r.status,
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
max_extents, v.curext CurExtent
From dba_rollback_segs r, v$ro
安装客户端和plsql远程连接oracle数据库
一,安装客户端以及plsql的步骤省略
注意点:
在windows机器上不想安装oracle或者oracle的客户端,我们怎么使用PLSQL Developer工具呢?答案如下:
环境 windows7 64bit
目标环境 centOS5.8 64bit
1:在oracle官网上下载instantclient-basic-nt-11.2.0.3.0.zip该文件,下载地址为:客户端。下载完成后解压该文件。如:我将其解压在E:\oracleClient\instantclient_11_2该路径下。进入到instantclient_11_2下创建目录NETWORK,然后再NETWORK下建立目录ADMIN。在ADMIN目录下建立tnsnames.ora文件,在该tnsnames.ora文件中添加如下内容:
[ruby] view plain copy
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.175)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
192.168.2.175--为数据库所在机器ip
2:环境变量的配置
打开环境变量设置添加TNS_ADMIN,值为tnsnames.ora所在路径。如本机为E:\oracleClient\instantclient_11_2\NETWORK\ADMIN\tnsnames.ora
设置ORACLE的语言,添加环境变量NLS_LANG,值为AMERICAN_AMERICA.AL32UTF8 如果出现乱码可用SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3:下载并安装PLSQL Developer
安装完成后进入PLSQL Developer,选择tools->preferences->connection
Oracle Home
E:\oracleClient\instantclient_11_2
OCI library
E:\oracleClient\instantclient_11_2\oci.dll
修改完毕后保存并重启PLSQL Developer就可以使用该工具了。
3:时间格式显示设置
打开环境变量添加NLS_TIMESTAMP_FORMAT,值为YYYY-MM-DD HH24:MI:SS:FF6。
这样就可以正常读取日期了。
---------------------
原文地址:https://www.cnblogs.com/klb561/p/10527336.html