




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux公社(LinuxIDC.com) Linux公社(LinuxIDC.com)于2006年9月25日注册并开通网站,Linux现在已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC就是关于Linux的数据中心。 Linux公社是专业的Linux系统门户网站,实时发布最新Linux资讯,包括Linux、Ubuntu、Fedora、RedHat、红旗Linux、Linux教程、Linux认证、SUSE Linux、Android、Oracle、Hadoop等技术。主讲 韩顺平玩转玩转oracle 10goracle 10g实战教程实战教程主讲:韩顺平主讲:韩
2、顺平emailemail:主讲 韩顺平玩转玩转oracle 10goracle 10g实战教程实战教程oracle oracle 第第1 1讲讲0.引言1.为什么要学习oracle2.oracle的安装,启动及卸载 3.介绍oracle及oracle公司的背景4.oracle开发工具介绍5.sql*plus的常用命令6.oracle用户的管理主讲 韩顺平玩转oracle 10g实战教程学习目标学习目标1.学会安装/启动/卸载oracle2.使用sql*plus工具3.掌握oracle用户管理4.学会在oracle中编写简单的select语句学习目标学习目标主讲 韩顺平引言 一个问题玩转orac
3、le 10g实战教程 淘宝网,天涯网淘宝网,天涯网, ,校友网校友网.都有各自的功能都有各自的功能, ,那么那么当当 我们关闭系统的时候,下次再访问这些网站我们关闭系统的时候,下次再访问这些网站时,为什时,为什 么他们各自的信息还存在么他们各自的信息还存在? ?再比如再比如c/sc/s的软件,比如网游、的软件,比如网游、qqqq、他们又是怎样保存数据的、他们又是怎样保存数据的? ? a.a.游戏积分游戏积分 b.qqb.qq聊天记录聊天记录.主讲 韩顺平引言 解决之道玩转oracle 10g实战教程 解决之道解决之道- -文件、数据库文件、数据库我们刚学习过文件我们刚学习过文件, ,大家可能回
4、答用文件就可以保存数据嘛大家可能回答用文件就可以保存数据嘛! !没有错,可以如果用文件保存数据存在几个缺点没有错,可以如果用文件保存数据存在几个缺点: :(1)(1)文件的安全性问题文件的安全性问题(2)(2)文件不利于查询和对数据的管理文件不利于查询和对数据的管理(3)(3)文件不利于存放海量数据文件不利于存放海量数据(4)(4)文件在程序中控制不方便文件在程序中控制不方便主讲 韩顺平引言 解决之道玩转oracle 10g实战教程 解决之道解决之道- -文件、数据库文件、数据库为了解决上述问题为了解决上述问题, ,专家们设计出更加利于管理数据的东专家们设计出更加利于管理数据的东东东- -数据
5、库数据库( (本质就是一个本质就是一个软件软件) ),它能更有效的管理数据。,它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。数据库是衡量一个程序员水平的重要指标。举一个生活化的案例说明举一个生活化的案例说明 如果说如果说 图书馆是保存书籍的图书馆是保存书籍的, ,那么数据库就那么数据库就是保存数据的。是保存数据的。概述:目前主流数据库包括概述:目前主流数据库包括微软:微软:sql server sql server 和和 accessaccess瑞典瑞典MySQLMySQL:ABAB公司公司 mysqlmysql ibmibm公司:公司:db2db2 美国美国SybaseSyba
6、se公司:公司: SybaseSybase ibmibm公司:公司: informixinformix 美国美国oracleoracle公司:公司: oracleoracle简单对上面六种主流数据库做一个对比。简单对上面六种主流数据库做一个对比。 作图作图 主讲 韩顺平玩转oracle 10g实战教程为什么选择oracle 性能优越概述:从目前软件公司对数据库的需求看,概述:从目前软件公司对数据库的需求看,oralce程序员的需求量是最程序员的需求量是最大的,这里有一些数据大家可以看看。大的,这里有一些数据大家可以看看。主讲 韩顺平玩转oracle 10g实战教程为什么选择oracle 需求量
7、大概述:通过概述:通过oracle ocm认证参加工作的人,认证参加工作的人,一般月薪或年薪是多少?一般月薪或年薪是多少?我们看看别人怎么说我们看看别人怎么说?oracle的认证考试简单介绍。的认证考试简单介绍。主讲 韩顺平玩转oracle 10g实战教程为什么选择oracle 待遇好主讲 韩顺平玩转oracle 10g实战教程oracle的安装的安装系统要求系统要求 操作系统最好为windows server 内存最好在256M以上 硬盘空间需要2G以上oracle的具体安装、启动我这里给大家演示一下。主讲 韩顺平玩转oracle 10g实战教程数据库服务器、数据库和表的关系OracleDB
8、实例DB实例数据库对象数据库对象数据库对象Clientl所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。l为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。l数据库服务器、数据库和表的关系如图所示:主讲 韩顺平玩转oracle 10g实战教程oracle的卸载的卸载1.停止所有与ORACLE相关的服务。2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。“开始”-“程序”-“Oracle-OraDb110g_home1|Oracle insta
9、llation product|Universal installer.3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application, 删除此键下所有以oracle为首的键。HKEY_CLASSES_ROOT,
10、删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs, 删除此键下所有以oracle为首的键。HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了Microsoft ODBC FOR ORACLE注册表键以外的所有有Oracle字样的键值。HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSe
11、t|Services,删除以Oracle或OraWeb为前缀的键。4. 删除环境变量。 删除环境变量CLASSPATH,PATH中含有Oracle字样的值。5.最后在文件系统内删除ORACLE相关的文件及目录:删除系统盘符:Progrm FilesOracle目录;删除ORACLE_BASE目录。我无法删除D:oracle目录,重新启动机器之后才删除。神喻神喻 代神说话的人代神说话的人 甲骨文甲骨文暗示暗示 公司预作霸主的决心公司预作霸主的决心地位地位 全球第一大数据库厂商全球第一大数据库厂商全球第二大独立软件供应商全球第二大独立软件供应商主讲 韩顺平玩转oracle 10g实战教程oracl
12、e公司介绍 oracle的含义主讲 韩顺平玩转oracle 10g实战教程oracleoracle公司介绍公司介绍 公司发展与现状公司发展与现状 1970年 数据库起家 1980年 ORACLE6版本 1990年 ORACLE7版本,多元化产品,以数据库为优先发展方向 1995年 ORACLE8版本 1999年 ORACLE8i版本 2001年 ORACLE9i release1 2002年 ORACLE9i release2 2003年 ORACLE10g版本 2007年 ORACLE11g版本 2009年,甲骨文以每股9.5美元的价格收购Sun,交易总价值约为74亿美元。主讲 韩顺平玩转o
13、racle 10g实战教程oracle 10g 比oracle 9i增加了什么?简要说:简要说:10g支持网格(Grid),支持自动管理(Automatic Management)。详细说:详细说:10g的g是“Grid”缩写,支持网格计算,即,多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中均衡(Load Balance),按需增点,避免单点故障(Single Point of Faliure)。安装容易,安装工作量比9i减少了一半。新增基于浏览器的企业管理器(Enterprise Manager)。oracleoracle公司介绍公司介绍 公司发展与现状公司发展与现状
14、主讲 韩顺平玩转oracle 10g实战教程oracleoracle公司介绍公司介绍 Larry Ellisin Larry Ellisin 财富榜前30名之内 与盖茨可以相比 ORACLE的建立者和发展者 IT风云人物主讲 韩顺平玩转oracle 10g实战教程oracleoracle公司介绍公司介绍 产品线产品线* 数据库服务器:数据库服务器:2007年最新版本年最新版本11G * 应用服务器:应用服务器: Oracle Application Server * 开发工具:开发工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等等,
15、等等 * 应用软件(主要竞争对手:德国应用软件(主要竞争对手:德国SAP公司。)公司。) * 企业资源计划企业资源计划(ERP)软件。软件。* 客户关系管理客户关系管理 (CRM)软件。软件。* 人力资源管理软件人力资源管理软件(HCM)。主讲 韩顺平玩转oracle 10g实战教程oracle管理工具的介绍管理工具的介绍(1)sql*plus是oracle自带的工具软件,主要用于执行sql语句,plsql块.如何使用如何使用:1)在开始-程序-oracle oradb_home10g-application development-sql*plus2)在运行栏中输入: sqlplusw即可主
16、讲 韩顺平玩转oracle 10g实战教程oracle管理工具的介绍管理工具的介绍(2)概述:sqlplus 是 dos下操作oracle的工具,其功能和sql*plus相似.1)在运行栏中输入 sqlplus2)找到该可执行文件sqlplus.exe,在oracle主目录ora10gbinsqlplus.exe ,鼠标双击即可主讲 韩顺平玩转oracle 10g实战教程oracle管理工具的介绍管理工具的介绍(3)概述:pl/sql developer 属于第三方软件,主要用于开发,测试,优化 oracle pl/sql 的存储过程比如: 触发器,此软件oracle不带,需要单独安装。主讲
17、韩顺平玩转oracle 10g实战教程oracle管理工具的介绍管理工具的介绍(4) Enterprise manager console(企业管理器企业管理器) oracle 10g是通过web管理的 一般默认端口是5500, 也有1158的。 访问url(请一定保证oracle服务启动了): http:/ip:1158 (也可能是5500)/em http:/机器名:端口/em主讲 韩顺平玩转oracle 10g实战教程sql*plus常用命令常用命令 连接命令 (1)connect用法: conn 用户名/密码网络服务名 as sysdba/sysoper当用特权用户身份连接时,必须带上
18、 as sysdba 或是 as sysoper(2)disconnect说明:该命令用来断开与当前数据库的连接(3)password说明:该命令用于修改用户的密码.如果要想修改其它用户的密码,需要用sys/system登陆.(4)show user说明:显示当前用户名(5)exit说明:该命令会断开与数据库的连接,同时会退出sql*plus主讲 韩顺平玩转oracle 10g实战教程sql*plus常用命令常用命令 交互式命令(1)& 说明:可以替代变量,而该变量在执行时,需要用户输入。 sqlselect * from emp where job=&job(2)edit 说
19、明:该命令可以编辑指定的sql脚本 案例:sqledit d:a.sql(3)spool 说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去. 案例:sqlspool d:b.sql 并输入 sqlspool off主讲 韩顺平玩转oracle 10g实战教程sql*plus常用命令常用命令 显示和设置环境变量概述:可以用来控制输出的各种格式。(1)linesize 说明:设置显示行的宽度,默认是80个字符 sqlshow linesize sqlset linesize 90(2)pagesize 说明:设置每页显示的行数目,默认是14,用法和linesize一样。至于其它环境
20、参数的使用也是大同小异主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理 创建用户创建用户(简单版简单版)概述:在oracle中要创建一个新的用户使用 create user 语句,一般是具有dba(数据库管理员)的权限才能使用。基本语法:create user 用户名用户名 identified by 密码密码 给用户修改密码给用户修改密码 概述:如果给自己修改密码可以直接使用 sqlpassword 用户名 如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限 sqlalter user 用户名 identified by 新密码主讲 韩顺
21、平玩转oracle 10g实战教程oracle用户管理用户管理 创建用户(细节)例子: sql create user shunping identified by m123default tablespace userstemporary tablespace tempquota 3m on users;identified by 表明该用户shunping 将用数据库方式验证 default tablespace users /用户的表空间在users上temporary tablespace temp /用户shunping的临时表健在temp 空间quota 3m on users /
22、表明用户shunping 建立的数据对象(表,索引,视图,pl/sql块.)最大只能是3m刚刚创建的用户是没有任何权限的,因此,需要dba给该用户授权.sqlgrant connect to shunping 如果你希望该用户建表没有空间的限制sqlgrand resource to shunping如果你希望该用户成为dbasqlgrant dba to shunping主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理 删除用户删除用户概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有 drop user的权限。比如 drop user 用户名
23、用户名 【cascade】主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理 用户管理的综合案例概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令 revoke。基本语法基本语法: grant 权限权限/角色角色 to 用户用户为了给讲清楚用户的管理,这里我给大家举一个案例。创建 xiaoming,并赋予 connect 和 resource 回收权限主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理 使用profile管理用户口令概述:profile是口令
24、限制,资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那oracle就会将default分配给用户。(1)帐户锁定帐户锁定概述: 指定该帐户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。创建创建profile文件文件sql create profile lock_account limit failed_login_attempts 3 password_lock_time
25、2;sqlalter user tea profile lock_account;主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理2)给帐户给帐户(用户用户)解锁解锁sql alter user tea account unlock;(3)终止口令终止口令为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作.例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天。看看怎么做.sql create profile myprofile limit password_life_time
26、10 password_grace_time 2;sqlalter user tea profile myprofile主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理 口令历史口令历史概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。例子: 1)建立建立profile sql create profile password_history limit password_life_time
27、10 password_grace_time 2 password_reuse_time 10 password_reuse_time /指定口令可重用时间即10天后就需要修改 2)分配给某个用户分配给某个用户. sqlalter user tea profile myprofile主讲 韩顺平玩转oracle 10g实战教程oracle用户管理用户管理 删除删除profileprofile概述:当不需要某个profile文件时,可以删除该文件.sql drop profile sql drop profile profileprofile文件名文件名主讲 韩顺平玩转oracle 10g实战教
28、程oracle数据库启动流程数据库启动流程oracle也可以通过命令行的方式启动,我们看看具体是怎样操作。 oracle启动流程启动流程-windows下下 1)lsnrctl start (启动监听启动监听) 2)oradim startup sid 数据库实例名数据库实例名 oracle启动流程启动流程-linux下下 1)lsnctl start(启动监听启动监听) 2)sqlplus sys/change_on_install as sysdba (以以sysdba身份登录身份登录,在在oracle10g后可以这样写后可以这样写)sqlplus /nologconn sys/chang
29、e_on_install as sysdba 3)startup 主讲 韩顺平玩转oracle 10g实战教程oracle登录认证方式登录认证方式 oracle登录认证方式登录认证方式-windows下下概述:oracle登录认证在windows下和linux下是不完全相同的,这里我们先说说windows下oracle的登录认证方式.操作系统认证操作系统认证如果当前用户属于本地操作系统的ora_dba组(对于Windows操作系统而言),即可通过操作系统认证。oracle数据库验证数据库验证(密码文件验证密码文件验证)对于普通用户对于普通用户,oracle默认使用数据库验证。对于特权用户对于特
30、权用户(比如比如sys用户用户),oracle默认使用操作系统认证,如果验证不通过,再到数据库验证(密码文件验证)。通过配置sqlnet.ora文件,可以修改oracle登录认证方式SQLNET.AUTHENTICATION_SERVICES= (NTS)是基于操作系统验证;SQLNET.AUTHENTICATION_SERVICES= (NONE)是基于Oracle验证;SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)是二者共存。主讲 韩顺平玩转oracle 10g实战教程oracle登录认证方式登录认证方式 oracle登录认证方式登录认证方式-linu
31、x下下这里大家了解即可:默认情况下linux下的oracle数据库sqlnet.ora文件没有SQLNET.AUTHENTICATION_SERVICES参数,此时是基于操作系统认证和oracle密码验证共存的,加上SQLNET.AUTHENTICATION_SERVICES参数后,不管SQLNET.AUTHENTICATION_SERVICES设置为NONE或者NTS,都是基于oracle密码验证的。主讲 韩顺平玩转oracle 10g实战教程丢失管理员密码怎么办丢失管理员密码怎么办恢复办法:把原有密码文件删除,生成一个新的密码文件。恢复步骤如下:恢复步骤如下: 搜索名为 PWD数据库实例名
32、.ora 文件 删除该文件,为预防万一,建议大家备份 生成新的密码文件,在dos控制台下输入命令:orapwd file=原来密码文件的全路径密码文件名.ora password=新密码 entries=10;/entries:允许几个特权用户 密码文件名 一定要和原来的密码文件名一样。Linux公社(LinuxIDC.com) Linux公社(LinuxIDC.com)于2006年9月25日注册并开通网站,Linux现在已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC就是关于Linux的数据中心。 Linux公社是专业的Linux系统门户网站,实时发布最新L
33、inux资讯,包括Linux、Ubuntu、Fedora、RedHat、红旗Linux、Linux教程、Linux认证、SUSE Linux、Android、Oracle、Hadoop等技术。主讲 韩顺平玩转oracle 10g实战教程oracle第第2讲讲0. 0. 数据库的一些基本概念数据库的一些基本概念 1. 1. 表的管理表的管理 2. 2. 基本查询基本查询3. 3. 复杂查询复杂查询4. 4. 创建数据库实例创建数据库实例主讲 韩顺平玩转oracle 10g实战教程基本概念基本概念-数据库服务器、数据库和表的关系数据库服务器、数据库和表的关系MySQLDBDB表表Clientl所谓
34、安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。l为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。l数据库服务器、数据库和表的关系如图所示:表主讲 韩顺平玩转oracle 10g实战教程基本概念-数据在数据库中的存储方式id=1name=“lisi”age=23User对象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)l表的一行称之为一条记录l表中一条记录对应一个java对象的数据User对象主讲 韩顺平玩
35、转oracle 10g实战教程表的管理-创建表(基本语句)CREATE TABLE table_name(field1 datatype,field2 datatype,field3 datatype,)field:指定列名datatype:指定列类型注意:创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。例:user对象 id int name string password string birthday dateIdName Passwordbirthday主讲 韩顺平玩转oracle 10g实战教程表的管理表的管理oracle常用数据类型常用数据类型分类数据类
36、型说明文本、二进制类型CHAR(size) char(20)VARCHAR(size) varchar(20)nchar(n) nvarchar2(n)clob(character large object)blob(binary large object) 定长 最大2000字符变长 最大4000字符Unicode数据类型 ,定长 最大2000字符Unicode数据类型 ,变长 最大4000字符字符型大对象 ,最大8tb二进制数据 可以存放图片/声音 8tb数值类型number(p,s)p为整数位,s为小数位.范围: 1 = p =38, -84 = s = 127保存数据范围:-1.0e-
37、130 = number value 1.0e+126 保存在机器内部的范围: 1 22 bytes时间日期dateTIMESTAMP(n)包含年月日,时分秒。默认格式:DD-MON-YYYY。从公元前4712年1月1日到公元4712年12月31日的所有合法日期n的取值为09.表示指定TIMESTAMP中秒的小数位数。N为可选。如果n为0,timestamp与date等价不推荐 number可以理解成是一个可变的数值类型,比如 number(12) ,你放一个小整数,它占用的字节数就少,你放一个大整数,它占用的字节数就多,很好!主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表
38、的管理-oracle支持的数据类型支持的数据类型 数值型数值型 NUMBER(precision , scale) NUMBER(p,s)范围: 1 = p =38, -84 = s = 127保存数据范围:-1.0e-130 = number value 0精确到小数点右边s位,并四舍五入。然后检验有效位是否 = p。s 0 精确到小数点左边s位,并四舍五入。然后检验有效位是否 = p + |s|。s = 0 等价于NUMBER(p)此时NUMBER表示整数。 主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理-oracle支持的数据类型支持的数据类型 数值型数值型 看
39、几个案例看几个案例:number(5,2)表示一个小数有5位有效数,2位小数 。范围 -999.99999.99如果数值超出了位数限制就会被截取多余的位数。但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。number(5) number(5,0)表示一个五位整数,范围 -9999999999。输入57523.316,真正保存的数据是57523主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理-oracle支持的数据类型支持的数据类型 数值型数值型 (小练习小练习)Actual Data Specified As Stored As-12
40、3.89 NUMBER 123.89123.89 NUMBER(3) 124123.89 NUMBER(6,2) 123.89123.89 NUMBER(6,1) 123.9123.89 NUMBER(4,2) exceeds precision (有效位为5, 5 4)123.89 NUMBER(6,-2) 100.01234 NUMBER(4,5) .01234 (有效位为4).00012 NUMBER(4,5) .00012.000127 NUMBER(4,5) .00013.0000012 NUMBER(2,7) .0000012.00000123 NUMBER(2,7) .00000
41、121.2e-4 NUMBER(2,5) 0.000121.2e-5 NUMBER(2,5) 0.00001Actual Data Specified As Stored As-123.2564 NUMBER 123.25641234.9876 NUMBER(6,2) 1234.9912345.12345 NUMBER(6,2) Error (有效位为5+2 6)1234.9876 NUMBER(6) 1235 (s没有表示s=0)12345.345 NUMBER(5,-2) 123001234567 NUMBER(5,-2) 123460012345678 NUMBER(5,-2) Erro
42、r (有效位为8 7)123456789 NUMBER(5,-4) 1234600001234567890 NUMBER(5,-4) Error (有效位为10 9)12345.58 NUMBER(*, 1) 12345.60.1 NUMBER(4,5) Error (0.10000, 有效位为5 4)0.01234567 NUMBER(4,5) 0.012350.09999 NUMBER(4,5) 0.09999主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理创建表创建表 建表建表 -学生表-班级表包含: 班级编号,班级名称字段字段字段类型字段类型Id整形整形name
43、字符型字符型sex字符型字符型brithday日期型日期型fellowship小数型小数型resume大文本型大文本型主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理修改表修改表使用使用 ALTER TABLE 语句添加语句添加, 修改修改, 或删除列的语法或删除列的语法.ALTER TABLE tablenameADD (columnname datatype);ALTER TABLE tableMODIFY (columnname datatype);ALTER TABLE tableDROP column (column);修改表的名称:rename 表名 to
44、新表名主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理修改表修改表练习练习练习练习1.给学生表添加班级编号 2.学生姓名 变成 varchar2(30) 3 学生姓名 变成 char(30) 4.删除学生表的 fellowship 字段 5.把学生表名 student修改成 stu 6.删除学生表主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理crudInsert语句 (增加数据)Update语句 (更新数据)Delete语句 (删除数据)Select语句 (查找数据)主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理添加数
45、据添加数据INSERT INTOtable (column , column.)VALUES(value , value.);使用 INSERT 语句向表中插入数据。l插入的数据应与字段的数据类型相同。l数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。l在values中列出的数据位置必须与被加入的列的排列位置相对应。l字符和日期型数据应包含在单引号中。字符和日期型数据应包含在单引号中。l插入空值,不指定或insert into table value(null)主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理添加数据添加数据 练习
46、:使用insert语句向表中插入三个学生的信息。l注意:字符和日期要包含在单引号中。字段字段字段类型字段类型Id整形整形name字符型字符型sex字符型字符型brithday日期型日期型fellowship小数型小数型resume大文本型大文本型主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理添加数据添加数据 插入部分字段插入部分字段 插入空值插入空值INSERT INTOtable (column , column.)VALUES(value , value.);主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理修改数据修改数据UPDATE tb
47、l_name SET col_name1=expr1 , col_name2=expr2 . WHERE where_definition 使用 update语句修改表中数据。lUPDATEUPDATE语法可以用新值更新原有表行中的各列。语法可以用新值更新原有表行中的各列。lSETSET子句指示要修改哪些列和要给予哪些值。子句指示要修改哪些列和要给予哪些值。lWHEREWHERE子句指定应更新哪些行。如没有子句指定应更新哪些行。如没有WHEREWHERE子句,则更新所有的行。子句,则更新所有的行。主讲 韩顺平玩转oracle 10g实战教程oracle表的管理修改数据练习 改一个字段改一个字段
48、根据学号修改性别. 修改多个字段修改多个字段根据学号修改性别和生日 修改含有修改含有null值的数据值的数据l要求l将所有学生薪水修改为5000元。l将姓名为zs的学生薪水修改为3000元。l将lisi的薪水在原有基础上增加1000元。l将没有奖学金同学的奖学金改成10元主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理删除数据删除数据delete from tbl_name WHERE where_definition 使用 delete语句删除表中数据。l如果不使用where子句,将删除表中所有数据。lDelete语句不能删除某一列的值(可使用update)l使用de
49、lete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。l同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。l删除表中数据也可使用TRUNCATE TABLE 语句,它和delete有所不同,参看mysql文档。主讲 韩顺平玩转oracle 10g实战教程oracle表的管理表的管理删除数据删除数据 删除数据删除数据 delete from 表名表名; 删除所有记录,表结构还在,写日志,可以恢复的,速度慢 drop table 表名; 删除表的结构和数据 delete from s
50、tudent where xh=A001; 删除一条记录 truncate table 表名; 删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询介绍介绍 介绍介绍在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select语句,select语句在软件编程中非常的有用,希望大家好好的掌握主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询介绍介绍SELECT DISTINCT *|column1, column2. column3.FR
51、OMtable;lSelect 指定查询哪些列的数据。lcolumn指定列名。l*号代表查询所有列。lFrom指定查询哪张表。lDISTINCT可选,指显示结果时,是否剔除重复数据l基本基本selectselect语句语句主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询简单的查询语句简单的查询语句 查看表结构查看表结构sqldesc 表名; 查询所有列查询所有列select * from 表名; 查询指定列查询指定列select 列1,列2 from 表名; 如何取消重复行如何取消重复行select distinct deptno ,job from emp;?查询
52、SMITH 的薪水,工作,所在部门主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询简单的查询语句简单的查询语句 使用算数表达式使用算数表达式?显示每个雇员的年工资 使用列的别名使用列的别名select ename 姓名,sal*12 as 年收入 from emp; 如何处理如何处理null值值使用nvl函数来处理 如何连接字符串如何连接字符串(|)主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询简单的查询语句简单的查询语句 使用使用where子句子句?如何显示工资高于3000的员工?如何查找1982.1.1后入职的员工?如何显示工资在2
53、000到2500的员工情况 如何使用如何使用like操作符操作符%: 表示任意 0到多个字符 _: 表示任意单个字符?如何显示首字符为S的员工姓名和工资?如何显示第三个字符为大写O的所有员工的姓名和工资 在在where条件中使用条件中使用in ?如何显示empno为 123,345,800.的雇员情况 使用使用is null的操作符的操作符 ?如何显示没有上级的雇员的情况主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询简单的查询语句简单的查询语句 使用逻辑操作符号使用逻辑操作符号?查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名首写字母为大写
54、的J 使用使用order by子句子句?如何按照工资的从低到高的顺序显示雇员的信息?按照部门号升序而雇员的入职时间降序排列 使用列的别名排序使用列的别名排序select ename,sal*12 年薪 from emp order by 年薪 asc;别名需要使用“ 号圈中主讲 韩顺平玩转oracle 10g实战教程oracle表基本查询表基本查询简单的查询语句简单的查询语句 分页查询分页查询按雇员的id号升序取出。主讲 韩顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询 说明说明在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的
55、select语句 数据分组数据分组-max,min,avg,sum,count?如何显示所有员工中最高工资和最低工资?显示所有员工的平均工资和工资总和?计算共有多少员工扩展要求:?请显示工资最高的员工的名字,工作岗位?请显示工资高于平均工资的员工信息主讲 韩顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询 group by 和和 having子句子句group by用于对查询的结果分组统计,having子句用于限制分组显示结果.?如何显示每个部门的平均工资和最高工资?显示每个部门的每种岗位的平均工资和最低工资?显示平均工资低于2000的部门号和它的平均工资扩展要求:主讲 韩
56、顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询 对数据分组的总结对数据分组的总结1分组函数只能出现在选择列表、having、order by子句种2 如果在select 语句种同时包含有group by ,having ,order by 那么他们的顺序是group by , having , order by3 在选择列种如果有列、表达式、和分组函数,那么这些列和表达式必须有一个出现在group by 子句中,否则就会出错如select deptno,avg(sal),max(sal) from emp group by deptno having avg(sal)al
57、l (select sal from emp where deptno=30);扩展要求:大家想想还有没有别的查询方法.Select ename,sal,deptno from emp where sal(select max(sal) from emp where deptno=30);主讲 韩顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询子查询子查询 在多在多行子查询中使用在多在多行子查询中使用any操作符操作符请思考:如何显示工资比部门30的任意一个员工的工资高的员工的姓名、工资和部门号扩展要求:大家想想还有没有别的查询方法.主讲 韩顺平玩转oracle 10g实战
58、教程oracle表复杂查询表复杂查询子查询子查询 多列子查询多列子查询单行子查询是指子查询只返回单列、单行数据,多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查序则是指查询返回多个列数据的子查询语句请思考如何查询与smith的部门和岗位完全相同的所有雇员主讲 韩顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询子查询子查询 在在from子句中使用子查询子句中使用子查询请思考:如何显示高于自己部门平均工资的员工的信息这里要用到数据查询的小技巧,把一个子查询当作一个临时表使用解法select e1.*,e2.myavg from emp e1,(select avg
59、(sal) myavg,deptno from emp group by deptno) e2 where e1.deptno=e2.deptno and e1.sale2.myavg解法select e1.* from emp e1 where e1.sal(select avg(sal) from emp where deptno=e1.deptno)主讲 韩顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询子查询子查询 在在fromfrom子句中使用子查询子句中使用子查询请思考:查找每个部门工资最高的人的详细资料解法解法思路:得到所有的员工,进行筛选,每拿到一个员工,判
60、断该员工的工资是否是他们部门的最高工资。select * from emp e where sal=(select max(sal) from emp where deptno=e.deptno);主讲 韩顺平玩转oracle 10g实战教程oracle表复杂查询表复杂查询子查询子查询 在在fromfrom子句中使用子查询子句中使用子查询请思考:显示每个部门的信息和人员数量解法自己完成解法查询获得所有的部门信息,每获得一个部门,我们就查询该部门的人数,保存为一个新的列。select d.*,(select count(*) from emp where deptno=d.deptno) allnum from
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于大数据的企业运营合作协议书
- 仓储电子商务物流合作服务协议6篇
- 2025三月办公楼钢结构防火涂料修补协议
- 郑州2025年2025年4标索须河河道管理养护合同5篇
- 知识产权合同样本:专利实施合同6篇
- 1+X信号系统试题库与参考答案
- 汽车维修工中级习题含答案
- 印刷制作合同
- 威士忌销售合同
- 2025供应商供货合同范本
- CJJ-T 34-2022 城镇供热管网设计标准
- 小蝌蚪找妈妈(第一课时)(省一等奖)
- 勘察设计工作大纲
- 道路运输从业资格证件换发、补发、变更登记表
- 配偶户口调京央属企事业单位有关规定
- 机动车检验员现场操作考核表.docx
- 事业单位1993历次调整工资标准对照表
- 电气工程及其自动化专业英语词汇
- 《多媒体技术与应用》课程教学大纲
- SJG 68-2019 人行地下通道设计标准
- 品牌CIS导入报价表高端品牌文化理念加设计
评论
0/150
提交评论