OraclePLSQL Developer 安装配置.docx
- 文档编号:8741085
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:20
- 大小:1.20MB
OraclePLSQL Developer 安装配置.docx
《OraclePLSQL Developer 安装配置.docx》由会员分享,可在线阅读,更多相关《OraclePLSQL Developer 安装配置.docx(20页珍藏版)》请在冰豆网上搜索。
OraclePLSQLDeveloper安装配置
1、安装
Oracle版本:
OracleDatabase10gRelease2(10.2.0.1)
下载地址:
安装设置:
1)这里的全局数据库名即为你创建的数据库名,以后在访问数据,创建“本地Net服务名”时用到;
2)数据库口令在登录和创建“本地Net服务名”等地方会用到。
2、创建“本地Net服务名”
1)通过【程序】-》【Oracle-OraDb10g_home1】-》【配置和移植工具】-》【NetConfigurationAssistant】,运行“网络配置助手”工具:
2)选择“本地Net服务名配置”:
3)这里的“Net服务名”我们输入安装数据库时的“全局数据库名”:
4)主机名我们输入本机的IP地址:
5)测试数据库连接,用户名/密码为:
System/数据库口令(安装时输入的“数据库口令”):
默认的用户名/密码错误:
更改登录,输入正确的用户名/密码:
测试成功:
3、PLSQLDeveloper连接测试
输入正确的用户名/口令:
成功登陆:
4、创建表空间
打开sqlplus工具:
sqlplus /nolog
sqlplus/nolog
连接数据库:
conn /as sysdba
conn/assysdba
创建表空间:
createtablespacewapdatafile'C:
\oracle\product\10.1.0\oradata\wap\wap.dbf'size200mautoextendonnext10mmaxsizeunlimited;createtablespacecamdsdatafile'D:
\oracle\product\10.2.0\oradata\camds\camds.dbf'size200mautoextendonnext10mmaxsizeunlimited;
5、创建新用户
运行“P/LSQLDeveloper”工具,以DBA(用户名:
System)的身份登录:
1)新建“User(用户):
2)设置用户名、口令、默认表空间(使用上面新建的表空间)和临时表空间:
3)设置角色权限:
4)设置”系统权限“:
5)点击应用后,【应用】按钮变灰,新用户创建成功:
6)新用户登录测试:
输入新用户的“用户名/口令”:
新用户“testcamds”成功登陆:
6、导入导出数据库
先运行cmd命令,进入命令行模式,转到下面的目录:
D:
\oracle\product\10.2.0\db_1\BIN【该目录下有exp.exe文件】
1)导入
命令语法:
Sql代码
imp userid/pwd@sid file=path/file fromuser=testcamds touser=userid
impuserid/pwd@sidfile=path/filefromuser=testcamdstouser=userid
命令实例:
Sql代码
1.imp testcamds/123@camds file=c:
\testcamds fromuser=testcamds touser=testcamds
imptestcamds/123@camdsfile=c:
\testcamdsfromuser=testcamdstouser=testcamds
导入结果:
2)导出:
命令语法:
Sql代码
1.exp userid/pwd@sid file=path/file owner=userid
expuserid/pwd@sidfile=path/fileowner=userid
命令实例:
Sql代码
1.exp testcamds/123@camdsora file=c:
\testcamds owner=testcamds
exptestcamds/123@camdsorafile=c:
\testcamdsowner=testcamds
导入结果:
一、选择行
1.简单的SELECT语句
SELECT[DISTINCT]{*,COLUMN[ALIAS],……}FROMtable_name;
字段的非唯一的结果集
DISTINCT字段名1[,字段名2]
数字类型字段名之间可以进行算术运算
+-*/等
例如:
(字段名1*字段名2)/3
合并字段内容的连接字符||
字段名1||字段名2
字段可以有别名
SELECT字段名1[AS]'字段名1解释'FROMtable;
2.处理NULL
NULL未定义,不可操作,什么都不是
NULL!
=0NULL!
='空格'
和NULL的任何运算都返回NULL
ORACLE里未定义的变量值都为NULL
NVL函数可把NULL转换成其它类型的符号
NVL(EXPR1,EXPR2)函数
解释:
IFEXPR1=NULLRETURNEXPR2
ELSERETURNEXPR1
编程技巧:
NVL函数在多条件模糊查询的时候比较有用
nvl('+input_value+','0')='0'orfiled_namelike'%+input_value+%'
NVL函数可返回多种数据类型:
返回日期NVL(start_date,'2002-02-01')
返回字符串NVL(title,'notitle')
返回数字NVL(salary,1000)
3.使用SQL*PLUS
(1)登录SQL*PLUS的方法
用户名,密码,数据库连接字符串
数据库连接字符串可以用net8easyconfiguration建立本地网络服务名配置,
也可以手工编辑$ORACLE_HOME/network/admin/tnsnames.ora文件。
在UNIX系统下不要用
$sqlplususername/password@dbname
这样别的用户用$ps命令能看出用户的密码
SQL>desctable;显示表结构
SQL>select*fromtab;查看用户下所有的表
SQL>setpauseon;可以使大量结果集在用户按“Enter”(回车)后翻页
SQL>setpagesize100;设定SQL语句返回结果集一页的行数100,默认值是14
SQL>setlinesize100;设定SQL语句返回结果集一行的宽度100,默认值是80
(2)SQL*PLUS里的编辑命令
最近一条SQL命令语句存在ORACLE内存(sqlbuffer)里,但SQL*PLUS命令却不会存进去。
SQL*PLUS里的编辑命令:
A[PPEND]text把text增加到当前行后面
C[HANGE]/old/new/把当前行old符号替换成new符号,new为空,删除old符号
CL[EAR]BUFF[ER]从sqlbuffer里删除所有的行
DELn删除sqlbuffer里第n行
I[NPUT]text在sqlbuffer后面插入text
L[IST]n显示sqlbuffer里第n行
n使第n行为当前行
ntext第n行替换成text
0text在第一行前面插入一行
(3)SQL*PLUS里的文件命令:
SAV[E]filename[REP[LACE]|APP[END]]
把sqlbuffer里的SQL命令存到OS下一个文件filename,默认的文件名后缀为.sql.
REP[LACE]替换filename里的SQL命令
APP[END]把sqlbuffer里的SQL命令添加到filename后
GETfilename从filename里把SQL命令读到sqlbuffer
STA[RT]filename运行上次保存到文件filename里的SQL命令
@filename运行上次保存到文件filename里的SQL命令
EDIT打开编辑窗口,编辑sqlbuffer里的SQL命令
EDITfilename打开编辑窗口,编辑文件filename里的SQL命令
SPO[OL]filename[OFF|OUT]把SQL命令结果输出到OS下一个文件filenameOFF结束输出到文件,OUT结束输出到文件并打印文件
4.SQL*PLUS里规定字段的显示格式
规定数字的显示格式
SQL>column字段名format99999999999;
SQL>column字段名format999,999,999,999;
规定字符串的显示宽度
SQL>column字段名formata数字[word_wrapped];
说明:
一行只显示数字位的长度,超过长度折行,加word_wrapped后,单词不会折行
规定long字符的显示宽度
SQL>setlong200;
规定字段名的显示内容
SQL>column字段名heading'字段名显示内容';
SQL>setheadingoff;查询时不显示字段名称
规定字段的对齐方向
SQL>column字段名justify[left|right|center];
清除字段的格式
SQL>column字段名clear;
5.SQL*PLUS里规定字段的显示格式例子
SQL>columnlast_nameheading'Employee|Name'formata15;
SQL>columnsalaryjustifyrightformat$99,999.99;
SQL>columnstart_dateformata10null'NotHired';
说明:
如果start_date为null,显示字符串'NotHired'
6.判断题(T/F)
(1).SQLcommandarealwaysheldinsqlbuffer.[T]
(2).SQL*PLUScommandassitwithquerydata.[T]
SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访问数据库.
四、从多个表里选取数据记录
1.数据表间的连接
简单的连接语法:
SELECT字段名1,字段名2,……FROM表名1,[表名2,……]
WHERE表名1.字段名=表名2.字段名[AND……];
SELECT字段名1,字段名2,……FROM表名1,[表名2,……]
WHERE表名1.字段名=表名2.字段名(+)[AND……];
有(+)号的字段位置自动补空值
连接的分类:
等于的连接=
不等于的连接!
=BETWEEN…AND…IN注意IN和OR不能一起用
外连接有一个字段名(+),没有满足的条件补空值
自连接同一个表自己跟自己连接例如找重复记录
2.数据表间的连接例子
删除table_name表里字段名email重复的记录:
SQL>deletefromtable_namet1
wheret1.rowid>
(selectmin(rowid)fromtable_namet2
wheret1.email=t2.email
groupbyemail
havingcount(email)>1);
找到手机用户的服务区域:
SQL>selecta.handphoneno,nvl(c.name,'null'),a.totalscore
fromtopscorea,chargeoperatorcc,chargeoperatorinfoc
wheresubstr(a.handphoneno,1,7)=cc.hpnohead(+)
andcc.chargetype=c.chargetype(+)
orderbya.totalscoredesc;
3.数据表间的连接技巧
连接N个表,需要N-1个连接操作
被连接的表最好建一个单字符的别名,字段名前加上这个单字符的别名
BETWEEN..AND..比用>=AND<=要好
连接操作的字段名上最好要有索引
连接操作的字段最好用整数数字类型
有外连接时,不能用OR或IN的比较操作
4.如何分析和执行SQL语句
写多表连接SQL语句时要知道它的分析执行计划的情况.
Sys用户下运行@/ORACLE_HOME/sqlplus/admin/plustrce.sql
产生plustrace角色
Sys用户下把此角色赋予一般用户SQL>grantplustraceto&username;
一般用户下运行@/ORACLE_HOME/rdbms/admin/utlxplan.sql
产生plan_table
SQL>settimeon;说明:
打开时间显示
SQL>setautotraceon;说明:
打开自动分析统计,并显示SQL语句的运行结果
SQL>setautotracetraceonly;说明:
打开自动分析统计,不显示SQL语句的运行结果
接下来你就运行测试SQL语句,看到其分析统计结果了。
一般来讲,我们的SQL语句应该避免大表的全表扫描。
SQL>setautotraceoff;说明:
关闭自动分析统计
五、集合函数经常和groupby一起使用
1.集合函数列表
AVG(DISTINCT|ALL|N)取平均值
COUNT(DISTINCT|ALL|N|expr|*)统计数量
MAX(DISTINCT|ALL|N)取最大值
MIN(DISTINCT|ALL|N)取最小值
SUM(DISTINCT|ALL|N)取合计值
STDDEV(DISTINCT|ALL|N)取偏差值,如果组里选择的内容都相同,结果为0
VARIANCE(DISTINCT|ALL|N)取平方偏差值
2.使用集合函数的语法
SELECTcolumn,group_functionFROMtable
WHEREconditionGROUPBYgroup_by_expression
HAVINGgroup_conditionORDERBYcolumn;
3.使用count时的注意事项
SELECTCOUNT(*)FROMtable;
SELECTCOUNT(常量)FROMtable;
都是统计表中记录数量,如果没有PK后者要好一些
SELECTCOUNT(all字段名)FROMtable;
SELECTCOUNT(字段名)FROMtable;
不会统计为NULL的字段的数量
SUM,AVG时都会忽略为NULL的字段
4.用groupby时的限制条件
SELECT字段名不能随意,要包含在GROUPBY的字段里
GROUPBY后ORDERBY时不能用位置符号和别名
限制GROUPBY的显示结果,用HAVING条件
5.例子
SQL>selecttitle,sum(salary)payrollfroms_emp
wheretitlelike'VP%'groupbytitle
havingsum(salary)>5000orderbysum(salary)desc;
找出某表里字段重复的记录数,并显示
SQL>select(duplicatefieldnames)fromtable_name
groupby(listoutfields)havingcount(*)>1;
6.判断题(T/F)
(1)Groupfunctionsincludenullsincalculations[F]
(2)Usingthehavingclausetoexcluderowsfromagroupcalculation[F]
解释:
Groupfunction都是忽略NULL值的如果您要计算NULL值,用NVL函数
Where语句在GroupBy前把结果集排除在外Having语句在GroupBy后把结果集排除在外
7.在SQL*PLUS里可使用的其它命令:
Ctrl^C终止正在运行的SQL语句
remark/*...*/--注释符号
HOST可执行的操作系统下的命令有些unix可以用!
BREAKONcolumn_nameSKIPn[ONcolumn_nameSKIPn]
按字段的名称column_name分隔显示,更清晰,SKIPn是在分隔处空行的数量n
BREAKONROWSKIPn每一行间隔都放n个空行
COMPUTE集合运算符OF字段1ON字段2按字段2对字段1进行集合运算
COMPUTE后面可以跟的集合运算符:
SUMMINIMUMMAXIMUMAVGSTDVARIANCECOUNTNUMBER
8.在SQL*PLUS里可使用的其它命令举例:
(scott用户)
BREAKONREPORT
COMPUTESUMLABELTOTALOFSALONREPORT在全部结果集后面算合计
selectename,salfromempwherejob='SALESMAN';
COMPUTEAVGLABELavgOFSALONREPORT在全部结果集后面算平均值
/再次执行上次的sql语句
breakonDEPTNOskip2onJOBskip1在BREAK字段结果集后面算合计
COMPUTESUMOFSALONDEPTNO
SELECTDEPTNO,JOB,ENAME,SALFROMEMPORDERBYDEPTNO,JOB;
SQL>CLEARBREAKS;清除设置的BREAK条件
SQL>CLEARCOMPUTES;清除设置的COMPUTE条件
六、子查询
1.查询语句可以嵌套
例如:
SELECT……FROM(SELECT……FROM表名1,[表名2,……]WHERE条件)WHERE条件2;
2.何处可用子查询?
当查询条件是不确定的条件时
DML(insert,update,delete)语句里也可用子查询
HAVING里也可用子查询
3.两个查询语句的结果可以做集合操作
例如:
并集UNION(去掉重复记录)
并集UNIONALL(不去掉重复记录)
差集MINUS,
交集INTERSECT
4.子查询的注意事项
先执行括号里面的SQL语句,一层层到外面
内部查询只执行一次
如果里层的结果集返回多个,不能用=><>=<=等比较符要用IN.
5.子查询的例子
(1)
SQL>selecttitle,avg(salary)froms_emp
groupbytitleHavingavg(salary)=
(selectmin(avg(salary))froms_emp
groupbytitle);
找到最低平均工资的职位名称和工资
5.子查询的例子
(2)
子查询可以用父查询里的表名
这条SQL语句是对的:
SQL>selectcty_namefromcitywherest_codein
(selectst_codefromstatewherest_name='TENNESSEE'and
t_code=t_code);
说明:
父查询调用子查询只执行一次.
6.取出结果集的80到100的SQL语句
ORACLE处理每个结果集只有一个ROWNUM字段标明它的逻辑位置,
并且只能用ROWNUM<100,不能用ROWNUM>80。
以下是经过分析后较好的两种ORACLE取得结果集80到100间的SQL语句(ID是唯一关键字的字段名):
语句写法:
SQL>select*from(
(selectrownumasnumrow,c.*from(
select[field_name,...]fromtable_namewhere条件1orderby条件2)c)
wherenumrow>80andnumrow<=100)
orderby条件3;
七、在执行SQL语句时绑定变量
1.接收和定义变量的SQL*PLUS命令
ACCEPT
DEFINEUNDEFINE
&
2.绑定变量SQL语句的例子
(1)
SQL>selectid,last_name,salaryfroms_empwheredept_id=&department_number;
Entervaluefordepartment_number:
10
old1:
selectid,last_name,salaryfroms_empwheredept_id=&department_number;
new1:
selectid,last_name,salaryfroms_empwheredept_id=10
SQL>SETVERIFYOFF|ON;可以关闭和打开提示确认信息old1和new1的显示.
3.绑定变量SQL语句的例子
(2)
SQL>selectid,last_name,salary
froms_emp
wheretitle='&job_title';
Entervalueforj
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OraclePLSQL Developer 安装配置 安装 配置