`
zisefeiniao
  • 浏览: 173930 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多
  李兴华老师在第一天的时候曾经说过,第一个星期的教学就是跟大家磨合,果然不错,从昨天开始已经开始习惯了老师的风格,虽然不知道其他人怎么想,但是我想,这才应该是一个好老师。



今天所讲的知识点
A 用户管理
B 嵌套表
C 可变数组
D PL/SQL编程
E 数据库范式


我对知识点的分析
A 提示:对用户的修改设置,往往需要重新连接才能生效。
一、创建用户
在创建用户的时候需要有管理员的权限,可以使用sys用户登陆,创建用户。
创建用户的语法:
CREATE USER 用户名 IDENTIFIED BY 密码 ;
二、给用户授权
在SQL语法中授权的语法格式如下:
GRANT 权限1或角色,权限2或角色,…. TO 用户;
(1)任何用户都需要给其授予CREATE SESSION的权限,CREATE SESSION是一个系统特权,它可以为用户提供连接数据库的能力。
例如:GRANT CREATE SESSION TO test ;
(2)DBA是一个具有超过120个系统特权的角色,所以它可以让用户在数据库中完成几乎任何工作。
例如:CRANT  DBA TO test;
(3)在Oracle中提供了很多的用户的角色,可以使用CONNECT、RESOURCE两个角色,使用这两个角色,就可以完成和scott下一样的一些基本功能。(连接数据库和访问资源的权限)
例如:GRANT CONNECT,RESOURCE TO test ;
(4)授予其他用户下的表的访问、修改权限等。
例如:GRANT SELECT,DELETE ON scott.emp TO test ;
三、收回用户的授权
REVOKE 权限名  FROM 用户 ;
例如:REVOKE SELECT,DELETE ON scott.emp FROM test ;
四、修改用户密码
ALTER USER 用户名 IDENTIFIED BY 密码 ;
例如:将test用户的密码修改为hello
ALTER USER test IDENTIFIED BY hello ;
五、使用户密码失效
ALTER USER 用户名 PASSWORD EXPIRE ;
六、用户锁定与解锁
ALTER USER 用户名 ACCOUNT  LOCK ;
ALTER USER 用户名 ACCOUNT  UNLOCK ;

B 如果要想完成,则首先第一步需要定义出一种数据类型,此类型表示project信息。
CREATE TYPE project_ty AS OBJECT(
proid  NUMBER(4),
proname  VARCHAR2(50),
prodate  DATE
) ;
/
类型创建成功之后,下面需要使用此类型进行一个声明。
CREATE TYPE project_nt AS TABLE OF project_ty ;
/
以后在建立表的时候使用的就是project_nt进行字段的声明。
建立完以上的操作之后,下面就可以创建department表了。
CREATE TABLE department(
deptno  NUMBER(2) PRIMARY KEY ,
dname  VARCHAR2(50) NOT NULL ,
projects project_nt
) NESTED TABLE projects STORE AS project_nt_tab_temp ;
表创建成功之后,就可以进行插入数据的操作,但是在插入的时候一定要注意复杂类型。
INSERT INTO department(deptno,dname,projects)
VALUES (10,'技术部',project_nt(
project_ty(1001,'ERP',SYSDATE) ,
project_ty(1002,'CRM',SYSDATE) ,
project_ty(1003,'OA',SYSDATE)
)) ;
如果,此时要想查询一个部门中的全部的项目信息,则就必须写子查询。
SELECT * FROM TABLE (SELECT projects FROM department WHERE deptno=10) ;

C 可变数组属于嵌套表的升级版,在可变数组中,实际上就是将内部的嵌套表的内容的长度进行了限制。
例如:一个部门有多个工人。如果按照可变数组的做法,肯定首先要做出一个工人的类型。
CREATE TYPE worker_info AS OBJECT(
id NUMBER ,
name VARCHAR2(50) ,
sex VARCHAR2(20)
) ;
/
声明有10个元素的数组;
CREATE TYPE woker_info_list AS ARRAY(10) OF worker_info ;
/
下面建立表,并在表中使用此类型。
CREATE TABLE department2(
deptno  NUMBER(2) PRIMARY KEY ,
dname  VARCHAR2(50) NOT NULL ,
workers  woker_info_list
) ;
下面插入测试数据:
INSERT INTO department2(deptno,dname,workers)
VALUES (10,'技术部',woker_info_list(
worker_info(1001,'张三','男') ,
worker_info(1002,'李四','女')
)) ;

D 在Oracle中本身也有自己的程序设计,那么这种程序设计就是使用PL•SQL完成,例如,定义过程(存储过程)、游标、触发器、函数、包等等。
但是从现代的开发角度来讲,以上的程序的作用基本上已经没有了。
如果要想使用一个PL•SQL块,则必须按照以下的格式进行:
DECLARE
-- 程序的声明部分,例如,定义变量
BEGIN
-- 程序的执行体,具体的操作代码
EXCEPTION
-- 异常的处理
END ;
/
一、输入输出
  (1)赋值  :=
(2)输出:DBMS_OUTPUT.put_line('变量:' || i) ;
(3)输入:  &
二、分支结构
(1)单分支结构
IF  … THEN
…..
END IF
(2)双分支结构
IF  … THEN
…..
ELSE
………
END IF
(3)多分支结构
IF  … THEN
…..
ELSIF …
………
END IF
(4)CASE分支
PL/SQL中CASE的用法有两种结构:
(1)检测式,有一个检测表达式,每个WHEN中的值与其相比较。
 语法:
[ <<label_name>> ]
CASE case_operand
  { WHEN when_operand THEN {statement;} ... }...
  [ ELSE {statement;}... ]
END CASE [ label_name ];
 说明:
 case_operand是被检测的变量或表达式,可以是任意复杂的表达式,可以包含函数调用,只在开始执行CASE语句时计算一次。
 when_operand的类型必须与case_operand的类型相符。
 没有ELSE子句的CASE语句,如果case_operand与任何一个when_operand都不匹配时,PL/SQL将产生预定义错误CASE_NOT_FOUND,错误号为ORA-6592。
 示例:
SET SERVEROUTPUT ON;
DECLARE
  v_day INTEGER:=3;
  v_cday VARCHAR2(10);
BEGIN
  CASE v_day
    WHEN 1 THEN v_cday:='星期一';
    WHEN 2 THEN v_cday:='星期二';
    WHEN 3 THEN v_cday:='星期三';
    WHEN 4 THEN v_cday:='星期四';
    WHEN 5 THEN v_cday:='星期五';
    WHEN 6 THEN v_cday:='星期六';
    WHEN 7 THEN v_cday:='星期日';
    ELSE v_cday:='非预期数据';
  END CASE;
  DBMS_OUTPUT.PUT_LINE(v_cday);
END;

对比

SET SERVEROUTPUT ON;
DECLARE
  v_day INTEGER:=3;
  v_cday VARCHAR2(10);
BEGIN
  v_cday:=CASE v_day
    WHEN 1 THEN '星期一'
    WHEN 2 THEN '星期二'
    WHEN 3 THEN '星期三'
    WHEN 4 THEN '星期四'
    WHEN 5 THEN '星期五'
    WHEN 6 THEN '星期六'
    WHEN 7 THEN '星期日'
    ELSE '非预期数据'
  END;
  DBMS_OUTPUT.PUT_LINE(v_cday);
END;
(2)搜索式,没有检测表达式,每个WHEN中都包含一个布尔表达式。
 语法:
[ <<label_name>> ]
  CASE { WHEN boolean_expression THEN {statement;} ... }...
  [ ELSE {statement;}... ]
END CASE [ label_name ];
 示例:
SET SERVEROUTPUT ON;
DECLARE
  v_day INTEGER:=3;
  v_cday VARCHAR2(10);
BEGIN
  CASE
    WHEN v_day=1 THEN v_cday:='星期一';
    WHEN v_day=2 THEN v_cday:='星期二';
    WHEN v_day=3 THEN v_cday:='星期三';
    WHEN v_day=4 THEN v_cday:='星期四';
    WHEN v_day=5 THEN v_cday:='星期五';
    WHEN v_day=6 THEN v_cday:='星期六';
    WHEN v_day=7 THEN v_cday:='星期日';
    ELSE v_cday:='非预期数据';
  END CASE;
  DBMS_OUTPUT.PUT_LINE(v_cday);
END;

对比

SET SERVEROUTPUT ON;
DECLARE
  v_day INTEGER:=3;
  v_cday VARCHAR2(10);
BEGIN
  v_cday:=CASE
    WHEN v_day=1 THEN '星期一'
    WHEN v_day=2 THEN '星期二'
    WHEN v_day=3 THEN '星期三'
    WHEN v_day=4 THEN '星期四'
    WHEN v_day=5 THEN '星期五'
    WHEN v_day=6 THEN '星期六'
    WHEN v_day=7 THEN '星期日'
    ELSE '非预期数据'
  END;
  DBMS_OUTPUT.PUT_LINE(v_cday);
END;
三、循环结构
(1)LOOP循环
LOOP
语句 ;
EXIT WHEN (退出条件) ;
循环变量改变 ;
END LOOP;
(2)WHILE …LOOP循环
WHILE (条件) LOOP
语句 ;
改变循环变量;
END LOOP ;
(3)FOR…LOOP循环
FOR 循环变量 IN 起始点..终止点 LOOP
  语句
END LOOP;
E 范式一:
字段不可分
范式二:
多对多表
范式三:
一对多表
F
备注:

A 设计要求,要求设计一个网上购物程序(使用powerdesigner建立模型并编写测试数据),有以下的需求
1、 管理员可以在后台添加商品,每个商品属于一个商品组
2、 可以对管理员进行分组,对每一组进行分别授权,即一个管理员组可以有多个管理员,一个管理员组有多个权限,一个管理员可以在多个组
3、 用户可以自己购买商品,购买商品时要在定单表中添加信息,一个用户可以同时购买多个商品,用户可以选择自己所在的地区进行商品的派送
4、 用户可以根据自己的购买积分,对商品进行折扣。
个人收获:
学会了从实体表、关系表分析数据库的表;
从中体会到数据库的范式并不一定非得遵守,或者说完全遵守数据库的范式设计的数据库模型不一定是最好用的,特别在涉及复杂查询的时候;



第一周的培训就这样坚持过来了,从一开始精神紧绷,到现在已经基本适应了。
不过这一周我觉得自己的学习方法还是不够好,所以学习效率不是很高,每一天弄得自己很晚睡觉,但似乎其实可以不用熬夜的,这样又导致第二天学习比较累,偶尔会出现脑子空白的情况。
而且我这一周学习没有去提前预习,只是做好了复习的工作,时间就不多了。
希望下周学习JAVA后,需要调整一下学习方法。

分享到:
评论

相关推荐

    OSPF七种状态机状态分析

    这一过程清晰地展示了OSPF状态机如何根据网络事件动态调整状态,从而确保链路状态信息的准确性和时效性。 #### 结论 深入理解OSPF的七种状态机状态及其转换机制,对于网络工程师来说至关重要。通过监控debug信息,...

    柯美C6501常用调整项目

    ### 柯美C6501常用调整项目详解 #### 一、进入和退出维修模式 柯美C6501提供了两种进入维修模式的方法: 1. **正常开机状态下进入**: - 首先点击“Utility”键进入效用菜单。 - 接着按照特定顺序操作面板:...

    《计算机操作系统(第四版)》第五章课后习题答案.docx

    《计算机操作系统(第四版)》第五章主要讨论的是操作系统中的存储管理,特别是虚拟存储器的相关知识。虚拟存储器是现代操作系统中解决内存资源稀缺问题的关键技术,它允许程序使用比实际内存更大的地址空间。以下是...

    联轴器找正的计算方法和调整步骤

    5. **复查**:调整完毕后再次进行测量,确保联轴器的偏差值符合质量标准。 6. **最终确认**:所有调整完成后,进行最终检查,确保联轴器找正达到预期效果。 #### 六、注意事项 1. **安全第一**:在进行联轴器找正...

    太阳能光伏发电系统原理与应用技术:第5章 控制器.ppt

    《太阳能光伏发电系统原理与应用技术:第5章 控制器》 太阳能光伏发电系统中的控制器扮演着至关重要的角色,它是系统管理与控制的核心设备。控制器主要由电子元件、仪表、继电器和开关等构成,其基本原理是通过检测...

    OExam试题设置详解

    5. **第五步**:可选填写内容包括试题难度、缺省分数、试题来源、答题限时、试题状态、试题解析等。 6. **第六步**:编辑完毕后,点击“保存”。 ##### (六)问答题设置 1. **第一步**:在试题类型中选择“问答”...

    空调系统调试流程.pdf

    五、系统指标测试与调整 系统指标测试与调整是空调系统调试的最后一个步骤,在这个阶段,需要对整个空调系统进行指标测试和调整,以确保系统能够达到设计要求和施工验收规范的要求。系统指标测试与调整的步骤包括:...

    第5章 中断技术.ppt[兼容模式].pdf_微机接口_

    在第5章“中断技术”中,我们深入探讨了这一领域的重要概念和工作原理,以及如何在实际系统配置中应用中断资源。 首先,中断的基本概念包括中断源和中断请求。中断源是指能够触发中断的硬件或软件事件,如键盘输入...

    第六届蓝桥杯单片机决赛试题

    - **设置按键S6**:在空载状态下有效,用于调整货物的传送时间,调整完毕后保存到E2PROM,并关闭数码管显示。 ##### 4. 数据存储 - I、II类型货物的传送时间在设置完成后需要保存到E2PROM中,以便设备重启后能够...

    操作系统第五章课后习题.docx

    在第五章中,我们主要讨论了存储器管理,特别是虚拟存储器的相关概念和技术。以下是对这部分内容的详细解释: 1. 常规存储器管理方式的主要特征包括一次性(one-for-all)和驻留性(residency)。一次性意味着程序...

    protel印制电路板设计:电子镇流器PCB设计布局及布线.ppt

    Protel 印制电路板设计 第14-15讲 电子镇流器PCB设计及实训 主 要 内 容 一、产品介绍 二、设计前准备 三、设计PCB时考虑的因素 四、通过网络表加载元件和网络 五、自动布局及手工调整 六、手工布线 七、覆铜设计 八...

    易语言判断按下的左右Shift键.rar

    4. **判断Shift键**:在“键盘按下”事件中,你可以调用“获取键盘状态”函数,然后检查返回值的第30位和第31位。如果这两个位置的值都为1,那么表示左右Shift键都被按下;如果只有其中一个为1,那么表示只按下了...

    MySQL高级第三天.md

    连接池预先创建并维护一定数量的数据库连接,并在需要时分配给客户端使用,使用完毕后归还给连接池而不是直接关闭。 - **好处**: - 减少连接和断开连接的开销。 - 提高响应速度。 - 更好的资源管理和控制。 2....

    Word中如何删除空白页.docx

    第五种方法:调整表格大小 如果是你画了一个表格,占了一整页,造成最后一个回车在第二页删不了,可以将表格缩小一点或者将上面或者下面页边距设小一点,在文件/页面设置中,上下的数字改小一点。 第六种方法:...

    西门子变频器实验指导书

    #### 第五章 变频调速技术实训一 变频器功能参数设置与操作 ##### 实训目的 本实训旨在通过实际操作让学员深入理解西门子变频器的基本操作及参数设定流程。具体目标包括: 1. **了解变频器基本操作面板(BOP)的...

    通信行业月度报告:年报一季报披露完毕,板块业绩分化明显.zip

    通信行业的月度报告聚焦在了年度与第一季度财务报表的披露情况,揭示了该板块业绩显著的分化现象。这种分化可能是由于不同公司在面对市场变化、技术创新和政策环境等方面的应对策略差异导致的。以下是对这一主题的...

    第5节:管理对象-实体于流程的关系.pptx

    这些流程称为其他业务类流程,它们与实体的关系在于通过实体主键查询流程相关信息,而流程结束后,实体状态保持不变。 4. 新建关系: - 新建关系流程通常涉及到在实体列表中创建新记录,如入校申请或供应商申请。...

    TASCAM MD350快速使用手册.doc

    - **录制完毕后指定轨道号码**: - 当一个轨道需要通过编辑分成多个部分时,可以在此后分配轨道号码。 #### 四、越过现存轨道录音 当需要覆盖已存在的轨道时,可以采用以下方法: - **基本步骤**: - 参照第八...

    消防报警主机操作说明.pdf

    - 火灾处理完毕后,需将主机恢复到正常监视状态。 - 要停止主机报警音,需按下音响停止开关,相应显示灯长亮。 - 火警状态复位需按复位开关,某些情况下可能需要先复原手动操作开关或手动火灾报警按钮。 6. **...

    四川大学操作系统课程设计高分报告-第五次实验-Windows虚拟存储器管理.doc

    实验者需要确保程序能够正确显示六种不同的页面状态,并编写额外的代码来获取系统当前的存储空间使用情况。这要求实验者不仅理解基本的编程技巧,还要熟悉Windows内存管理的API函数,如`_beginthreadex`等。 在...

Global site tag (gtag.js) - Google Analytics