广告
返回顶部
首页 > 资讯 > 数据库 >Oracle(PLSQL)入门学习七
  • 210
分享到

Oracle(PLSQL)入门学习七

Oracle(PLSQL)入门学习七 2017-10-20 17:10:00 210人浏览 猪猪侠
摘要

学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=74 设计数据库步骤: 良好的数据库设计:节省空间,数据完整,方便开发。 步骤:1、收集信息 2、标识实体 3、标识实体属性 4

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;

 

您可能感兴趣的文档:

--结束END--

本文标题: Oracle(PLSQL)入门学习七

本文链接: https://www.lsjlt.com/news/5895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Oracle(PLSQL)入门学习七
    学习视频:https://www.bilibili.com/video/BV1tJ411r7ECp=74 设计数据库步骤: 良好的数据库设计:节省空间,数据完整,方便开发。 步骤:1、收集信息 2、标识实体 3、标识实体属性 4、...
    99+
    2017-10-20
    Oracle(PLSQL)入门学习七
  • Oracle(PLSQL)入门学习八(完结篇)
    学习视频:https://www.bilibili.com/video/BV1tJ411r7ECp=75 游标cursor:用于存放多条数据的容器。需要开始open和关闭close。游标下移使用“fetch...into...”。...
    99+
    2022-04-06
    Oracle(PLSQL)入门学习八(完结篇)
  • Oracle入门学习三
    上一篇:Oracle入门学习二 学习视频:https://www.bilibili.com/video/BV1tJ411r7ECp=26 字符串函数:length、upper、lower、initcap、 concat、instr...
    99+
    2021-08-20
    Oracle入门学习三
  • Oracle入门学习五
    学习视频: https://www.bilibili.com/video/BV1tJ411r7ECp=35 数据的完整性:保证插入表格的数据必须正确。包括实体完整性、区域完整性、引用完整性、自定义完整性。 约束:约束的作用是为了保...
    99+
    2022-04-01
    Oracle入门学习五
  • Oracle入门学习六
    事务:把一组操作看做一个工作单元,要么都执行,要么都不执行。dml操作才有事务,查询没有事务。 开始事务:从上一次的事务结束之后,从第一次dml操作,就自动开启了事务 提交事务:commit 回滚事务:rollback cr...
    99+
    2021-12-10
    Oracle入门学习六
  • Oracle入门学习一
    oracle的安装,用户授权,表格操作,数据类型,ddl表格,dml数据。 下一篇:Oracle入门学习二 学习视频:https://www.bilibili.com/video/BV1tJ411r7ECp=15 安装教程附带...
    99+
    2018-09-30
    Oracle入门学习一
  • Oracle入门学习二
    上一篇:Oracle入门学习一 学习视频:https://www.bilibili.com/video/BV1tJ411r7ECp=15 算术运算符:+ - * / 逻辑运算符:and or not 比较运算符:“=”、“”、“=...
    99+
    2014-07-13
    Oracle入门学习二
  • Oracle入门学习四
    上一篇:Oracle入门学习三 学习视频:https://www.bilibili.com/video/BV1tJ411r7ECp=35 Oracle表连接:内连接、外连接。外连接分左连接、右连接。 多表查询时,如果表之间没有条件...
    99+
    2017-05-24
    Oracle入门学习四
  • Oracle学习(一) --- 入门安装
    1.2、特点: 1.2.1、完整的数据管理功能 1)数据的大量性 2)数据的保存的持久性 3)数据的共享性 4)数据的可靠性 1.2.2、完备关系的产品 1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示...
    99+
    2019-05-09
    Oracle学习(一) --- 入门安装
  • Oracle专题11之PLSQL入门
    1、PLSQL工具 PL/SQL Developer的简介:PL/SQL Developer是一种专门用于开发、测试、调试和优化Oracle PL/SQL的一种工具,更是一个非常好用的Oracle的管理工...
    99+
    2022-10-18
  • python入门学习
    首先在官网下载好python3.6及以上的版本,根据自己的系统选择:没有显示64位的就是32位的安装包,选择蓝线的能够直接打开 在控制台输入python,配置成功的图片如下: 从IDLE打开python输入指令 print("I lo...
    99+
    2023-01-31
    入门 python
  • MySQL入门学习
    ...
    99+
    2015-02-25
    MySQL入门学习
  • Node.js学习入门
    开始之前,安利一本正在看的书《站在两个世界的边缘》,作者程浩,上帝丢给他太多理想,却忘了给他完成理想的时间。OK,有兴趣的可以看一看。 node.js如标题一样,我也是刚开始接触,大家一起学习,有不当的地方...
    99+
    2022-06-04
    入门 Node js
  • 数据库学习之七:MySQL 客户端工具及SQL入门
    七、MySQL 客户端工具及SQL入门 1、课程大纲: mysql客户端命令介绍; mysql获取帮助的方法细讲; DDL语句之管理数据库; DDL语句之管理表与案例介绍; DML语句之管理表中的数据; SELECT 检索...
    99+
    2020-12-22
    数据库学习之七:MySQL 客户端工具及SQL入门
  • Django 入门学习(3)
    在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当于一个内置的ORM框架。settings.py 默认已经绑定了sqlite3DA...
    99+
    2023-01-31
    入门 Django
  • Python入门学习(六)
    在熟悉了Python中常用的一些内置函数, 那接下来我们定义一个自己的函数吧 def add(x, y): return x + y 函数 函数语法 def functonname(parameters): ... ...
    99+
    2023-01-31
    入门 Python
  • Oracle学习(七) --- MyBatis操作、JDBC操作
    1、MyBatis操作 1.1、环境搭建 步骤一:创建项目 test_oracle 步骤二:修改pom.xml文件(MyBatis相关依赖、Oracle驱动、测试依赖) changgou3_paren...
    99+
    2017-02-22
    Oracle学习(七) --- MyBatis操作 JDBC操作
  • menuconfig与Kconfig入门学习
    概述 menuconfig是Linux平台用于管理代码工程、模块及功能的实用工具。 menuconfig的使用方式通常是在编译系统之前在系统源代码根目录下执行make menuconfig命令从而打开...
    99+
    2023-09-13
    学习 linux 服务器
  • 【Java】学习《入门偏》(2)
    ⭐简单说两句⭐ 作者:后端小知识 CSDN个人主页:后端小知识 🔎GZH:后端小知识 🎉欢迎关注🔎点赞👍收藏⭐️留言...
    99+
    2023-10-21
    java 学习 开发语言 后端
  • PyTorch 深度学习入门
    💂 个人网站:【 海拥】【萌怪大冒险】【2048】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的...
    99+
    2023-09-25
    pytorch 深度学习 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作