`
zisefeiniao
  • 浏览: 172135 次
  • 性别: 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”键进入效用菜单。 - 接着按照特定顺序操作面板:...

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

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

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

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

    空调系统调试流程.pdf

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

    公务员面试第一名经历和心得公务员面试第一名.pdf

    1. **面试前一天的准备**:面试前一天,考生应实地考察考场,如果可能,选择在考场附近住宿,以便熟悉环境,减少第二天的紧张感。此外,通过与朋友交谈或自我激励,可以帮助缓解紧张情绪。面试前一天保持积极心态,...

    怎样在公务员面试中以细节取胜.pdf

    8. **心理状态调整**:模拟面试有助于准备,但高期望值可能带来压力。保持平常心,目标是正常发挥,而非追求完美,以免“目的颤抖”影响表现。 这些细节处理得当,将有助于提升面试的整体效果。在公务员面试中,...

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

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

    操作系统第五章课后习题.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

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

    公务员面试第一名心得.doc

    1. **面试前一天的准备**:面试前一天应实地考察考场,熟悉环境,减少第二天的紧张感。如果条件允许,最好在考场附近住宿,便于适应周围环境。同时,保持轻松的心态,可以通过与朋友交流来缓解紧张。 2. **等待面试...

    职称计算机考试 word2003考试试题(一).docx

    第5题,快速格式复制操作使用的是格式刷;第6题,在有文字区域绘制图形,文字可能被覆盖;第7题,关闭Word不能通过单击标题栏左边的“W”;第8题,快捷键Ctrl+S是保存文件;第9题,Word 2003中的宏是一段应用程序,...

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

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

Global site tag (gtag.js) - Google Analytics