我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle(PLSQL)入门学习七

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle(PLSQL)入门学习七

Oracle(PLSQL)入门学习七

学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=74

设计数据库步骤:

良好的数据库设计:节省空间,数据完整,方便开发。

步骤:1、收集信息 2、标识实体 3、标识实体属性 4、标识实体之间的关系 5、画E-R图,编写Sql

概念了解:

  • 映射基数有一对一、一对多、多对一、多对多。
  • 三大范式:每列是不可再分的数据单元,例如“地址列”内容“中国北京”可以拆分“国家列”和“城市列”;每个表只描述一件事情。列和主键要有直接的关系,不能间接相关。

PL/SQL:

是一种过程语言,与结构化SQl结合的编程语言,对SQL语句的扩展。分为三个部分:声明,执行,异常。如果没有东西要声明可以不写declare,不捕获异常可以不写exception。注释分分单行“--”和多行“”,变量标识符最大长度31。

变量的声明以“变量名 类型 := 值”,注意“:=”是赋值用的,而“=”是判断用的。如果要声明常量,在变量名后加关键字“constant”即“变量名 constant 类型 := 值”,声明常量必须赋值。

 

属性类型:

属性类型有%Type、%RowType。应该了解的常见类型有:number(整型和浮点)、char、varchar2(可变长度)、date、boolean、binary_integer(整型)。“%Type”用于引用表格字段的类型,用法“表名.列名%Type”。

declare
  name varchar2(20) := "数据库";
  i constant number :=3;
  salary emp.sal%type:=1000;
begin
  dbms_output.put_line(name || "hahhah");
end;

record类型,就像定义C#中的类

declare
  type student is record(
  stuid emp.empno%type,
  stuname emp.ename%type
  );
  stu student;
begin
  stu.stuid:=11;
  stu.stuname:="bibi";
  dbms_output.put_line("学号" || stu.stuid);
end;

%rowtype ,就是一种引用表的record类型。

declare
  stu emp%rowtype; --emp是一个表,使用rowtype获取表的行类型。stu其实就是record类型
begin
  stu.empno := 5555;
  stu.ename := "bibi";
  dbms_output.put_line(stu.empno || stu.ename);
  select * into stu from emp where empno=7369;
   dbms_output.put_line(stu.empno || stu.ename);
end;

 table类型,类似C#的字典类型。

declare
  type myTable is table of number index by binary_integer;
  tableone myTable;
  x number;
begin
  tableone(0) := 100;
  tableone(1) := 200;
  tableone(2) := 200;
  tableone(4) := 200;
  tableone(3) := 200;
  dbms_output.put_line(tableone(0) || tableone(1));
  x := tableone.first(); --获取第一个key
  dbms_output.put_line("第一个key" || x);
  x := tableone.next(x); --获取当前key的下一个key
  dbms_output.put_line("第一个key的下一个key" ||  x);
  x := tableone.last(); --获取最后一个key 
  dbms_output.put_line("(自动)排序最后的一个key" || x);
end;

变量作用域:

declare
  i number := 90;
begin
  declare
  j number :=100;
  begin
    dbms_output.put_line(j); --使用内层变量
    dbms_output.put_line(i); --使用外层变量
    end;
end;

if分支:if...elsif..else ;if...;if...else..;if....elsif...elsif...各种组合。

declare
  i number := 10;
begin
  if i > 30 then
    dbms_output.put_line("ok啊");
  elsif i > 5 then  -- 注意是 elsif
    dbms_output.put_line("也ok啊");
  else --注意没有then
    dbms_output.put_line("不ok啊");
  end if;
end;
/

declare
  i number := 10;
begin
  if i > 30 then
    dbms_output.put_line("ok啊"); 
  else --注意没有then
    dbms_output.put_line("不ok啊");
  end if;
end;
/

declare
  i number := 10;
begin
  if i > 30 then
    dbms_output.put_line("ok啊");   
  end if;
end;
/

null值不参与比较运算,不会出现运算结果。如果用在if比较判断分支里,只能进else。

简单循环:loop...exit when;... end loop;要写退出条件,不然会陷入死循环。

declare
  i number := 0;
begin
  loop
    dbms_output.put_line(i);
    i := i + 1;
    exit when i = 10; --不写退出条件,会陷入死循环。
    --i := i + 1; 也可以在这里写条件
  end loop;
end;

普通循环:使用while,条件前置了。

declare
  i number := 0;
begin
  while i < 100 loop
    if mod(i, 2) = 0 then
      dbms_output.put_line(i);
    end if;
    i := i + 1;
  end loop;
end;

for循环:for的变量只能自增。但使用reverse,可以反转增长的序列。

begin
  for i in 1 .. 10 loop
    dbms_output.put_line(i);
  end loop;
end;
/
begin
  for i in reverse 1 .. 10 loop
    dbms_output.put_line(i);
  end loop;
end;
/

多重循环:如果要退出外层循环,应给外层循环起别名,“exit 外层循环”,纯粹的exit只能退出当前循环。

declare
  x number := 1;
  y number := 1;
begin
  <<wai>>
  while x <= 10 loop
    dbms_output.put_line("----" || x);
    y := 1;
    while y <= 5 loop
      dbms_output.put_line(y);
      if x = 7 and y = 3 then
        exit wai; --退出外层循环
      end if;
      y := y + 1;
    end loop;
    x := x + 1;
  end loop;
end;

goto:跳转,绕道而行。

begin
  dbms_output.put_line("1");
  dbms_output.put_line("2");
  dbms_output.put_line("3");
  goto hi;
  dbms_output.put_line("4");
  dbms_output.put_line("5");
  <<hi>>
  dbms_output.put_line("6");
  dbms_output.put_line("7");
end;
begin
  dbms_output.put_line("1");
  dbms_output.put_line("2");
  dbms_output.put_line("3");
  goto hi;
  dbms_output.put_line("4");
  dbms_output.put_line("5");
  <<hi>>
  null; 
end;

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle(PLSQL)入门学习七

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Oracle(PLSQL)入门学习七

学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=74设计数据库步骤:良好的数据库设计:节省空间,数据完整,方便开发。步骤:1、收集信息 2、标识实体 3、标识实体属性 4、标识实体之间的关系 5、画E-R图
Oracle(PLSQL)入门学习七
2017-10-20

Oracle(PLSQL)入门学习八(完结篇)

学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=75游标cursor:用于存放多条数据的容器。需要开始open和关闭close。游标下移使用“fetch...into...”。declare cursor
Oracle(PLSQL)入门学习八(完结篇)
2022-04-06

Oracle入门学习四

上一篇:Oracle入门学习三学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=35Oracle表连接:内连接、外连接。外连接分左连接、右连接。多表查询时,如果表之间没有条件关联,则会把所有匹配的结果查找出来
Oracle入门学习四
2017-05-24

Oracle入门学习五

学习视频: https://www.bilibili.com/video/BV1tJ411r7EC?p=35数据的完整性:保证插入表格的数据必须正确。包括实体完整性、区域完整性、引用完整性、自定义完整性。约束:约束的作用是为了保证数据的完整性,类型包括主键约束
Oracle入门学习五
2022-04-01

Oracle入门学习一

oracle的安装,用户授权,表格操作,数据类型,ddl表格,dml数据。下一篇:Oracle入门学习二学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=15安装教程附带百度云安装包:https://blog
Oracle入门学习一
2018-09-30

Oracle入门学习二

上一篇:Oracle入门学习一学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=15算术运算符:+ - * /逻辑运算符:and or not比较运算符:“=”、“”、“=”、“”、“!=”。注意“=”是等于
Oracle入门学习二
2014-07-13

Oracle入门学习三

上一篇:Oracle入门学习二学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=26字符串函数:length、upper、lower、initcap、 concat、instr、replace。-- dual
Oracle入门学习三
2021-08-20

Oracle入门学习六

事务:把一组操作看做一个工作单元,要么都执行,要么都不执行。dml操作才有事务,查询没有事务。开始事务:从上一次的事务结束之后,从第一次dml操作,就自动开启了事务提交事务:commit回滚事务:rollbackcreate table bank(id num
Oracle入门学习六
2021-12-10

Oracle学习(一) --- 入门安装

1.2、特点:1.2.1、完整的数据管理功能1)数据的大量性2)数据的保存的持久性3)数据的共享性4)数据的可靠性1.2.2、完备关系的产品1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;2)保证访问的准则3)视图更新准
Oracle学习(一) --- 入门安装
2019-05-09

MySQL入门学习

数据库的好处 1.持久存到本地 2.可以实现结构化查询,方便管理 数据库相关概念 1.DB:数据库,保存一组有组织的数据的融通器 2.DBMS:数据库管理系统,又称数据库软件(产品),用于管理DB中的数据 3.
MySQL入门学习
2015-02-25

python入门学习

首先在官网下载好python3.6及以上的版本,根据自己的系统选择:没有显示64位的就是32位的安装包,选择蓝线的能够直接打开在控制台输入python,配置成功的图片如下:从IDLE打开python输入指令 print("I love py
2023-01-31

Node.js学习入门

开始之前,安利一本正在看的书《站在两个世界的边缘》,作者程浩,上帝丢给他太多理想,却忘了给他完成理想的时间。OK,有兴趣的可以看一看。 node.js如标题一样,我也是刚开始接触,大家一起学习,有不当的地方望指正。node.js是做什么的,
2022-06-04

Python入门学习(六)

在熟悉了Python中常用的一些内置函数, 那接下来我们定义一个自己的函数吧def add(x, y): return x + y函数函数语法def functonname(parameters): ... return
2023-01-31

Django 入门学习(3)

在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当于一个内置的ORM框架。settings.py 默认已经绑定了sqlite3DA
2023-01-31

数据库学习之七:MySQL 客户端工具及SQL入门

七、MySQL 客户端工具及SQL入门1、课程大纲:mysql客户端命令介绍;mysql获取帮助的方法细讲;DDL语句之管理数据库;DDL语句之管理表与案例介绍;DML语句之管理表中的数据;SELECT 检索数据;2、mysql接口程序使用及SQL入门mysq
数据库学习之七:MySQL 客户端工具及SQL入门
2020-12-22

Oracle学习(七) --- MyBatis操作、JDBC操作

1、MyBatis操作1.1、环境搭建步骤一:创建项目 test_oracle步骤二:修改pom.xml文件(MyBatis相关依赖、Oracle驱动、测试依赖) changgou3_parent_java78 com.cz
Oracle学习(七) --- MyBatis操作、JDBC操作
2017-02-22

Python基础学习入门

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。在命令行窗口输入"python" 命令来查看本地是否已经安装Python以及Python的安装版本Python下载Python官网:http://www.python.or
2023-06-02

Python 入门学习笔记

1 安装Anaconda和jupyter notebook 之前没有听说过这两个名词,然后看完介绍,按照我自己的理解,Anaconda是一个集合很多环境和模块的存储地方。 Jupyter notebook 就是一个可以在此环境里打代码的地方
2023-01-30

Python入门学习之operator-

本模块主要包括一些Python内部操作符对应的函数。这些函数主要分为几类:对象比较、逻辑比较、算术运算和序列操作。操作 语法函数相加a + b add(a, b)字符串拼接seq1 + seq2concat(seq1, seq2)包含测试o
2023-01-31

编程热搜

目录