oracle修改列值等于其它表列

1.修改A表a列=B表b列,b.XXX=a.XXX

方法1:update A a set a.列=(select b.列 from B b where b.XXX=a.XXX) 还有其它A表条件则继续添加 where ......

方法2:update(select a.列,b.列 from A a left join B b where a.XXX=b.XXX) set a.列=b.列  视图形式

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验一 SQL*PLUS练习 【实验目的】 (1) 了解Oracle的工作环境和基本使用方法。 (2) 练习标准SQL的数据操作,查询命令及其查询优化。 (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报,存储到文件等。 【实验内容】 一、 准备使用SQL*PLUS 1. 进入SQL*PLUS 2. 退出SQL*PLUS 3. 显示结构命令DESCRIBE SQL>DESCRIBE emp 使用DESCRIBE(缩写DESC)可以列出指定的基本结构,包括各字段的字段名以及类型、长度、是否非空等信息。 4. 使用SQL*PLUS显示数据库中EMP的内容 输入下面的查询语句: SQL>SELECT * FROM emp; 按下回车键执行查询 5. 执行命令文件 START或@命令将指定文件调入SQL缓冲区中,并执行文件内容。 SQL>@ 文件名(文件后缀缺省为.SQL)或 SQL>START 文件名 文件中每条SQL语句顺序装入缓冲区并执行。 二、 数据库命令——有关、视图等的操作 1. 创建employee 例1 定义一个人事信息管理系统中存放职工基本信息的一张。可输入如下命令: SQL>CREATE TABLE employee (empno number(6) PRIMARY KEY, /* 职工编号 name varchar2(10) NOT NULL, /* 姓名 deptno number(2) DEFAULT 10, /* 部门号 salary number(7,2) CHECK(salarycreate table emp2 as select * from emp where 1=2; 在命令的where子句中给出1=2,示条件不可能成立,因而只能复制结构,而不能复制任何数据到新中去。另外,还可以复制一个的部分列定义或部分列定义及其数据。 三、 Oracle数据库数据查询 1、单查询 2、多查询 四、 SQL*PLUS常用命令 1 常用报格式化名命令 命令 定义 Btitle 为报的每一页设置底端标题 Column 设置列的标题和格式 Compute 让SQL*PLUS计算各种 Remark 将某些字标记为注释 Set linesize 设置报的行宽字符数 Set newpage 设置报各页之间的行数 Spool 使SQL*PLUS将输出写入文件中 Start 使SQL*PLUS执行一个sql文件 Ttitle 设置报每页的头标题 Break 让SQL*PLUS进行分组操作 例3 建立一个批命令文件对查询到的数据以报的形式输出并将其保存到指定的文件中。 处理方法:利用SQL*PLUS语言工具(也可以使用其他文本编辑器)建立批命令的.SQL文件。在“SQL>”提示符下,使用EDIT命令在”E:\”中建立SCGB.SQL文件。 SCGB.SQL文件中的命令组如下: SQL>EDIT E:\ SCGB.SQL SET echo off SET pagesize 30 SET linesize 75 TTITLE’2008年4月10号’CE’公司职员基本情况登记’R’Page:’ FORMAT 99- >SQL.PNO SKIP 1 CE’===========================’ BTITLE COL 60 ’制标单位’ TAB 3 ‘人事部’ COLUMN empno heading ‘职工|编号’ COLUMN ename format a10 heading ‘姓 名’ COLUMN job heading ‘工 种’ COLUMN sal format $99,990 heading 工 资’ COLUMN comm Like sal heading ‘奖 金’ COLUMN deptno format 9999 heading ‘部门|编号’ COLUMN hiredate heading ‘参加工作时间’ SPOOL e:\sjbb /*在E盘中建立格式报输出文件,默认属性为LST BREAK on deptno skip 1 COMPUTE sum of sal comm on deptno SELECT empno,ename,job,hiredate,sal,comm,deptno from emp ORDER BY deptno,sal; SPOOL off /*终止SPOOL功能,关闭其文件。注意,此命令不可省,否则将建立空文件。 五、 实验内容 1、以cs+学号为用户名创建用户,并授予用户创建数据对象的权限。 2、复制emp,复制名为emp_学号,然后将emp中工资低于$2000 的职工插入到复制的中。 3、对复制的emp插入一行只包含有职工号,职工名,工资与部门号四个数据 项的记录。 4、在复制的emp中将雇员ALLEN提升为经理,工资增至$2500, 奖(佣 )金增加40%。 5、删除复制的emp中工资低于500的记录行。 6、列出10号部门中既不是经理,也不是秘书的职工的所有信息。 7、查找出部门所在地是CHICAGO的部门的职工姓名、工资和工种。 8、统计各部门中各工种的人数、工资总和及奖金总和。 9、查找出工资比其所在部门平均工资高的职工姓名、工种与工资情况。 实验3 Oracle数据库开发环境下PL/SQL编程 【实验目的】 (1)掌握 PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用 PL/SQL 解决实际问题 【实验内容与步骤】 PL/SQL块中的可执行部分是由一系列语句组成的(包括对数据库进行操作的SQL语句,PL/SQL语言的各种流程控制语句等)。在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的数据查询命令,数据操纵命令和事务控制命令。可使用全部SQL函数。PL/SQL中的SQL语句,可使用SQL的比较操作等运算符。但不能使用数据定义语句。 在PL/SQL块中使用SELECT语句时注意几点: (1)SELECT语句必须含有INTO子句。 (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 (4)SELECT语句中的WHERE条件可以包含PL/SQL块中定义的变量及达式,但变量名不要同数据库表列名相同。 (5)在未使用显式游标的情况下,使用SELECT语句必须保证只有一条记录返回,否则会产生异常情况。 [例3-1] 问题:编写一个过程,求和运算。 SET SERVEROUTPUT ON; DECLARE a number:=1; BEGIN a:=a+5; DBMS_OUTPUT.PUT_LINE('和为:'||TO_CHAR(a)); END; / 【例3-2】:使用%TYPE声明变量,输出制定中的相关信息。 DECLARE my_name student.sname%TYPE; BEGIN SELECT sname INTO my_name FROM student WHERE no=’01203001’; DBMS_OUTPUT.PUT_LINE(my_name); END; / 【例3-3】问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 declare v_sal emp.sal%type; begin select sal into v_sal from emp where ename=spName; if v_sal :NEW.sal THEN DBMS_OUTPUT.PUT_LINE('工资减少'); ELSIF :OLD.sal < :NEW.sal THEN DBMS_OUTPUT.PUT_LINE('工资增加'); ELSE DBMS_OUTPUT.PUT_LINE('工资未作任何变动'); END IF; DBMS_OUTPUT.PUT_LINE('更新前工资 :' || :OLD.sal); DBMS_OUTPUT.PUT_LINE('更新后工资 :' || :NEW.sal); END; / --执行UPDATE查看效果 UPDATE emp SET sal = 3000 WHERE empno = '7788'; 6、需要对在上进行DML操作的用户进行安全检查,看是否具有合适的特权。 Create table foo(a number); Create trigger biud_foo Before insert or update or delete On foo Begin If user not in (‘DONNY’) then Raise_application_error(-20001, ‘You don’t have access to modify this table.’); End if; End; / 即使SYS,SYSTEM用户也不能修改foo。 2、 利用PL/SQL编写程序实现下列触发器 1)、编写一个数据库触发器,当任何时候某个部门从dept中删除时,该触发器将从emp中删除该部门的所有雇员。(要求:emp、dept均为复制后的) 2)、创建一个触发器,当客户下完订单后,自动统计该订单的所有图书的价格总额。 3)、创建一个触发器,禁止客户在非工作时间(早上8:00前,晚上17:00后)下订单。 五、实验心得
目录如下: 1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典缓冲区 1-14 数据库缓冲区 1-15 重做日志缓冲区 1-18 大储存池 1-19 JAVA 池 1-20 程序全局区(PGA) 1-21 进程结构 1-22 用户进程 1-23 服务进程 1-24 后台进程 1-25 数据库写进程(DBWn) 1-26 日志写进程(LGWR) 1-27 系统监控器(SMON) 1-28 进程监控器(PMON) 1-29 检查点进程(CKPT) 1-30 归档进程(ARCn) 1-31 逻辑结构 1-32 执行一个 SQL 语句 1-33 小结 1-34 2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 数据库管理员用户 2-11 ii 数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器控制台 2-18 DBA 工具 2-19 小结 2-20 3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个数据库 3-12 STARTUP 命令 3-15 ALTER DATABASE 命令 3-16 以受限模式打开数据库 3-17 以只读模式打开数据库 3-18 关闭数据库 3-19 关闭选项 3-20 用检测诊断文件管理一个实例 3-22 警报日志文件 3-23 后台跟踪文件 3-24 用户跟踪文件 3-25 允许和禁止用户跟踪 3-26 小结 3-26 4 创建数据库 目标 4-2 管理和组织一个数据库 4-3 创建的前提条件 4-4 规划数据文件的位置 4-5 创建数据库的方法 4-6 操作系统环境 4-7 使用数据库配置助手 4-8 创建数据库 4-9 数据库信息 4-10 iii 典型或用户自定义安装 4-11 其它参数 4-12 完成数据库创建 4-13 手动创建数据库 4-14 准备参数文件 4-15 创建 SPFILE 4-15 启动实例 4-16 创建数据库 4-17 使用 OMF 创建数据库 4-19 差错检测 4-20 数据库创建以后 4-21 小结 4-22 5 数据字典内容和使用 目标 5-2 数据字典 5-3 数据字典内容 5-5 如何使用数据字典 5-6 数据字典视图种类 5-7 动态性能 5-8 查询数据字典和动态性能视图 5-9 数据字典例子 5-10 小结 5-10 6 维护控制文件 目标 6-2 控制文件 6-3 控制文件的内容 6-4 使用 SPFILE 多重控制文件 6-5 使用 init.ora 多重控制文件 6-6 用 OMF 管理控制文件 6-7 获得控制文件的信息 6-8 小结 6-9 7 维护重做日志文件 目标 7-2 使用重做日志文件 7-3 重做日志文件的结构 7-4 重做日志是如何工作的 7-5 强制日志切换和检查点 7-6 增加联机重做日志组 7-7 增加联机重做日志成员 7-8 删除联机重做日志组 7-9 删除联机重做日志成员 7-10 iv 清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 空间 8-7 创建空间 8-8 空间的空间管理 8-9 本地管理空间 8-10 字典管理空间 8-11 改变存储设置 8-12 回滚空间 8-13 临时空间 8-14 缺省临时空间 8-15 缺省临时空间的限制 8-16 脱机状态 8-17 只读空间 8-19 删除空间 8-20 改变空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给空间添加数据文件 8-24 移动数据文件:ALTER TABLESPACE 8-25 为空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建空间 8-28 获得空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:UNDO 空间 10-11 自动回滚管理:改变和 UNDO 空间 10-12 自动回滚管理:转换 UNDO 空间 10-13 自动回滚管理:删除一个 UNDO 空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 空间大小 10-17 自动回滚管理回滚配额 10-18 获取回滚段信息 10-19 小结 10-20 11 管理 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张 11-11 创建临时 11-13 创建:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区 11-17 截断一张 11-18 删除一张 11-19 删除一列 11-20 vi 使用 UNUSED 选项 11-21 获取的信息 11-23 小结 11-25 12 管理索引 目标 12-2 索引的分类 12-3 B 树索引 12-4 位图索引 12-6 B 树索引和位图索引的比较 12-7 创建普通 B 树索引 12-8 创建索引:指导 12-10 创建位图索引 12-11 修改索引的储存参数 12-12 分配和回收索引空间 12-13 重构索引 12-14 联机重构索引 12-16 合并索引 12-17 检查索引的有效性 12-18 删除索引 12-19 确认不使用的索引 12-20 获取索引信息 12-21 小结 12-21 13 维护数据的完整性 目标 13-2 数据的完整性 13-3 约束的类型 13-4 约束的状态 13-5 约束的检测 13-7 定义即时约束或延迟约束 13-8 强制主键和唯一键 13-9 外部关键字的考虑 13-10 在建时定义完整性约束 13-11 定义约束的指导原则 13-13 允许约束 13-14 使用 EXCEPTIONS 13-16 获取约束信息 13-18 小结 13-20 14 管理密码安全和资源 目标 14-2 配置文件 14-3 密码管理 14-4 vii 允许密码管理 14-5 帐号密码锁定 14-6 密码寿命和过期 14-7 密码历史 14-8 密码验证 14-9 用户自定义密码函数 14-10 密码验证函数 VERIFY_FUNCTION 14-11 创建配置文件:密码设置 14-12 修改配置文件:密码设置 14-14 删除配置文件:密码设置 14-15 资源管理 14-16 允许资源限制 14-17 在会话级别设置资源限制 14-18 在调用级别设置资源限制 14-19 创建配置文件:资源限制 14-20 使用数据库资源管理器管理资源的使用 14-22 资源计划指示 14-24 获取密码和资源限制的信息 14-25 小结 14-26 15 管理用户 目标 15-2 用户和安全 15-3 数据库方案 15-4 检查创建用户 15-5 创建新用户:数据库验证 15-6 创建新用户:操作系统验证 15-8 改变用户的空间限额 15-9 删除用户 15-10 获取用户的信息 15-11 小结 15-12 16 管理权限 目标 16-2 管理权限 16-3 系统权限 16-4 系统权限:例子 16-5 授予系统权限 16-6 SYSDBA 和 SYSOPER 权限 16-7 系统权限限制 16-8 回收系统权限 16-9 使用 WITH ADMIN OPTION 选项时回收系统权限 16-10 对象权限 16-11 授予对象权限 16-12 viii 回收对象权限 16-13 使用 WITH GRANT OPTION 选项时回收对象权限 16-14 获取权限信息 16-15 审计 16-16 审计指南 16-17 审计种类 16-19 数据库审计 16-20 审计选项 16-21 查看审计选项 16-23 获取审计记录 16-24 小结 16-25 17 管理角色 目标 17-2 角色 17-3 角色的优点 17-4 创建角色 17-5 预定义的角色 17-6 修改角色 17-7 分配角色 17-8 建立默认角色 17-9 应用程序角色 17-10 允许和禁止角色 17-11 撤销用户角色 17-13 删除角色 17-14 创建角色指南 17-15 使用密码和默认角色指导原则 17-16 显示角色信息 17-17 小结 17-18 18 使用全球支持 目标 18-2 全球支持特性 18-3 不同类型的方案编码 18-4 数据库的字符集和国家字符集 18-6 选择 Oracle 数据库字符集的指导原则 18-7 选择 Oracle 数据库国家字符集的指导原则 18-8 为双字节字符数据库选择一种统一代码方案 18-9 为双字节字符数据类型选择一种统一代码方案 18-10 指定语言相关行为 18-11 为服务器指定语言相关行为 18-12 语言和地区相关的缺省 18-13 为会话指定语言相关的行为 18-14 客户端-服务器体系中的字符集 18-15 ix 为会话指定语言相关的行为 18-16 语言排序 18-17 NLS 排序 18-18 在 SQL 函数中使用 NLS 参数 18-20 语言索引支持 18-23 使用 NLS 导入和装载数据 18-24 获取字符集相关的信息 18-25 获取 NLS 相关的设置信息 18-26 全球支持实用工具 18-30 小结 18-31

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值