ORACLE培训班总结(听课笔记).doc

上传人:w****2 文档编号:6517205 上传时间:2020-02-27 格式:DOC 页数:79 大小:920KB
返回 下载 相关 举报
ORACLE培训班总结(听课笔记).doc_第1页
第1页 / 共79页
ORACLE培训班总结(听课笔记).doc_第2页
第2页 / 共79页
ORACLE培训班总结(听课笔记).doc_第3页
第3页 / 共79页
点击查看更多>>
资源描述
Oracle北京培训第一章Oracle10g的安装与基本设置一、数据库基础部分。Oracle数据库应用系统结构与产品。Sql语言:操作数据库,同时用于数据库管理。(通用部分)Sql*Plus语言:对Sql的扩充,主要增加一些报表。Pl/Sql语言:过程化语言。数据库分区存储技术。1、Oracle数据库应用系统结构与产品Oracle数据字典有4.2万个。数据字典只记录标识。结构方面:Sql与Oracle完成不同,Sql可建多个库,结构与Oracle明显不同。I:代表Internet.C语言结构性最好,计算能力最强。指纹识别系统只能用C.2、Pl:Procedural Language:过程化语言,条件、判断、循环。Sql属非过程化语言,只关心结果,不关心过程。3、数据库分区存储技术(一个表存到多个表空间上)数据库存储数据的最小单位:表。逻辑空间表空间(在物理上与磁盘对应)1 多个磁盘。一个表可以存在多个磁盘上,但不能存到多个表空间上。集中式存储:安全性不好,I/O不平衡。数据库的分区存储技术:Range、List(Oracle 11自动增加)Range:可以比大小。List:不能比大小,例如:人口住址等。4、数据库存取权限控制。5、Oracle 10g Flashback:数据闪回。恢复前提:归档和备份。(1) 基于时间的恢复:从5楼到4楼。必须从5楼下到一楼,再从1楼到4楼。逻辑备份:物理备份:常说的备份点。不完全恢复:向回倒,不可逆转,日志自动清0,有的数据要丢失。Exp、Import.(1) 基于时间的恢复(2)基于中止(撤消)的恢复。(3)基于事务的恢复。完全恢复。Delete From ,Rollback能100%恢复。Drop ,Flashback不一定能恢复。二、程序设计Pl/Sql程序设计。存储过程(Procedure),函数(Function),包(Package),数据库触发器(Data Triggers(枪栓))。三、系统管理(Dba)1、Oracle核心软件安装与产品升级。Sun Solaris Hp Ux 国税Aix 银行Tru64 电力数据库的排序:在临时表空间中进行。8i和9i排序完不释放。10g可自动释放。640万人无人居住,不发生电费。命令行模式运行速度快,容易发现问题的存在。Oracle占用可用内在的55-57%,所以不要建两个以上的库,Oracle按表空间划分用户,Sql可建多个库,结构与Oracle明显不同。2、 创建主要的数据库存储结构。划分磁盘空间。3、 数据库权限与角色管理。角色:权限的组合。4、 监视与控制用户对于数据库的操作。5、 数据库的启动与关闭。6、 数据库性能优化与调整。7、 数据库的备份与恢复。四、基于Web应用开发(会话进程)。会话数(在线数) 用户数 进程数在(Windows称为服务) Select * From All_Users;3、查看进程数使用sys,以sysdba权限登录: SQL show parameter processes;4、$Ps Ef | Grep Oracle 进程,在Windows称为服务。实例包括一个内存和进程(在WINDOWS中为服务)按我的理解来说session就等价与一个客户端,它是用户经过用户进程到oracle事例的特定连接.它从用户连接开始一直持续到用户断开连接或退出数据库为止.进程,笼统地认为一个程序有若干进程组成,从os角度讲程序是静态的,而进程是动态的罢了.进程可以分为user Process和oracle Process .说穿了,进程就是用来执行程序的时候产生的,是一个动态过程.第二章 Oracle安装一、Asm(Automatic Storage Management)自动存储管理。 Oracle10g 新内容。镜像:Oracle 10g以后才支持。磁盘组:Diskmap 逻辑设备裸设备:只做分区,不做格式化。看不到文件,在磁盘管理器中才能看到设备,U盘拷贝不了。只能用逻辑手段拷贝:Exp Rman.二、OLTP_数据仓库_全局数据库名_ (NTS适配器错误_在Windows中清理Oracle)1、T-Oltp(On Line Transaction Processing)在线事务处理。网上数据传输量比较大,数据库数据改动大,数据库负荷重,Oracle 会设比较大的回退段(Rollback Segments)和空闲率(Pctfree 10%)Oracle的块为:8k.它使用了所有的所谓数据的操作 CRUD(创建、读取、更新、删除)。当数据存储达到一定量的时候,规模就会几乎保持不变,因为可以从存储中删除过期数据。2、数据仓库数据仓库改动少,主要为查询速度快服务,用于存历史数据,用来构造决策支持系统。他的回退段和空闲率留的比较少。数据仓库就完全是一种不同种类的应用程序。它并不是用来运行当前的操作,例如发送邮件。它是用来分析数据并且从现有数据中发现新的价值,主要是用来预测未来的情况。数据仓库并不是解决所有问题的通用结构。它必须集中于某一问题领域,例如航空服务、顾客收益等。数据仓库也有有趣的一面,那就是本身是稳定增长的。数据没有被删除,也不发生变更。我们不需要将冗余数据置于数据库之外(因为加入仓库中的数据经过了数据净化的过程,该过程检查了数据的正确性)来减少复杂性同时增强读取操作的性能。为了能够对数据仓库中的数据进行分析,数据存储于一个多维结构中,叫做星型模式。如果将星型模式扩展,就会得到雪花模式。3、全局数据库名:以字母打头,不超过8个。数据库名不能重名,否则复制数据和同步数据时会出麻烦,数据库安装完后,数据库名不能更改,起名时要慎重。4、Oracle字符集。Zh16gbk.5、NTS适配器错误。D:OracleProduct10.2.0Db_1NetworkAdminSqlnet.Ora把Sqlnet.Ora文件中的(Nts)改为None,再重新启动OracleConfigudration And Mir Database Config.6、在Windows中清理Oracle。(1)删除注册表:Regedit - Local Machine- Software -Oracle(2)删除Oracle服务Regedit - Local Machine-SystemCurrentcontrolsetServicesOra* (3)删除Oracle事件日志Regedit - Local Machine-SystemCurrentcontrolsetServicesEventlogApplication- Oracle(4)删除Windows安装磁盘中Program FilesOracle目录。(5)删除Oracle菜单。(6)删除Oracle环境变量。控制面板系统高级环境变量。总共删除2项。(7)重新启动操作系统(8)删除Oracle磁盘文件。第三章 Oracle9i及Oracle10g数据库的基本设置。一、简单操作有分号的是Sql命令,无分号的是Sql Plus。/:执行命令。1、修改System口令字:System/NmgmdqSqlGrant Connect To System Identified By Abcd(必须是字母打头,数字打头必须是双引号“123”,登录时不用输入”.SqlPassword 用户名 必须提供原口令,不写用户名表示为当前登录用户。2、Sql-Clear Scr 清除屏幕。关于Oracle 9i/10g中的数据库管理员用户的说明:刚安装完Orcale,只有Sys和System用户。Sys:在Oracle9i 9.0.1以及以前的数据库中,默认口令字为:Chang_On_Install;在9.0.02及以后的版本中无默认口令字。System:在Oracle9i 9.0.1以及以前的数据库中,默认口令字为:Manager;在9.0.02及以后的版本中无默认口令字。Sys用户登录数据库方法:$(表示操作系统符号)Sqlplus “/As Sysdba” -Sys无口令字要求(默认)$Sqlplus “Sys/Xx(口令) As Sysdba -Sys有口令字要求。修改过Tns文件的必须按第二种方式登录。从一个用户退出进入另外一个用户:SqlConnect / As SysdbaSqlConnect System/XxxSystem切换到sys:SqlConnect Sys/Nmgmdq As Sysdba;3、Sqlplus登录:System/Nmgmdq/As Sysdba Sys/Nmgmdq As SysdbaSys As Sysdba4、为用户解锁:SqlAlter User Scott Account Unlock;SqlGrant Connect To Scott Identified By Tiger;SqlPassword Scott(1)、查询有哪些用户SqlSelect * From All_Users;(2)查询当前用户所拥有的实体:SqlSelect * From Tab; 查询当前用户所拥有的实体(表和视图);。SqlSet .Linesize 1000设置行宽。一行显示多少字符。SqlSet Pagesize 100 设置页完。每页显示多少行。SqlSelect * From Emp;SqlSelect * From V$Option;查询是企业版还是标准版(右表是TRUE 还是FALSE)。二、SYS用户口令字认证问题操作系统认证(默认):Ora_Dba(Window操作系统组用户,登录sys不要密码)。Nmgmdq01 Oinstall(Unix).Oracle认证:1、修改认证方式:D:OracleProduct10.2.0Db_1NetworkAdminSqlnet.OraSqlnet.Autentication_Services=(None)Oracle认证方式。Nts为操作系统认证。UNIX打开SQLNET.ORA后,无这行,必须单独添加。?-Oracle_Home=D:OracleProduct10.2.0Db_1$Oracle_Home=/U01/App/Oracle/Product/10.2.0/Db_1 ?表示oracle安装目录。Wind 注册表对应unix Profile文件。$Source /.把.Profile放到环境文件中,想当于批处理文件。2、修改sys用户口令字方法:NmgmdqD:oracleproduct10.2.0db_1在操作系统中:$(C:)Orapwd File=?Database PwdSID.Ora(Pwdsid) Password=Manager Entries=30 Force=Y(覆盖同名字的口令字文件) Sid:数据库实例名,缺省跟数据库名相同。Orapwd File=D:oracleproduct10.2.0db_1DatabasePwdnmgmdq.Ora Password=nmgdmq Entries=30 Force=YPwdnmgmdq.Ora文件能打开吗。ORACLE进程关闭后,如何启动。SID = Security Identifiers,安全标识符,是标识用户、组和计算机帐户的唯一的号码。3、对于oracle 9i还有第三步重新启动oracle服务(Windows)重新启动数据库(Unix)Shutdown Immediate 关闭数据库。Startup 启动数据库。三、ORACLE网络连接配置主机字符串:(1)网络协议(TCP/IP)。(2)ORACLE服务器主机名称或IP。(3)数据库服务名或数据库实例名(数据库的标识)。1、数据库标识类参数。(1)数据库名称(DB_NAME):不超过8个字母的串,以二进制保存,安装完后,不能改动。(2)数据库实例名称(INSTANCE_NAME)SID:与数据库名一对一对应,先有实例后有数据库。是两个不同的概念,数据库启动时先启动实例,再启动数据库,关闭时先关数据库,再关实例。实例包括一个内存和进程(在WINDOWS中为服务)Oracleservicenmgmdq。实例名启动后,数据库不一定能启动(登录ORACLE时,提示TNS协议适配器错误)。SHUTDOWN IMMEDIATE STARTUP.在双机中,是多个实例对应一个数据库。双机没有实现安全性,主要为了有效利用资源。Rac(Real Application Cluster)Ops(Oracle Parallel Server):用户只能连到一个实例中。(3)数据库域名(Db_Domain):区分两个同名数据库。分布式:实现数据的远程连网和传输。两个数据库是企业版即可实现分布式。Oracle规定:同名数据库不能实现数据的复制。这样在数据库后面加一个域名,加以区分。SELECT * FROM EMPCTAIS.DQ.CNPC.CN.(4)数据库服务名(SERVICE_NAMES):EMPCTAIS.DQ.CNPC.CN.如果没有域,数据库服务名与数据库名相同。(5)全局数据库名(GLOBAL_DB_NAME):EMPCTAIS.DQ.CNPC.CN.默认设置:全局数据库名。Ctais.Us.Oracle.Com(Oracle 9i)Cdtais.Regress.Rdbms.Dev.Us.Oracle.Com(Oracle10g)Nmgmdq.Regress.Rdbms.Dev.Us.Oracle.Com题:在oracle9i中,一个数据库的全局数据库名称是prod.Us.Oracle.Com问:该数据库的数据库名称是:Prod.域名是:无。服务名是:PROD。(1)查询数据库名称(标识):单引号中的内容区分大小写,V$打头的表示动态数据字典,必须是SYS和SYSTEM才能查询。SQLSelect Name From V$Database;Select Name From V$Database(2)查询数据库实例名称:SqlSelect InStance_Name From V$Instance;SQLshow parameter instanceNMGMDQ(3)查询数据库域名:Sqlselect value from v$parameter where name = db_domain;或sql show parameter domain;(4)查询数据库服务名:方法一:select value from v$parameter where name = service_names; 单引号中要区分大小写。方法二:show parameter service_names(5)查询全局数据库名:SqlSelect * From Global_Name:NMGMDQ.REGRESS.RDBMS.DEV.US.ORACLE.COM数据库服务名连接(Oracle 8i/9i/10g)数据库实例名连接:通用(Oracle7/8i/9i),10g一般不用实例名连接。Oracle10g-互连(用实例名)-Oracle 7Jdbc,Odbc用实例名连接。(2)图形界面的网络连接配置工具:$Netca (Net Config Assistant)(1)本地net服务名配置。(2)添加:服务名 Nmgmdq(3)Tcp(4)主机名:输入ip地址。 10.144.4.100 10.144.4.11。Oracle穿不过防火墙。 Gwj 10.144.4.10 Yxx10g 10.144.4.15(5)网络服务名:随便写。填写SYSTEM/密码。主机字符串:如何找回,如何才能测试成功。监听进程。配置多个nct。Sqlplus “Sys/ManagerUnix01 As Sysdba”3、监控用户数据字典:(1)查询在线用户:SqlSelect Username,Sid,Serial#(会话标记),Machine From V$Session Order By Username;SqlSelect Username,Sid,Serial#,Machine From V$Session Order By Username;显示22行,SID号。SID = Security Identifiers与SESSION会话数的关系。一对一关系。.(2)查询用户所使用的sql 语句:SqlSelect User_Name,Sql_Text From V$Open_Cursor;(2) 强制删除用户会话:SqlAlter System Kill Session Sid,Serial#;Alter System Kill Session 99,63; Sid,Serial#合在一起唯一标识一个会话标记。4、手工配置网络连接方法:?Db_1NetworkAdminTnsnames.Ora.HOST = 10.144.4.100SERVICE_NAME = ora10g:对方数据库的名称。监听进行配置文件:?Db_1NetworkAdminListener.Ora?Db_1NetworkAdminSqlnet:监听一旦停止,所有用户登录不了数据库。是操作系统进程。机器名不要随便改动,否则监听会停止。$Lsnrctl Stop -停止监听进程$Lsnrctl Status -显示监听状态$Lsnrctl Start -启动监听进程。第四章 数据库语言部分SQL:SQL*PLUS:做一些简单的报表。SQL/程序设计一、SQL语言。Structured Query Language:结构化查询语言。用于查询、创建和管理。非过程化语言,只关心结果,不关过程。CJAVA过程化语言。二、SQL特点。1、非过程化语言2、提供视图功能(VIEW)视图是从一个或几个基本表导出的表,是个虚表;首先视图可以将不同表中的数据通过关联实现多表数据输出,3、两种使用方式。(1)交互式(2)程序方式 *.SQL-SQL-D:T1.SQL 程序执行方式。 (绝对路径) :表示调用文件在当前目录。(相对路径) 脚本执行标记以SYSTEM登录:SQLD:CR_USER.SQL SQLD:CR_EMP.SQLSQLSELCET * FROM ALL_USERS;4、控制存取数据。三、SQL命令。1、数据查询语言(Ql):Quary Language :SELECT2、数据操纵语言(Dml):Data Manipulation Language。例如:Insert(插入)、Update(修改)、Delete(删除)、LOCK语句。命令执行后,可以悔改。3、数据定义语言(Ddl):Data Definition Language.改表的结构 例如:Create、Drop(将表和数据全部清空)、Alter、AUDIT、RENAME 、TRUNCATE:(将表的数据清空,保留空表结构).等语句。命令执行后,不能悔改。Grant、Revoke(撤消权限)。4、数据控制语言(Dcl):权限、实物控制。Data Control Language例如: Commit、Rollback等语句。四、SQL关键字。Alter Audit(数据库审计:将用户对数据库的使用情况记录下来)、CommitComment(注释)Delete:删除行,Drop:删除表。(将表和数据全部清空)Commit-RollbackGrant-RevorkRename:可改字段名称。Truncate:将表的数据清空,保留空表结构。五、命令的输入。六、SQL*PLUS关键字SQL*PLUS关键字:执行时,不需要分号。脚本执行标记。 /:执行上一次执行的命令,但不执行PLUS命令。SQL缓冲区:只保留一条命令,在服务器端执行。SQL*PLUS不保存在缓冲区中。ACCEPT:接收键盘的输入的变量。APPEDN: 在行尾增加字符串。简写为A.SqlSelect * From All_User.SqlA S.1、Break:分组显示。SqlBreak On 分组列 Skip N注意:使用break分组后,查询必须使用order By 排序。SqlBreak On Deptno Skip 1 部门排序的结果,空一行。SqlSelect * Form Enp Order By DeptnoSqlSelect * From Emp Order By Deptno.取消分组:Clear Breaks.1、Btitle:设表尾。Ttitle 文本Ttitle:设表头。Btitile 文本.SqlTtitle AbcdSqlBtitle XyzTtile Off Btitle OffSQL*PLUS不针对某一个表,只针对一个会话。 只能用来改SQL,不能修改SQL*PLUS自己。2、Change:简写为c,变量替换。SqlC/Old/NewSqlSelect * Form Emp;SqlC/Or/RoSql/SqlClear Buff3、Column:列定义。A:用于定义列的别名。SqlColumn 列名 Heading 别名。B:用于定义数字型数据的显示格式。SqlColumn 列名 FORMAT 格式。常用格式:999,999.99 $999,999.99 $9.99EEEE(数字以科学记数法显示) 0999,99.99左边全部以O补齐。C:用于设置字符型数据最大显示宽度。SqlColumn 列名 FORMAT AN取消列定义:SqlColumn 列名 Clear 取消一个列定义。 Sql Clear Column 取消全部定义。SqlColumn Empno Heading 编码SqlColumn Ename Heading 姓名SqlColumn Ename Heading 姓名SqlColumn SAL FORMAT $999,99.99SqlColumn ENAME FORMAT A5.4、Desc显示表结构。Sql Desc Emp.5、Compute:统计计算。SqlCompute 函数 Of 统计列 On 分组列。6、常用函数:Max,Min,Avg,Sum(求数字的总和),Count(计数,人数的总和),Std(标准差),Var(协方差).说明:统计计算时,必须使用break分组。SqlBreak On Deptno 以DEPTNO为标识,分组显示。SqlCompute Sum Of Sal On DeptnoSqlSelect * From Emp Order By Deptno(2)增加总计SqlBreak On Deptno On ReportSqlCompute Sum Of Sal On Report取消统计计算:SqlClear ComputesClear BreaksClear ComputesClEAr Columns7、Connect 用户名 DisconnetCopy:Define:变量定义。 Undefine:取消定义。Del 删除当前行。SqlSelect * From EmpPD;8、Desc显示表结构、数据字典结构。SqlDesc All_Users.SqlDesc Emp.SqlDesc Tab9、Edit:调用操作系统的记事本。10、在编号器中不要写分号。11、Get:将外部sql文件调入sql缓冲区并显示在屏幕上,但不执行。一般与save成对使用。SqlGet D:文件名。Save:将sql缓冲区命令保存到外部磁盘。SqlSave D:路径及文件名App(不代替原文件,只是在尾部追加)|Rep(代替已经存在的原文件)。8、 Help:Sql Help Index9、 Host :调用操作系统命令。SqlHost Dir/P14、在某一行插入15、List:显示缓冲区的保留命令。可简写为l.16、Newpage:另起新页。17、Pause:设置屏幕暂停。 SqlSet Pause On SqlSet Pause Off 不暂停SqlSet Pause .Moer Pause On SqlSelect * From All_Objects;SqlSet Pause .Moer Pause On 18、Quit Remark(注释) Run与/等价表示执行 19、Spool(设置屏幕跟踪,将屏幕的所有内容拷贝到文件中存储。)SqlSpool D:文件名 -开始记录。SqlSpool Off 必须要打上off,否则文件中不保存内容。SqlSpool D:S1SqlBreak On DeptnoSqlCompute Sum Of Sal On DeptnoSqlSelect * From Emp Order By DeptnoExp-20、SqlShow UserSqlShow LinesizeSqlShow PagesizeSqlShow PauseSqlShow All20、Start() Timing:设置某一条命令在服务器端执行时间跟踪。SqlSet Timing On SqlSelect * From EmpSqlSelect * From All_Objects.List Change /:三个必记命令。SQLSELECT * FROM TAB;查询用户能查询的表。SqlSelect * From All_UserS;七、数据字典:描述数据信息。是一组存储系统信息的表、视图、或同义词。能存表名、字段名等系统信息。由系统自动维护,用户不得修改。必须用SELECT来查询,不能用SHOW。SqlSelect * From TAB;1、User_Xxx:存储用户所拥有的实体(表、视图、同义词等等)。User_Tables. User_Index User_Views User_Db_LinksSqlDesc User_Index;2、All_Xxx:存储用户可以存取的实体。All_Tables. All_Index All_Views All_Db_LinksSqlSelect Table_Name Form All_Tables;SqlSelect Owner Table_Name Form All_Tables;3、Dba_Xxx:数据库管理员专用数据字典,可查询所有的实体。Dba_Tables. Dba_Index Dba_Views Dba_Db_LinksSqlSelect * From Dba_Tables;4、V$XXX:动态数据字典。V$SESSION,V$SGA,第五章 数据查询语言(QL)一、查询语句语法。1、全表查询:SqlSelect * From Emp: *表示emp中的所有字段。SqlSelEct Ename,Sal From Emp;例如,下面语句显示testtable表中所有列的数据: SELECT *FROM testtable 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT 昵称=nickname,电子邮件=emailFROM testtable2、Distinct:将查询结果中相同的行合并,只显示不同的行。SqlSelect Job From Emp ;SqlSelect Distinct Job From Emp ;SqlSelect Distinct Deptno Rom Emp;3、显示结果使用order By Asc(升序默认) 排序。Order By Desc(降序)数据在数据库存储是不按顺序存储。SqlSelect * From Emp Order By Sal;SqlSelect * From Emp Order By Deptno,Sal Desc;4、条件查询:使用WHERE指出查询条件。SQLselect * from emp where sal=3000;SQLselect * from emp where sal=3000 or job=manager ORDER BY SAL;字符型和日期型,必须使用单引号,单引号中必须区分大小写。5、关于日历与日期显示格式的设置。A、设置日历显示格式:NLS_CALENDARSqlAlter Session Set Nls_Calendar =Japanese Imperial;SqlSelect Sysdate From Dual;SqlAlter Session Set Nls_Calendar =Roc OfficIal; GREGORIAN;B、设置日期显示格式参数:Nls_Date_Format.只是显示格式改变,数据库中的数据存储没影响。SqlAlter Session Set Nls_Date_Format=格式组合;常用格式组合:Yyyy,Mm,Dd Yy,Mm,Dd Yyyy/Mm/Dd Yy/Mm/DdSqlAlter Session Set Nls_Date_Format=Yyy,Mm,Dd;SqlAlter Session Set Nls_Date_Format=Yyy“年”,Mm“月”,Dd“日” Dy Hh24:Mi:Ss;他不是针对一个表,而是对所有的表,日期格式一旦修改,所有查询更新全部改变。SqlSelect * From Emp Where Hiredate1985.01.01;查询当前时间。Dual(公共同义词:Dba创建所有用户都可使用。)SqlSelect Sysdate From Dual;SqlSelect Sysdate From EMP;SqlSelect Sysdate+10+2/24+30/1440 From Dual;6、查询5年11个月之后的时间:SqlSelect Sysdate+To_Yminterval(5-11) From Dual;查询超过15个月后的时间:SqlSelect Sysdate+Numtoyminterval(15,Month) From Dual; YEAR7、查询年度:SqlSelect Ename,Extract(Year FROM Hiredate) From Emp; MONTH DAYSqlSelect Ename,To_Char(Hiredate,Yyyy/Mm) FROm Emp;9、时区(Time Zones)设置:查询当前时区:SqlSelect Sessiontimezone From Dual;设置时区:SqlAlter Session Set Time_Zone=-11:00;10、查询当前时间:SqlSelect Sysdate,Current_Date From Dual; Sysdate不受时区影响,Current_Date受时区影响11:时间永久性更改:将日历或日期显示格式写入注册表。RegeditLoacal Machine Software-OracleKEY_ORADB10G_HOME1 增加关键字:Nls_Date_Format (编辑/新建/字符串值)日期格式。12、Oracle登录时的自动执行文件:Glogin.Sql?SqlplusAdminGlogin.SqlC:oracleproduct10.2.0db_2sqlplusadminSet Linesize 100Set Pagesize 100Select Sysdate From Dual;Show UserSpool D:Mdq二、运算符号与谓词1、算术运算符SqlSelect Ename,Sal,Sal*12 From Emp;试判断以下语句是否有错误:SqlSelect Ename,Sal,Comm,Sal+Comm From Emp;空值与任何值相加,还是空值,在算术值运算时,不能有空值。空值函数:Nvl(C1,C2)=C1 C1不是空值。 =C2 C1是空值正确答案:SqlSelect Ename,Sal,Comm,SAL+Nvl(Comm,0) From Emp; 无值是赋0类似的函数还有:Nvl2(C1,C2,C3)=C2 C1不是空 =C3 C1是空。SqlSelect Ename,Nvl2(Comm,Comm+1000,3000) From Emp; 有奖金+1000,无奖金给3000.Coalesce (C1,C2,C3, , ,)=C1 C1不是空 =Coalesce(C2,C3,C4, , ,) C1是空。结果:返回第一个非空值。5个都为空值,最后一个取0.2、逻辑运算符:NOT,AND,OR 非、与、或。3、比较运算符:=,,=,Select * From Emp Where Job In (CLERK,SALESMAN);(Not) Between And:表示从小到大的一个范围。SqlSelect * From Emp Where Sal Between 2000 And 3000;SqlSelect * From Emp Where To_Char(Hiredate,Yyyy) Between 1980 And 1985;(Not)Like:模式匹配查询,用在字符型数据SqlSelect * From Emp Where Ename Like S%;%表示任意字符串 王%;_表示一个字符 王_力;SqlSelect Object_Name From All_Object Where Object_Name Like Dba%;%Dba%;空值匹配:SqlSelect * From Emp Where Comm Is Null; Is Notnull;伪列Rowid:唯一行标识。SqlSelect Ename,Sal From Emp;SqlSelect Ename,Sal,RoWid From Emp;SqlSelect E.*,E.Rowid From Emp E;这是什么意思。 RowId:行号SqlSelect Ename,Sal,Rownum From Emp Where RownumSelect Ename,Sal,Rownum From (Select Ename,Sal From Emp Order By Sal ASC) Where RownumSelect Ename 姓名,Sal 工资 From Emp;试指出以下语句是否有错误?SqlSelect Ename Name,Sal+Nvl(Comm.0) 月收入/工资,(Sal+Nvl(Comm,0))*12 年收入/工资 From Emp;别名、列名、表名不能出现违法符号:/ 空格、保留字。SqlSelect Ename “Name”,Sal+Nvl(Comm.0) “月收入/工资”,Sal+Nvl(Comm,0))*12 “年收入/工资” From Emp;SqlSelect Ename Name,Sal+Nvl(Comm.0) 月收入/工资,Sal+Nvl(Comm,0))*12 年收入/工资 From Emp;ORCALE中,单引号表示数据,双引号表示不合法。第六章 数据操纵语言(DML)操纵就是修改数据。一、数据插入1、对表中全部列插入语法:SQLINSERT INTO 表名 VALUES(值列表);SqlInsert Into Dept Values(60,网络控制中心,总部); 部门编号(主键),部门名称,地点。SQLDESC DEPT :看结构,要看是否有非空值约束(强制性约束)2、部分列插入:未列出来的,默认值为空值。语法:SqlInsert Into 表名(列名) VALUES(值);SqlInsert Into Emp(Empno,Ename,Job,Hiredate,Sal,Deptno) Values(1234,王大力,工程师,Sysdate,5600,30);外键值:必须是主表中已经存在的值。主键值:保持唯一性。3、使用参数SqlInsert Into Dept Values(&X1,&X2,&X3);&:表示接收键盘输入。X1;61 X2;软件开发 X3:大连SQLSELECT &X1 FROM EMP;SqlDefine X=1234 Select * From Emp Where Empno=&X;4、使用子查询从另一表中复制数据。SQLInsert Into Emp(Empno,Hiredate,Deptno) Select 8100+Deptno,Sysdate,Deptno From Dept; DEPTSUN编号重复。SqlCreatE Table Payment As Select Ename,Sal From Emp;SqlInsert Into Payment Select * From Payment;/:重复复制自己的数据。查询表中总记录数:SqlSelect Count(*) From Payment;5、多表插入(支持版本9I以上)SqlCreate Table Emp1 As Select * From Emp Where 12;复制表结构(空表),而不复制数据。SqlCreate Table Emp2 As Select * From Emp Where 12;执行多表插入:SqlInsert All When Sal1000 And SalUPDATE 表名。 SET 列名=值或表达式 WHERE 条件SqlUpdate Emp Set Sal=Sal+1000 Where SalUpdate Emp Set Job=经理,Sal= 5000 Where Ename=王大力;三、数据删除语法:SQLDELETE FROM 表名 WHERE 条件1、删除部分数据(可以回退ROLLBACK):SqlDelete From Emp Where Ename Is Null;2、删除全部数据,保留空表结构(不可回退):SqlTruncate Table Emp1;3、删除表结构及全部数据(不可回退):SqlDrop Table Emp2;SqlSelect * From Tab;SqlDrop Emp2;第七章 数据控制语言(DCL)一、数据提交对于数据插入、更新及删除,只有提交之后数据库中的数据才会真正改变(UPDATEDELETEINSERT).1、显示提交 SQLCOMMIT;应对并发进程:先改数据的人,改后不提交,系统会加行锁,其他客户端再操作会锁死,造成死机。死进程:锁死后,重启动,会形成一个死进程。 ORACLE本身会占10个进程,默认150个进程。解锁:第一个用户提交(COMMIT)后,才能解锁。出现两个UPDATE容易产生锁死:UPDATE COMMIT; UPDATE意外关闭进程时,全部回退,正常关闭时,全部提交。2、隐式提交:AlterCreateDropRenameTruncateExitQuitGrantRevokeAuditNoauditCommentSqlDeleteSqlUpdateSqlCreat :当执行隐式提交后,前两个步骤自动提交。3、自动提交打开自动提交功能(默认OFF)SQLSET AUTOCOMMIT ON 写入LOGIN文件。二、事务回退,不针对某一个表,只对一个事务。使用ROLLBACK命令使数据库回退到最近一次提交后状态。三、保存点(SAVEPOINT)设置保存点:设置保存点: SqlSavepoint A; 回
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!