Oracle数据库学习资料课件.docx
《Oracle数据库学习资料课件.docx》由会员分享,可在线阅读,更多相关《Oracle数据库学习资料课件.docx(32页珍藏版)》请在三一办公上搜索。
1、Oracle的历史 Oracle 公司( 甲骨文 ) 创始人 : Larry Ellison 32岁,公司提供数据库服务. 公司成立于 1977 年, 83 年公司更名为 Oracle ,原名为”软件开发实验室”. Oracle 数据库适用于大型企业 竞争对手 微软的SQLServer IBM 的DB2 目前的版本 2.07.0 , 8.0 , 8i , 9i , 10gOracle的服务:我的电脑右键选择管理-服务和应用程序服务OracleServer数据库服务,进程为ORACLE.exeOracleTNSListener监听器服务,进程TNSLSNR.exe默认端口1521、1526Ora
2、cleDBConsole对应用于OEMOracleiSQL*Plus对于于iSQL*Plus-是数据库或例程的系统标识符-是Oracle主目录名称这几个服务之间的关系:启动顺序:1、OracleTNSListener必须启动 2、OracleServer必须启动 3、OracleDBConsole启动依赖于OracleServerSqlPlusSqlPlus是Oracle任何版本都自带的数据库操作工具,使用它可以完成大部分的数据库操作。SqlPlus可以“开始程序Oracle”启动,也可以命令行启动(互动)1.命令行启动sqlPlussqlplus 用户名/密码orcl或sqlplus 用户名
3、orcl如果用户是管理员要在sqlplus 用户名/密码主机字符串 as sysdba“/”是用户名和密码分隔符号“”是密码和数据库的分隔符号“orcl”是数据库的名称,在安装时指定常用命令(互动)connect 切换用户show user 显示当前用户set linesize 1000 设置行显示长度set pagesize 1000 设置分页长度desc dept 查看表结构 select table_name from user_tables查询当前用户的表/ 运行上一条SQL语句 clear screen 清除屏幕edit 编辑spool d:/a 保存输出结果到某个位置spool o
4、ff 保存结束quit 退出list 查看最后一条语句 文件名.sql 运行外部文件中的SQL语句Sql*plus的常用命令是一个oracle提供的工具,使用此工具可以完成数据库的操作和管理。SQL*Plus有两种工作方式:1、 基于图形界面的-sqlplusw2、 基于命令行的-sqlplusSql*plus 中可以执行3种类型的命令:1、 SQL语句SELECT * FROM tab;2、 PL/SQL语句CREATE TABLE test(x number,info varchar(20);Commit;编写一个存储过程,向test表中插入20条记录。DECLAREx number :=
5、10;BEGINFOR I IN 1.20 LOOPINSERT INTO test VALUES (x,测试数据);x=x+i;END LOOP;END;3、 SQL*Plus内部命令这些命令用于设置SQL*Plus的环境或格式化输出结果。例如:改变EMP表里SAL列的输出格式COLUMN SAL FORMAT $99,99 HEADING 薪水;使用SQL*Plus可以执行操作系统本身的命令:例如:在下的记事本notepad.exeHOST notepad.exe; 退出SQL*Plus返回操作系统:EXIT (QUIT) 帮助提示:HELP SET;HELP ;HELP ED;清除屏幕:
6、CLEAR SRC;SQL*Plus编辑命令命令缩写作用APPEND texttext将text加到当前行末端CHANGE /old/newC /old/new将当前行中的old改为newCHANGE /textC /text从当前行中删除textCLEAR BUFFERCL BUFF清除全部行DEL删除当前行INPUT I加入一行或多行INPUT textI text加入由text组成的行LISTL列出缓冲区中的全部行LIST nL n或 n列出n行LIST lastL last列出最后一行LIST m nL m n列出m到n行运行缓冲区的命令:RUN 或/保存缓冲区中的内容为.sql文件:
7、SAVE f:test;编辑或者读取命令文件.sql:EDIT 文件名;在SQL文件中的注释有3种方法:使用SQL*Plus的REMARK命令;使用SQL注释分界符/*.*/使用ANSI/SQL的“-”型注释读取命令文件在SQL*PLUS中:GET f:test.sql;运行.sql文件中的指令:START或,使用更多建议:尽量使用记事本编写代码,这样有利于修改。所需要的表在所有的讲解中所要使用到的表全部都是scott用户下的表,所以必须了解在此用户下有那几张表,以及每张表的作用是什么。避免出现汉字,因为实际开发中容易出现乱码问题。雇员表(emp) 雇员表中记录的是一个个的雇员的基本信息。雇员
8、表(EMP) No. 字段类型 描述 1 EMPNO NUMBER(4) 表示雇员编号,是唯一编号2 ENAME VARCHAR2(10) 表示雇员姓名3 JOB VARCHAR2(9) 表示工作职位4 MGR NUMBER(4) 表示一个雇员的领导编号5 HIREDATE DATE 表示雇佣日期6 SAL NUMBER(7,2) 表示月薪,工资7 COMM NUMBER(7,2) 表示奖金,或者称为佣金8 DEPTNO NUMBER(2) 部门编号部门表(dept) 表示一个个具体的部门信息 部门表(dept) No. 字段类型 描述 1 DEPTNO NUMBER(2) 部门编号,是唯一编
9、号2 DNAME VARCHAR2(14) 部门名称3 LOC VARCHAR2(13) 部门位置工资等级表(SALGRADE)一个公司工资是有等级制度,那么用此表表示一个工资的等级 工资等级表(SALGRADE) No. 字段类型 描述 1 GRADE NUMBER 等级名称2 LOSAL NUMBER 此等级的最低工资3 HISAL NUMBER 此等级的最高工资奖金表(BONUS) 表示的是一个雇员的工资及奖金奖金表(BONUS) No. 字段类型 描述 1 ENAME VARCHAR2(10) 雇员姓名2 JOB VARCHAR2(9) 雇员工作3 SAL NUMBER 雇员工资4 C
10、OMM NUMBER 雇员奖金(佣金) 范例:查询每月可以得到奖金的雇员信息 奖金是comm字段 只要字段中存在内容,则表示此内容不为空(null),如果存在内容,则会显示具体的值。 不为空的表示:字段 IS NOT NULLSELECT * FROM emp WHERE comm IS NOT NULL ; 范例:查询没有奖金的雇员 没有奖金则comm字段的内容肯定是null,格式:字段 IS NULLSELECT * FROM emp WHERE comm IS NULL ; 范例:要求查询出,基本工资大于1500,同时可以领取奖金的雇员信息。 此时应该是两个条件,而且两个条件必须同时满足
11、 既然要求两个条件全部满足,则必须使用AND操作符进行条件的连接。SELECT * FROM emp WHERE sal1500 AND comm IS NOT NULL ; 同时指定了两个条件,两个条件必须同时满足才可以查询出结果。 范例:要求查询出,基本工资大于1500,或者可以领取奖金的雇员信息。 如果要表现出或者的概念使用OR进行连接,表示两个条件有一个满足即可。SELECT * FROM emp WHERE sal1500 OR comm IS NOT NULL ; 之前使用NOT可以取反,把真的条件变为假的,假的变为真的。范例:要求查询出,基本工资不大于1500,同时不可以领取奖金
12、的雇员信息。 此时相当于是整体的条件取反。SELECT * FROM emp WHERE NOT (sal1500 OR comm IS NOT NULL); 等价于SELECT * FROM emp WHERE sal 1500 ,sal 1500 AND sal=1500 AND sal、=、=、=等计算符号不等于符号:在SQL中如果要想使用不等于符号,可以有两种形式:“”、“!=” 范例:查询雇员编号不是7369的雇员信息 使用“”完成SELECT * FROM emp WHERE empno7369 ; 使用“!=”完成SELECT * FROM emp WHERE empno!=73
13、69 ; 对结果进行排序(ORDER BY子句)(重点)在SQL中可以使用ORDER BY子句对查询的结果进行排序,例如,现在使用查询全部的语句:SELECT * FROM emp ; 此时,从查询结果可以发现,是按照雇员的编号进行排序的,那么此时如果要对使用指定的列进行排序,则就必须使用ORDER BY语句,语法格式如下:SELECT DISTINCT * | 具体的列别名 FROM 表名称WHERE 条件(s) ORDER BY 排序的字段1,排序的字段2 ASC|DESC ASC表示升序、DESC表示降序范例:要求按照工资由低到高排序SELECT * FROM emp ORDER BY
14、sal ; 之前是按照由低到高的顺序完成,是采用的升序的形式,现在要求使用降序的形式完成。实际上如果在排序的时候没有指定排序规则,则默认的排序规则是升序排列。SELECT * FROM emp ORDER BY sal ASC ; 要想使用降序的方式完成,则使用DESC即可。SELECT * FROM emp ORDER BY sal DESC ; 范例:要求查询出10部门的所有雇员信息,查询的信息按照工资由高到低排序,如果工资相等,则按照雇佣日期由早到晚排序。 此时存在两个排序条件,第一个是降序,第二个升序SELECT * FROM emp WHERE deptno=10 ORDER BY
15、sal DESC,hiredate ASC ; 排序的操作肯定是放在整个SQL语句的最后执行。单行函数(重点)数据库系统中,每个数据库之间唯一不同的最大区别点就在与函数的支持上,使用函数可以完成一系列的操作功能。单行函数语法:function_name(column|expression,arg1,arg2,) 参数说明: function_name:函数名称 column:数据库列名 expression:字符串或计算表达式 arg1,arg2:在函数中使用参数单行函数分类: 字符函数:接受字符输入并且返回字符或数值 数值函数:接受数值输入并返回数值 日期函数:对日期型数据进行操作 转换函数
16、:从一种数据类型转换为另一种数据类型 通用函数:NVL函数、DECODE函数字符函数Oracle中的dual表 Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。这是因为ORACLE对DUAL表的操作做了一些内部处理,尽量保证DUAL表中只返回一条记录.当然这写内部操作是不可见的 .以下是dual的一些使用方法:1、查看当前用户,可以在 SQL Plus中执行下面语句select user from dual;2、用来调用系统函数select to_char(s
17、ysdate,yyyy-mm-dd hh24:mi:ss) from dual;-获得当前系统时间select SYS_CONTEXT(USERENV,TERMINAL) from dual;-获得主机名select SYS_CONTEXT(USERENV,language) from dual;-获得当前localeselect dbms_random.random from dual;-获得一个随机数3、可以用做计算器select 7*9 from dual;1. ACII(x)返回字符x的ASCII码select ascii(a) from dual;2. 求ACSII(a),ASCII
18、(A”),ASCII(0),ASCII(XYZ)的值3. CHR(X)返回ASCII码为X的字符4. CONCAT(x,y)字符串拼接函数select concat(concat(ename, is a),job) from emp;5. INITCAP(x)首字母大写select initcap(ename) from emp;6. INSTR(x,y,n,m)确定y在x中的位置。n是起始查找的位置,m第几次出现的位置。select instr(HelloWorld!,l,2) from dual;select instr(HelloWorld!,l,2,3) from dual;7. LE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 学习 资料 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1663334.html