1.oracle安装及基本命令1.1oracle简介Oracle是一个生产中间件和数据库的较大的生产商,oracle原本的含义:“神谕”,指的是神说的话,中国在商朝时代,把一些刻在龟壳上的文字当成是上天的指示,所以在中国将oracle翻译成”甲骨文”.Oracel公司的发展实际上还是靠IBM1.2oracle安装1.2.1常见版本现在使用的oracle是10G版本,oracle中的主要版本分为以下几个:Oracle8Oralce8i表示oracle公司正式进军互联网Oracel9i:与8i极为相似Oracle10g:g,表示网格计算1.2.2安装:选择oracle10G下instal目录下的setup.exe就可以执行oracle10G的安装指令接着oracle就进入系统环境检查环节(最好关闭防火墙软件)选择安装的目录选择企业版输入数据库实例名/选中创建带样本的数据库所有账户用同样的口令安装完成后,任何按钮都不要点,如果做其它的操作,可能导致安装失败选择口令管理,出现口令管理对话框,有∨的地方是被锁定的用户:普通用户:scott用户的密码tiger普通管理员:system用户密码manager超级管理员:sys用户密码admin设置好密码后,点击确定完成后,即可退出1.2.3oracle必须启动的服务Oracle安装完成之后要在系统中注册服务,其有两个服务是必须启动oracle才能正常启动OracleOraDb10g_home1TNSListener:表示监听服务,用户客户端要想连接到数据库,此服务必须打开,在以后的程序开发中此服务作用很大.OracleServiceGYBOSS,表示数据库的主服务,命名规则OracleService+数据库名称,此服务必须启动,否则oracle根本无法使用之后直接通过命令行方式就可以进入SQLPlus的控制中心,进行命令输入.安装完毕后可能通过三种方式访问数据库:1)开始/运行/sqlplus2)开始/程序/Oracle-OraDb10g_home1/SQLPlus3)打开IE,输入本机IP:5560/isqlplus或者localhost:5560/isqlplus登录界面如下:1.3oracle常见的第三方工具1)PL/SQLDeveloper2)Toad在采用第三方工具连接数据库前,必须保证数据库的监听程序配置(服务器名,IP,端口号)正确并处于于监听状态,主要设置这两个文件listener.ora#listener.oraNetworkConfigurationFile:e:\oracle\product\10.2.0\db_1\network\admin\listener.ora#GeneratedbyOracleconfigurationtools.SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=PLSExtProc)(ORACLE_HOME=e:\oracle\product\10.2.0\db_1)(PROGRAM=extproc)))(SID_DESC=(GLOBAL_DBNAME=gyboss)(ORACLE_HOME=e:\oracle\product\10.2.0\db_1)(SID_NAME=gyboss))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.104)(PORT=1521))))#tnsnames.oraNetworkConfigurationFile:e:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora#GeneratedbyOracleconfigurationtools.GYBOSS=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.104)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=gyboss)))EXTPROC_CONNECTION_DATA=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))(CONNECT_DATA=(SID=PLSExtProc)(PRESENTATION=RO)))2.SQL/PLUS2.1命令行方式Sqlp是oracle提供的一个命令行执行的工具软件,安装oracle后会自动在系统中注册.在开始/运行/sqlplus3.3.2窗口方式sqlplusw采用这种方式连接数据库时会提示主机的字符串,如果一台电脑上有多个数据库,则需要在此处输入数据的名称,若不填,则系统连接默认数据库更改用户设置1.sqlplussys/rootassysdba2.alteruserscottaccountunlock;(解锁)用系统管理员账号登陆数据库:connsys/sysassysdbaconnscott/tiger或者connectuser/pwd切换用户ed或者edit//打开一个缓冲文件操作回滚:rollback,一旦提交(commit)则不可回滚;最常用的就是sqlplusw的运行方式完成对oracle的操作Select*fromemp;此语句表示向数据库发出查询命令,查询数据中emp表中的全部信息,结果如果:使用sqlplusw之前首先必须进行环境的设置(1)设置每行显示的长度Setlinesize300;以上命令查询结果有一个问题,标题行重复了,这是因为oracle中的数据是一页一页地输出的.(2)修改每页显示的记录行数Setpagesize30;设置每页输出30行,结果为(3)修改每列显示的显示宽度(每次都要执行一次)columnfield_nameformata40colfield_namefora40例如:SQLselect*fromdual;D-X顺序执行了下面的语句后SQLcoldummyfora5;SQLselect*fromdual;DUMMY-----X整个DUMMY的列名就完整地显示出来了(4)清除屏幕的命令在在SQL*Plus中执行一段时间后,屏幕上会存大大量的输入和输出信息,要想清除屏幕方法一:同时按SHIFT和DELETE键然后点OK就可以了。方法二:如果在window窗口下sqlplus中清屏命令:hostcls或是clearscreen或只是4位cleascre。方法三:如果是在dos的窗口下进入sql/plus就要用clearSCR。2.2动手实践在sqlplusw中存大着大量可用的命令在sqlplusw中因为无法修改已经输入的内容,所以一般使用本机的记事本程序进行编辑,直接在命令窗口中输入”ed文件名称”即可.输入ed后会提示用户是否要创建此文件,如下图所示除了可以在sqlplusw中建立这个文件之外,也可以通过@找到磁盘上的文件,3.SQL语句本课内容提要:1)查询语句的基本格式2)使用distinct关键字去掉重复的查询3)使用限定查询4)对查询结果进行排序5)掌握oracle中提供的各种主要单行函数3.1所需要用到的表在所有后面的课程中,我们所使用到的表都是scott用户下的表,所以我们必须了解scott用户下有哪几张表,以及这些的结构和表与表之间的关系.如果scott用户下的某个对表对象出了问题,如dept表被误删除了,或emp表的内的数据被修改了,现在要想恢复成原来的样子,应按如下步骤进行以管理员角色连接数据库,执行@\E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql执行以上命令后所有的scott的对象将被重建,因而scott的密码被初始化为系统默认的TIGER,因此用户执行以上命令后应当重新设置用户口令常用的关于用户的命令:Showuser--显示当前用户名selecttable_namefromuser_tables------查询当前用户下的所有表查询TEST用户下的所有表,及其创建时间SELECTOBJECT_NAME,CREATEDFROMALL_OBJECTSWHEREOBJECT_TYPE='TABLE'ANDOWNER='TEST'ORDERBYCREATEDDESC;查询当前用户下的所有表SELECT*FROMUSER_TABLES查询TEST用户下的所有表SELECT*FROMALL_TABLESWHEREOWNER='TEST'3.1.1雇员表(emp)记录了每个雇员的基本信息NO字段类型描述1empnoNumber(4)雇员编号2enameVarchar2(10)雇员姓名3jobVarchar2(9)工作职位4mgrNumber(4)雇员的领导(经理)编号5hierdatedate入职日期6salNumber(7,2)月薪/工资7commNumber(7,2)奖金8deptnoNumber(2)雇员所属部门的编号3.1.2部门表(emp)记录了每个部门的基本信息NO字段类型描述1deptnoNumber(2)部门编号(唯一)2dnameVarchar2(14)部门名称3locVarchar2(13)地址3.1.3工资等级表(salgrade)一个公司的工资等级制,用来表示同一等级的工资下限及上限NO字段类型描述1Gradenumber等级名称2Losalnumber此等级的最低工资3hisalnumber此等级的最高工资3.1.4奖金表(bonus)一个公司中雇员获得奖金的情况NO字段类型描述1enameVarchar2(10)雇员姓名2JobVarchar2(9)雇员工作3SalNumber工资4commNumber奖金3.2SQL简介对于各个不同的数据库来说,重点是掌握SQL语句,因为现在的数据库都是以SQL语句为操作标准,在实际应用中,各个数据库提供的函数各不同。不同的数据库的SQL语句格式有90%相同,10%的差异3.2.1SQL简介SQL(structuredQueryLanguage结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。。SQL通常用于与数据库的通信,ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言.按代数论,SQL应当属于第4代程序设计语言第1代SQL第2代C,C++,JAVA第3代汇编语言第4代机器语言SQL语言包含4个部分:※数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。※数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。※数据查询语言(DQL),例如:SELECT语句。※数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。平常程序员交流的时候通常不会说“我今天写了几个DDL/DML/DQL/DCL语句”,而是说“我今天写了几个CRATE语句或几个SELECT语句”诸如此类的描述3.2.2简单查询语句格式简单的SQL查询语句的语法格式是:Select*|字段列表别名From表名称;(1)查询全部列Select*fromemp;(2)如果现在只要查询出雇员的编号、姓名、工作,则需要指定查询的列Selectempno,ename,jobfromemp;(3)可以为查询的结果列指定一个名称,这个名称被为该列的”别名”,一般地,别名最好不用中文命名(4)查询所有的工作(去掉重复的工作)distinctSelectjobfromemp;结果中存在大量重复的工作--------即job存在重复值,要消除重复值,在oracle中用distinct这个短语来消除查询结果中重复的值Select[distinct]*|具体的列名别名From表名称但是,在消除重复列的时候,有一点必须说明,如果同时查