《Oracle经典基础教程.pdf》由会员分享,可在线阅读,更多相关《Oracle经典基础教程.pdf(135页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle基础教程2012.06.03走进 Oracle.31.O racle 简介.52.O racle 安装.63.O racle客户端工具.114.O racle 服务.185.O racle启动和关闭.196.O racle用户和权限.207.本章总结.238.本章练习.24SQL数据操作和查询.271.SQL 简介.282.O racle数据类型.283.创建表和约束.294.数据操纵语言(DML).325.操作符.376.高级查询.387.本章总结.468.本章练习.47子查询和常用函数.501.子查询.512.O racle中的伪列.533.O racle 函数.564.本章总
2、结.655.本章练习.66表空间、数据库对象.691.O racle数据库对象.702.同义词.703.序列.734.视图.755.索引.776.表空间.797.本章总结.838.本章练习.84PL/SQL程序设计.871.PL/SQL 简介.882.PL/SQL 块.893.PL/SQL数据类型.934.PL/SQL条件控制和循环控制.955.PL/SQL中动态执行SQL语句.1056.PL/SQL的异常处理.1077.本章总结.1138.本章练习.114Oracle 应用于.N e t平台.1161.回顾 ADO.N ET.1172.使用 ADO.N ET 连接 O racle.1183.
3、抽象工厂中加入O racle.1224.本章总结.1275.本章练习.128数据库导入导出.1301.O racle 导入导出.1312.EXP导出数据.1313.IMP 导入.1344.常见问题.135第1章走进O racle主要内容/Oracle 安装/Oracle创建用户和角色/客 户 端 链 接Oracle服务器1.O racle 简介在第一学期我们已经接触过关系型数据库SQL Server,对数据库、表、记录、表的增删改查操作等这些基本的概念已经了解。O racle是基于对象的关系型数据库,O racle也是用表的形式对数据存储和管理,并且在O racle的操作中添加了一些面向对象的
4、思想。O racle数据库是O racle(中文名称叫甲骨文)公司的核心产品,O racle数据库是一个适合于大中型企业的数据库管理系统。在所有的数据库管理系统中(比如:微软的SQLServer,IBM的 DB2等),O racle的主要用户涉及面非常广,包括:银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。O racle产品是免费的,可以在O racle官方网站上下载到安装包,另一方面O racle服务是收费的。O racle公司成立以来,从最初的数据库版本到O racle7 O racle8i、O racle),O raclelO g到 O racle llg,虽然每一个版本
5、之间的操作都存在一定的差别,但是O racle对数据的操作基本上都遵循SQL标准。因此对O racle开发来说版本之间的差别不大。很多人没有学习O racle就开始发怵,因为人们在误解O racle,认为O racle太难学了,认为O racle不是一般人用的数据库,其实任何数据库对应用程序研发人员来说,都是大同小异,因为目前多数数据库都支持标准的SQL。在 O racle这本书中,我们能学习到:O racle的安装 O racle数据管理 常用子查询及常用函数 PL/SQL 编程 O racle基本管理由于在第一学期已经接触了 SQLServer,O racle数据库的概念不是很难,主要是实
6、践,因此在本书的学习中,认真的完成上机练习是学习好本书的关键。接卜来我们先从O racle安装开始,接触一些O racle中基本的概念。2.O racle 安装O racle数据库产品是免费的,我们可以从O racle的官方网站(http:)下载到程序安装包,O racle在 Windows下的安装非常方便,安装开始后,一直点击安装程序的“下一步”即可。1.下载O radelO g后,解压到一个文件夹下,单 击“setup.exe”文件即可启动安装界面。如下图:图 1 O racle安装启动界面O racle主目录位置就是O racle准备安装的位置,称 为“O racle_Home,一般O
7、racle根据当前计算机的硬盘大小默认给出一个合适的位置。O racle安装时可以只安装O racle软件,然后单独创建数据库,也可以在上图中选中“创建启动数据库”复选框,在安装O racle产品时,同时创建一个数据库,对初学者来说,推荐这样安装。填写全局数据库名,以及管理员的密码。全局数据库名是数据库在服务器网络中的唯一标识。2.点 击“下一步”,就会出现如下图内容,开始对O racle服务器进行环境检查,主要查看服务器是否符合O racle安装的条件,比如操作系统是否支持、系统内存是否符合 O racle安装的最低要求等。图2 Oracle安装前环境检查3.Oracle检查通过后,单 击“
8、下一步”,就会列出所有安装Oracle过程中的默认选项。图3 Oracle默认安装设置4.单 击“安装”按钮,进入安装界面,这过程经历时间比较长,根据计算机的性能不同有很大差别。图4 O racle安装5.上图完成后,进入了各种O racle工具的安装阶段,包括网络配置向导,iSQL*plus等(后面课程中讲解)。如下图所示:图5 O racle各种工具的安装6.接下来自动启动DBCA(Database Configuration Assistant)进入创建默认数据库阶段。图6 DBCA卜.安装数据库O racle中的数据库主要是指存放数据的文件,这些文件在O racle安装完成后,在计算机
9、硬盘上都能找到,包括数据文件、控制文件和数据库日志文件。数据库创建后会有一系列为该数据库提供服务的内存空间和后台进程,称为该数据库的实例。每一个数据库至少会有一个实例为其服务。实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机系统的性能给SGA分配非常可观的内存空间。O racle创建数据库不能像SQL Server那 样 用 个简单的CREATE DATABASE命令就能完成,在创建数据库的过程中还需要配置各种参数。虽然有DBCA工具向导,但是仍然需要进行比较麻烦的配置。提示虽然一个Oracle数据库服务器中可以安装多个数据库,但是一个数据库需要占用非常大的内存空间,因此一般一个
10、服务器只安装一个数据库。每一个数据库可以有很多用户,不同的用户拥有自己的数据库对象(比如:数据库表),个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限。不同的用户创建的表,只能被当前用户访问。因此在Oracle开发中,不同的应用程序只需使用不同的用户访问即可。7.数据库创建完毕后,需要设置数据库的默认用户。O racle中为管理员预置了两个用户分别是SYS和 SYSTEM 同时O racle为程序测试提供了一个普通用户scott,口令管理中,可以对数据库用户设置密码,设置是否锁定。O racle客户端使用用户名和密码登录O racle系统后才能对数据库操作。C o n fig
11、u ra tio n A s s is ta n tX数据库创建完成.有关详细信息,请检查E:l or a c l e pr od uc t 10,2.0 d b _ nc f gtool l ogsl d b c a or c l上的日志文件。数据库信息:全局数据库名:or c i系 统 标 识 符(SID):or d服务器参数文件名:E:or a c l e pr od uc tl 10.2.0 l d b _ 1 d a ta b a se spf i l e or c l.or aD a ta b a se Contr ol U R L 为 h ttp:/A CCP-X-0 8 9:1
12、15 8/e m注:所有数据库帐户(SYS,S Y S T E M,DBS N M P和S Y S M AN除外)都已锁定。单 击“口令管理”按钮可以查看锁定帐尸的完整列表或管理数据库帐户(DBS N M P和S Y S M AN除外).从“口令管理”窗口中,仅解锁要使用的帐户.Or a c l e Cor por a ti on强烈建议您在解锁帐户后立即更改默认口令.口令管理;确 定:图7 DBCA下的口令管理图8为system,sys,scott用户设置密码默认的用户中,SYS和 SYSTEM用户是没有锁定的,安装成功后可以直接使用,SCO TT用户默认为锁定状态,因此不能直接使用,需要把
13、SCO TT用户设定为非锁定状态才能正常使用。这一步完成后,O racle系统安装成功。Oracle数据库中,默认情况下,所有系统的数据,SQL关键字等都是大写的,在操作过程中,Oracle会自动把这些内容转换为大写,因此用户操作时不需考虑大小写问题,一般情况下,为了良好的程序风格,程序中建议关键字用大写,非关键字可以使用小写。3.Oracle客户端工具O racle服务器安装成功后,就可以通过客户端工具连接O racle服务器了,可以至lj O racle官方下载O racle专用的客户端软件,大多客户端工具都是基于O racle客户端软件的。接下来介绍几种常用的O racle客户端工具。令
14、SQL*Plus工具该工具是O racle系统默认安装下,自带的一个客户端工具。在 Windows命令行中输入“sqlplusw”命令,就能够启动该工具了。图9 SQL*Plus工具输入用户名和密码后,如果SQL*Plus与数据库服务器在同一台计算机上,并且当前服务器下只有一个数据库实例,那 么“主机字符串”可以不用填写。SQL*Plus连接成功后就如图所示:_ _ _ _ O _ r _ _a_c _ l _ e _ _ _S _ Q _ L _*_ _P_l _ u _ s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
15、_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _文件9 编辑 按索6)选项)帮助如SQL*Plus:Release 10.2.0.3.0-Production on 星期一 8月 24 17:56:53 200(jCopyright(c)1982,2006,Oracle.All Rights Reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.3.0-ProductionWith the Part
16、itioning,OLAP and Data Mining optionsSQLALJ/图10 SQL*Plus工具登录后令SQL*Plus命令行工具该命令行工具,提供了与数据库交互的能力和维护数据库的能力,包括了 O racle自带的 SQL*Plus工具的全部功能,在 O racle管理中经常使用。在命令行中输入:“sqlplus/nolog”即可启动该工具。如下图:c C:Y IS D 0 Y S s y s te B 3 2 c a d.exe-s q lp lu s /n o lo gC:Docunents and Settingsxdninistratorsqlplus/nolog
17、-SQL*Plus:Re lease 10.2.0.3.0-Production on 星期一 8 月 24 18:03:27 2009Copyright 1982,2006,Oracle。All Rights Reserved.SQL conn sys/stephen as st/sdba;己连接。SQL.,1-I 图1 1启动SQL*Plus命令行工具输 入“sqlplus/nolog”命令后,只是启动了一个客户端进程,并没有与服务器连接,连接到O racle服务器的命令是:conn用户名/密码a s 连接身份 服务器连接字符串说明:1.连接身份:表示该用户连接后拥有的权限。sysdba:
18、即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、I I 志归档、会话限制、管理功能、创建数据库。sys用户必须用sysdba身份才能登录,system用户可以用普通身份登录。sysyoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。normal:即普通用户,权限只有查询某些数据表的数据。默认的身份是normal用户。2.客户端工具可以根据“服务器连接字符串”对服务器进行连接,有了连接字符串后客户端就可以像操作本机一样操作远程数据库,因 此“服务器连接字符串”的配置也叫本地网络服务配置,如果S
19、QL*Plus工具启动在服务器上,并且服务器上只有一个数据库实例的情况下,连接字符串可以缺省,在连接字符串中包括连接服务器的协议,服务器的地址,服务器的端口等设置,O racle服务名等,该配置文件在O racle安装目录下的:network/ADMIN/tnsnames.orao该文件是一个文本文件,用记事本打开后如下所示:#tnsnames.ora Network Configuration Rie:展分品#E;or3cleproductM0.2.0db_lnetworkadmintnsname$.or3爱尊 Generated by Oracle configuration tools.
20、持ORCL=f t(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHast-X-089)(PORT=1521)(CONNECT_DAIA=(SERVER=DEDICATED)(SERVICE_NAME=orc图1 2服务器连接字符串配置)令配置本地网络服务名本地网络服务名,即客户端与服务器的连接字符串,本地网络服务名是客户端的配置,O racle客户端安装后,可以使用客户端自带的网络配置向导(N et Configuration Assistant)进行配置:1.N et Configuration Assistanto 选 择“本地N et服务名配置”
21、选项。如下图所示:图 13 启动 N et Configuration Assistant2.选 择“下一步”,本步骤可以对本地网络服务名进行添加,删除,测试是否正常连接等操作,选 择“添加”选项。图 14 N et Configuration Assistant3.点击 下一步,填写服务名,该服务名就是O racle安 装 时(图1),为数据库取的全局数据库名。O racle B et C on figu ration A s s is ta n t:Met JR务名配置,聚务名2J每个Oracle数据库或服务都有一个服务名.Oracle数据库的服务名通常是全局数据库名.诸输入要访问的数据库
22、或其它服务的服务名.取消 I 硼)上一步(B)下一步(N)Q图15服务名配置4.点 击“下一步”,选择服务需要的协议,默认是TCP协议。推荐使用默认的TCP协议。图1 6选择协议5.点 击“下一步”,输入主机名,主机名可以是计算机名称,也可以是一个IP地址,主机如果是本机,可以使用本机计算机名称、“localhost”、“12700.1”、或者本机的 IP地址。Oracle Met C onfiguration A ssista n t:Met 服务名配置,TCP/IP 协议2J要使用TCP/IP协议与数据库通信,必须使用数据库计篁机的主机名.谙输入数据库所在计篁机的主机名.主机名:|loca
23、lhost还需要一个TCP/IP端口号。大多数情况下应使用标淮端口号.海使用标准端口号1521请使用另一个端口号:|1521取消 I 硼)上一步(B)下一步(N)Q图1 7输入主机名和端口6.单 击“下一步”,选 择“是,进行测试”选项。进入下图界面。图1 8测试成功在测试时,默认采用的用户名和密码是system/manager进行测试,如果用户system的密码不是m anager,有可能测试通不过,更改登录后,输入正确的用户名和密码后再进行测试即可。7.测试成功后,单 击“下一步”,出现如下界面,这一步是为本地网络服务命名,即图 12中的服务器连接字符串名。图19为网络服务名命名点击“下一
24、步”,配置就完成了,进入tnsnames.ora文件中查看,就出现了如图12中的内容。令 PL/SQL Developer 工具在实际O racle开发中,经常使用一个功能强大的第三方工具:“PL/SQL Developer”工具。PL/SQL Developer基本上可以实现O racle开发中的任何操作。它运行在客户端时必须先安装O racle客户端,并且通过网络配置向导配置网络服务名后才能正常与服务器连接。PL/SQL DeveloperStarting p1aHVersion LogonTrial versUsername|sysPassword 产 Database|MY0RCLCo
25、nnect as|Normal|.5侬allroundutomationsReading pReading kLogging oSYS0PERI 1SYSDBA图 2 0 P L/SQ L D e v e l o p e r4.O racle月 艮 务O racle在windows中安装完成后,会安装很多服务,下面介绍几个主要的服务。与计算机首理图 文件但)然作”查看9 窗口世)帮助 如 包画畲国贷国画 II,O racleService+服务名,该服务是数据库启动的基础,只有该服务启动了,O racle数据库才能正常启动。这是必须启动的服务。O racleO raDblO g_hom elT
26、N SListener,该服务是服务器端为客户端提供的监听服务,只有该服务在服务器上正常启动,客户端才能连接到服务器。该监听服务接收客户端发出的请求,然后将请求传递给数据库服务器。一旦建立了连接,客户端和数据库服务器就能直接通信了。O racleO raDblO g_hom eliSQL*Plus,该服务提供了用浏览器对数据库中数据操作的方式。该服务启动后,就可以使用浏览器进行远程登录并进行数据库操作了。如下图所示:图 22 iSQL*Plus O racleDBConsole+服务名,O raclelO g 中的一个新服务。在 O racle9i 之前,O racle 官方提供了一个基于图形
27、界面的企业管理器(EM),从 O raclelO g开始,O racle提供了一个基于B/S的企业管理器,在操作系统的命令行中输入命令:emctl startdbconsole,就可以启动O racleDbConsole服务,如下图所示:Microsoft Windows 版本 5.2.3790 i的的 Q(C)版权所仃 1985-2003 Microsoft Cop.后沙m他 方 二.C:emctl start tfbconsoleOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0Copyright(c)1996
28、,2006 Oracle Corporation.All rights reserved.httD:MyHosXQ89:1158/em/8nsole/dboutAPDlicationStarting-Enterprise Manager 10g Database 过 入 月 的 化 生Control.OracleDBConsoleorcI服务正在门动.OracleDBConsol 服务J”门动成功-2一 寸图23 EM服务的启动服务启动之后,就可以在浏览器中输入上图中进入EM 的地址,使用B/S方式管理O racle服务器。5.Oracle启动和关闭O racleService启动动后,就可以
29、对数据库进行管理了,O racle的启动和关闭是最基本的命令,在 SQL*Plus中,启动O racle必须是sys用户,命令格式是:startup open图24 Oracle服务启动Oracle 服务关闭用命令:shutdown immediate图25 Oracle服务关闭6.Oracle用户和权限Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。Oracle的用户可以用CREATE USER命令来创建。其语法是:语法结构:创建用户CREATE USER 用户名
30、 IDENTIFIED BY 口 令ACCOUNT LOCK|UNLOCK语法解析:LO CK|UN LO CK创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。代码演示:创建用户SQL CREATE USER jerry2 IDEN TIFIED BY tom3 ACCO UN T UN LO CK;Oracle在 SQL*Plus中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/).如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。尽管用户成功创建
31、,但是还不能正常的登录O racle数据库系统,因为该用户还没有任何权限。如果用户能够正常登录,至少需要CREATE SESSIO N 系统权限。O racle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。系统权限比如:CREATE SESSIO N,CREATE TABLE等,拥有系统权限的用户,允许拥有相应的系统操作。数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。下面介绍几个常用角色:CO N N ECT角色,主要应用在临时用户,特别是
32、那些不需要建表的用户,通常只赋予他们CO N N ECT roleo CO N N ECT是使用O racle的简单权限,拥有CO N N ECT角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。RESO URCE角色,更可靠和正式的数据库用户可以授予RESO URCE role。RESO URCE提供给用户另外的权限以创建他们自己的表、序列、过 程(procedure),触发器(trigger)、索 引(index)等。DBA角色,DBA role拥有所有的系统权限-包括无限制的空间限额和给其他用户授予各种权限的能力。用户SYSTEM拥 有 DBA角色。一
33、般情况下,一个普通的用户(如 SCO TT),拥有CO N N ECT和 RESO URCE两个角色即可进行常规的数据库开发工作。可以把某个权限授予某个角色,可以把权限、角色授予某个用户。系统权限 只 能 由DBA用 户 授 权,对象权限由拥有该对象的用户授权,授权语法是:语法结构:授权GRANT角色|权限T O用 户(角色)代码演示:授权SQL GRANT CONNECT TO jerry;授权成功。SQL GRANT RESOURCE TO jerry;授权成功。SQL语法结构:其他操作回收权限REVOKE角色|权限FROM用 户(角色)修改用户的密码ALTER USER 用户名 IDEN
34、TIFIED BY 新密码修改用户处于锁定(非锁定)状态ALTER USER 用户名 ACCOUNT LOCK|UNLOCK7.本章总结 O racle是基于对象的关系型数据库,O racle产品免费,服务收费。O racle安装后默认会有两个管理员用户(system,sy s)和一个普通用户Scott。Sql*plus是 O racle管理和数据操作的客户端工具。客户端链接服务器前,服务器要启动监听服务,并且客户端工具要安装O racle客户端,并且在客户端要建立本地网络服务名。O racle服务和监听启动后才能对数据库进行操作。用 startup命令启动数据库,用 shutdown命令关闭
35、数据库。O racle的角色包括了一系列系统权限和普通对象权限,可以把权限授权给角色,把权限或者角色授权给用户。8.本章练习1.描述。rade安装过程中的关键点。2.描述创建本地网络服务名的步骤。3.描述O racle主要服务的作用。4.O racle使用什么命令才能启动和关闭。5.什么是O racle权限和角色?他们的关系是什么?6.创建一个用户,并授权CO N N ECT和 RESO URCE。章节知识结构图Oracle简介 Oracle产品免费,服务收费广-O7服务名Oracle homeOracle安装-systemOracle默认用户scottiSQL*PlusOracle客户端工具
36、厂-0SQLPIus命令行PL/SQL Developer主机地址第一章总结配第本地网络服务名-G 端口服务名本地服务名OradeService十 月 艮 务 名Oracle常见服务-O Oracle监听服务启 动:startupOracle启动和关闭-0 关 闭:shutdown系统权限权限-对象权限角色 由若干权限和其他角色组成-用户和权限-0权限可以授权给角色或用户捋枚(-可角色可以授权给用户CONNECT一个普通正常用户拥有的角色-O RESOURCE第2章SQL数据操作和查询主要内容/Oracle数据类型/SQL建表和约束/SQL对数据增删改/SQL查询/Oracle 伪列1.SQL
37、简介在第一-学期的SQL Server学习中,已经知道,SQL是结构化查询语言(Structured QueryLanguage),专门用于数据存取、数据更新及数据库管理等操作。并且已经学习了用SQL语句对数据库的表进行增删改查的操作。在 O racle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。O racle SQL语句由如下命令组成:数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DRO P(删除)命令等。数据操纵语言(DML),包 括 IN SERT(插入)命令、UPDATE(更新)命令、DELETE(
38、删除)命令、SELECT.FO R UPDATE(查询)等。数据查询语言(DQL),包括基本查询语句、O rder By子句、Group By子句等。事务控制语言(TCL),包 括 CO MMIT(提交)命令、SAV EPO IN T(保存点)命令、RO LLBACK(回滚)命令。数据控制语言(DCL),GRAN T(授权)命令、REV O KE(撤销)命令。目前主流的数据库产品(比如:SQLServer,O racle)都支持标准的SQL语句.数据定义语言,表的增删改操作,数据的简单查询,事务的提交和回滚,权限的授权和撤销等,O racle与 SQL Server在操作上基本一致。2.Ora
39、cle数据类型O racle数据库的核心是表,表中的列使用到的常见数据类型如下:类型含义CHAR(length)存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length,用空格填充。默认长度是1,最长不超过2000字节。V ARCHAR2(length)存储可变长度的字符串。length指定了该字符串的最大长度。默认长度是1,最长不超过4000字符。N UMBER(p,s)既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分和小数部分和小数点,P默认是3 8为),s是指小数位数。DATE存储日期和时间,存储纪元、4位年、月、日、时、分、秒
40、,存储时间表1 O racle的部分数据类型从公元前4712年1月1日到公元后4712年12月3 1日。TIMESTAMP不但存储H期的年月日,时分秒,以及秒后6位,同时包含时区。CLO B存储大的文本,比如存储非结构化的XML文档BLO B存储二进制对象,如图形、视频、声音等。对 应 N UMBER类型的示例:表2 N umber示例格式输入的数字实际的存储N UMBER1234.5671234.567N UMBER(6,2)123.4567123.46N UMBER(4,2)12345.67输入的数字超过了所指定的精度,数据库不能存储对于日期类型,可以使用sysdate内置函数可以获取当前
41、的系统日期和时间,返回DATE类型,用 systimestamp函数可以返回当前日期、时间和时区。图 1 sysdate 和 sysTimestampO racle的查询中,必须使用select歹 k.from 表”的完整语法,当查询单行函数的时候,from后面使用DUAL表,dual表在系统中只有一行一列,该表在输出单行函数时为了select.from的语法完整性而使用。3.创建表和约束O racle创建表同SQL Server 一样,使用CREATE TABLE命令来完成。创建约束则使用如下命令:语法格式:ALTER TABLE命令ALTER TABLE表 名ADD CONSTRAINT约
42、束名约束内容。不论创建表还是约束,与SQL Server基本相同,注意:在Oracle中default是一个值,而SQL Server中default是-一个约 束,因 此Oracle的default设置可以在建表的时候创建。案 例 1:创建一个学生信息(INFOS)表和约束代码演示:Oracle创建表和约束CREATE TABLE INFOS(STUID VARCHAR2(7)NOT NULL,一学号学号=S+班号+2位序号STUNAME VARCHAR2(1 0)NOT NULL,一姓名GENDER VARCHAR2(2)NOT NULL,-性别AGE NUMBER(2)NOT NULL,
43、一年龄SEAT NUMBER(2)NOT NULL,-座号ENROLLDATE DATE,一入学时间STUADDRESS VARCHAR2(50)DEFAULT,地址不详,一住址CLASSNO VARCHAR2(4)NOT NULL-班号班号=学期序号+班级序号)/ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID)(2)/ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDERCHECK(GENDER=男OR GENDER=女,)/ALTER TABLE INFOS ADD CONST
44、RAINT CK_INFOS_SEATCHECK(SEAT =0 AND SEAT =0 AND AGE=1001 AND CLASSNO=2001 AND CLASSNO3ss三 塞 7 E ABC H3=A B 图2数据查询Oracle中可以把查询的结果根据结果集中的表结构和数据形成一张新表。语法结构:根据结果集创建表CREATE TABLE 表名 AS SELECT 语句代码演示:根据结果集创建表SQL CREATE TABLE INFOS1 AS SELECT*FROM INFOS;TABLE CREATED使用上面命令创建的新表中,不存在任何约束,并且把查询的数据起插入到新表中。如果
45、只复制表结构,只需使查询的条件不成立(比如where 1=2),就不会查询从出任何数据,从而复制一个表结构。代码演示:复制表结构SQL CREATE TABLE INFOS2 AS SELECT*FROM INFOS WHERE 1 =2;TABLE CREATED令数据插入用INSERT命令完成对数据的插入。语法结构:根据结果集创建表INSERT INTO 表名(列名 1,歹I 名 2.)VALUES(值 1,值 2.)语法解析:1.列名可以省略。当省略列名时,默认是表中的所有列名,列名顺序为表定义中列的先后顺序。2.值的数量和顺序要与列名的数量和顺序一致。值的类型与列名的类型一致。代码演示
46、:向 INFOS表 和 SCORES表中插入数据SQL INSERT INTO INFOS VALUES(2 S100102,林冲,男,22,2,3 TO_DATE(,2009-8-9 06:30:10;YYYY-MM-DD HH24:MI:SS),4 西安10015)6/1 row insertedSQL INSERT INTO INFOS VALUES(s100104,阮小二男,26,3,SYSDATE,default,0 0 1);1 row insertedSQL C O M M IT;代码解析:表名后面缺省了列名,默认是表Infos中的所有列名,values中的值要与表中列-对应,包
47、括顺序和数据类型的对应。在SQL*Plus中一条语句可以写在多行,那么从第二行开始,sqlplus会为每一行前面给出行号。在Oracle中,日期是国际化的,不同的区域安装的数据库,默认的日期格式不同,因此为了程序便于移植,I I期的输入要使用TO_DATE函数对口期格式化后输入,采用格式化字符串对日期进行格式化时,格式化字符串中字符不区分大小写,常见的格式化字符如下:1.yyyy表示四位年份2.m m表示两位月份,比如3月表示为033.d d表示两位I I期4.hh24表示小时从0-23,h h l2也表示小时从0-11。5.m i表示分钟6.ss表不秒在遇到存在默认值的列时,可以使用defa
48、ult值代替。commit是把用户操作(添加、删除、修改操作)提交,只有提交操作后,数据才能真正更新到表中,否则其他用户无法查询到当前用户操作的结果。在Oracle中,一个INSERT命令可以把一个结果集一次性插入到一张表中。使用的语句是:INSERT INTO表SELECT子句,如下示例:代码演示:INSERT向表中插入一个结果集SQL INSERT INTO INFOS2 SELECT*FROM INFOS;5 rows inserted在这种语法下,要求结果集中每一列的数据类型必须与表中的每一列的数据类型一致,结果集中的列的数量与表中的列的数量-致。比如表IN FO S2,该表的结构与I
49、NF。&一样,那么可以把INFO表中的所有记录一次性插入到INFOS2表中。Oracle的简单查询和SQL Server 样都可以在查询列中使用常量,如图:图3 Select中的常量可以使用刚才的做法,把该结果集中的数据插入到表INFOS中。代码演示:INSERT向表中插入一个常量结果集SQL INSERT INTO INFOSSELECT s1 001 06,卢俊义男,23,5,TO_DATE(,2009-8-9 08:00:1 OYYYYY-MM-DD HH24:Ml:SS),青龙寺,1001FROM DUAL;1 rows insertedSQL COMMIT;令更新数据Oracle在表
50、中更新数据的语法是:语法结构:UPDATE操作UPDATE表 名SET列名1=值,列名2=值.WHERE条件代码演示:UPDATE操作SQL UPDATE INFOS SET CLASSNO=002,STUADDRESS=,山东莱芜,WHERE STUNAME=阮小二1 rows updatedSQL commit;令删除数据Oracle在表中删除数据的语法是:语法结构:DELETE操作DELETE FROM 表名 WHERE 条件代码演示:DELETE操作SQL DELETE FROM INFOS WHERE STUID=s1001 03,;1 ROW DELETEDSQL COMMIT;令