- Access 教程
- 关于 Microsoft Access - Access 教程
- Access 创建数据库 - Access 教程
- Access 创建表 - Access 教程
- Access 设计视图 - Access 教程
- Access 添加数据 - Access 教程
- Access 创建表单 - Access 教程
- Access 修改表单 - Access 教程
- Access 创建查询 - Access 教程
- Access 修改查询 - Access 教程
- Access 创建关联关系 - Access 教程
- Access SQL 视图 - Access 教程
- Access 创建宏 - Access 教程
- Access 数据库导出到 excel - Access 教程
- DB2 教程
- DB2 服务器安装 - DB2 教程
- DB2 实例 - DB2 教程
- DB2 数据库 - DB2 教程
- DB2 缓冲池 - DB2 教程
- DB2 表空间 - DB2 教程
- DB2 存储组 - DB2 教程
- DB2 模式 - DB2 教程
- DB2 数据类型 - DB2 教程
- DB2 表 - DB2 教程
- DB2 别名/alias - DB2 教程
- DB2 约束 - DB2 教程
- DB2 索引 - DB2 教程
- DB2 触发器 - DB2 教程
- DB2 序列 - DB2 教程
- DB2 视图 - DB2 教程
- DB2 与 XML - DB2 教程
- DB2 备份和恢复 - DB2 教程
- DB2 数据库安全 - DB2 教程
- DB2 角色 - DB2 教程
- DB2 LDAP - DB2 教程
- Hadoop 教程
- Hadoop 大数据解决方案 - Hadoop 教程
- Hadoop 介绍快速入门 - Hadoop 教程
- Hadoop 安装 - Hadoop 教程
- Hadoop HDFS 入门 - Hadoop 教程
- MapReduce 简介和入门 - Hadoop 教程
- Hadoop 程序入门实践 - Hadoop 教程
- HBase 教程
- HBase 架构 - HBase 教程
- HBase 安装 - HBase 教程
- HBase Shell - HBase 教程
- HBase 常用命令 - HBase 教程
- HBase Admin API - HBase 教程
- HBase 创建表 - HBase 教程
- HBase 列出表 - HBase 教程
- HBase 禁用表 - HBase 教程
- HBase 启用表 - HBase 教程
- HBase 表描述和修改 - HBase 教程
- HBase Exists - HBase 教程
- HBase 删除表 - HBase 教程
- HBase 关闭 - HBase 教程
- HBase 客户端 API - HBase 教程
- HBase 创建数据 - HBase 教程
- HBase 更新数据 - HBase 教程
- HBase 读取数据 - HBase 教程
- HBase 删除数据 - HBase 教程
- HBase 扫描 - HBase 教程
- HBase 计数和截断 - HBase 教程
- HBase 安全 - HBase 教程
- Hive 教程
- Hive 安装 - Hive 教程
- Hive 数据类型 - Hive 教程
- Hive 创建数据库 - Hive 教程
- Hive 删除数据库 - Hive 教程
- Hive 创建表 - Hive 教程
- Hive 修改表 - Hive 教程
- Hive 删除表 - Hive 教程
- Hive 分区 - Hive 教程
- Hive 内置运算符 - Hive 教程
- Hive 内置函数 - Hive 教程
- Hive 视图和索引 - Hive 教程
- HiveQL Select Where - Hive 教程
- HiveQL Select Order By - Hive 教程
- HiveQL Select Group By - Hive 教程
- HiveQL Select Join - Hive 教程
- Memcached 教程
- Memcached 入门
- Memcached 简介
- Memcached 安装
- Memcached 连接
- Memcached 存储命令
- Memcached set 命令
- Memcached add 命令
- Memcached replace 命令
- Memcached append 命令
- Memcached prepend 命令
- Memcached CAS 命令
- Memcached 查找命令
- Memcached get 命令
- Memcached gets 命令
- Memcached delete 命令
- Memcached incr 与 decr 命令
- Memcached 统计命令
- Memcached stats 命令
- Memcached stats items 命令
- Memcached stats slabs 命令
- Memcached stats sizes 命令
- Memcached flush_all 命令
- Memcached 实例
- Java 连接 Memcached 服务
- PHP 连接 Memcached 服务
- MongoDB 教程
- NoSQL 简介
- 什么是 MongoDB ?
- window 平台安装 MongoDB
- Linux 平台安装 MongoDB
- MongoDB 数据库,对象,集合
- MongoDB - 连接
- PHP 安装 MongoDB 扩展驱动
- MongoDB 数据插入
- MongoDB 使用 update() 函数更新数据
- MongoDB 使用- remove() 函数删除数据
- MongoDB 查询
- MongoDB 条件操作符
- MongoDB 条件操作符 - $type
- MongoDB Limit 与 Skip 方法
- MongoDB 排序
- MongoDB 索引
- MongoDB 聚合
- MongoDB 复制(副本集)
- MongoDB 分片
- MongoDB 备份(mongodump) 与恢复(mongorerstore)
- MongoDB 监控
- MongoDB Java
- MongoDB PHP
- MongoDB 关系
- MongoDB 数据库引用
- MongoDB 覆盖索引查询
- MongoDB 查询分析
- MongoDB 原子操作
- MongoDB 高级索引
- MongoDB 索引限制
- MongoDB ObjectId
- MongoDB Map Reduce
- MongoDB 全文检索
- MongoDB 正则表达式
- MongoDB 管理工具: Rockmongo
- MongoDB GridFS
- MongoDB 固定集合(Capped Collections)
- MongoDB 自动增长
- MySQL 教程
- MySQL 教程
- MySQL 安装
- MySQL 管理
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- MySQL 排序
- Mysql Join 的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER 命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- MySQL 元数据
- MySQL 序列使用
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- PL/SQL 教程
- PL/SQL 环境安装设置 - PL/SQL 教程
- PL/SQL 基本语法 - PL/SQL 教程
- PL/SQL 数据类型 - PL/SQL 教程
- PL/SQL 变量 - PL/SQL 教程
- PL/SQL 常量和文字 - PL/SQL 教程
- PL/SQL 运算符 - PL/SQL 教程
- PL/SQL 条件控制 - PL/SQL 教程
- PL/SQL 循环 - PL/SQL 教程
- PL/SQL 字符串 - PL/SQL 教程
- PL/SQL 数组 - PL/SQL 教程
- PL/SQL 过程 - PL/SQL 教程
- PL/SQL 函数 - PL/SQL 教程
- PL/SQL 游标 - PL/SQL 教程
- PL/SQL 记录 - PL/SQL 教程
- PL/SQL 异常 - PL/SQL 教程
- PL/SQL 触发器 - PL/SQL 教程
- PL/SQL 包 - PL/SQL 教程
- PL/SQL 集合 - PL/SQL 教程
- PL/SQL 事务 - PL/SQL 教程
- PL/SQL 日期及时间 - PL/SQL 教程
- PL/SQL DBMS 输出 - PL/SQL 教程
- PL/SQL 面向对象 - PL/SQL 教程
- Redis 教程
- Redis 简介
- Redis 安装
- Redis 配置
- Redis 数据类型
- Redis 命令
- Redis 数据备份与恢复
- Redis 安全
- Redis 性能测试
- Redis 客户端连接
- Redis 管道技术
- Redis 分区
- Java 使用 Redis
- PHP 使用 Redis
- Redis 命令参考
- Key(键)
- DEL
- DUMP
- EXISTS
- EXPIRE
- EXPIREAT
- KEYS
- MIGRATE
- MOVE
- OBJECT
- PERSIST
- PEXPIRE
- PEXPIREAT
- PTTL
- RANDOMKEY
- RENAME
- RENAMENX
- RESTORE
- SORT
- TTL
- TYPE
- SCAN
- String(字符串)
- APPEND
- BITCOUNT
- BITOP
- DECR
- DECRBY
- GET
- GETBIT
- GETRANGE
- GETSET
- INCR
- INCRBY
- INCRBYFLOAT
- MGET
- MSET
- MSETNX
- PSETEX
- SET
- SETBIT
- SETEX
- SETNX
- SETRANGE
- STRLEN
- Hash(哈希表)
- HDEL
- HEXISTS
- HGET
- HGETALL
- HINCRBY
- HINCRBYFLOAT
- HKEYS
- HLEN
- HMGET
- HMSET
- HSET
- HSETNX
- HVALS
- HSCAN
- List(列表)
- BLPOP
- BRPOP
- BRPOPLPUSH
- LINDEX
- LINSERT
- LLEN
- LPOP
- LPUSH
- LRANGE
- LREM
- LSET
- LTRIM
- RPOP
- RPOPLPUSH
- RPUSH
- RPUSHX
- Set(集合)
- SADD
- SCARD
- SDIFF
- SDIFFSTORE
- SINTER
- SINTER
- SINTERSTORE
- SISMEMBER
- SMEMBERS
- SMOVE
- SPOP
- SRANDMEMBER
- SREM
- SUNION
- SUNIONSTORE
- SSCAN
- SortedSet(有序集合)
- ZADD
- ZCARD
- ZCOUNT
- ZINCRBY
- ZRANGE
- ZRANGEBYSCORE
- ZRANK
- ZREM
- ZREMRANGEBYRANK
- ZREMRANGEBYSCORE
- ZREVRANGE
- ZREVRANGEBYSCORE
- ZREVRANK
- ZSCORE
- ZUNIONSTORE
- ZINTERSTORE
- ZSCAN
- Pub/Sub(发布/订阅)
- PSUBSCRIBE
- PUBLISH
- PUBSUB
- PUNSUBSCRIBE
- SUBSCRIBE
- UNSUBSCRIBE
- Transaction(事务)
- DISCARD
- EXEC
- MULTI
- UNWATCH
- WATCH
- Script(脚本)
- EVAL
- EVALSHA
- SCRIPT EXISTS
- SCRIPT FLUSH
- SCRIPT KILL
- SCRIPT LOAD
- Connection(连接)
- AUTH
- ECHO
- PING
- QUIT
- SELECT
- Server(服务器)
- BGREWRITEAOF
- BGSAVE
- CLIENT GETNAME
- CLIENT KILL
- CLIENT LIST
- CLIENT SETNAME
- CONFIG GET
- CONFIG RESETSTAT
- CONFIG REWRITE
- CONFIG SET
- DBSIZE
- DEBUG OBJECT
- DEBUG SEGFAULT
- FLUSHALL
- FLUSHDB
- INFO
- LASTSAVE
- MONITOR
- PSYNC
- SAVE
- SHUTDOWN
- SLAVEOF
- SLOWLOG
- SYNC
- TIME
- SQL 教程
- SQL 基础
- SQL 简介
- SQL 语法
- SQL SELECT 语句
- SQL SELECT DISTINCT 语句
- SQL WHERE 子句
- SQL AND & OR 运算符
- SQL ORDER BY 子句
- SQL INSERT INTO 语句
- SQL UPDATE 语句
- SQL DELETE 语句
- SQL 高级
- SQL TOP 子句
- SQL LIKE 操作符
- SQL 通配符
- SQL IN 操作符
- SQL BETWEEN 操作符
- SQL Alias(别名)
- SQL JOIN
- SQL INNER JOIN 关键字
- SQL LEFT JOIN 关键字
- SQL RIGHT JOIN 关键字
- SQL FULL JOIN 关键字
- SQL UNION 和 UNION ALL 操作符
- SQL SELECT INTO 语句
- SQL CREATE DATABASE 语句
- SQL CREATE TABLE 语句
- SQL 约束 (Constraints)
- SQL NOT NULL 约束
- SQL UNIQUE 约束
- SQL PRIMARY KEY 约束
- SQL FOREIGN KEY 约束
- SQL CHECK 约束
- SQL DEFAULT 约束
- SQL CREATE INDEX 语句
- SQL 撤销索引、表以及数据库
- SQL ALTER TABLE 语句
- SQL AUTO INCREMENT 字段
- SQL VIEW(视图)
- SQL 函数
- SQL Date 函数
- SQL NULL 值
- SQL NULL 函数
- SQL 数据类型
- SQL 服务器 - RDBMS
- SQL 函数
- SQL AVG 函数
- SQL COUNT() 函数
- SQL FIRST() 函数
- SQL LAST() 函数
- SQL MAX() 函数
- SQL MIN() 函数
- SQL SUM() 函数
- SQL GROUP BY 语句
- SQL HAVING 子句
- SQL UCASE() 函数
- SQL LCASE() 函数
- SQL MID() 函数
- SQL LEN() 函数
- SQL ROUND() 函数
- SQL NOW() 函数
- SQL FORMAT() 函数
- SQL 快速参考
- SQLite 教程
- SQLite 基础
- SQLite 简介
- SQLite 安装
- SQLite 命令
- SQLite 语法
- SQLite 数据类型
- SQLite 创建数据库
- SQLite 附加数据库
- SQLite 分离数据库
- SQLite 创建表
- SQLite 删除表
- SQLite Insert 语句
- SQLite Select 语句
- SQLite 运算符
- SQLite 表达式
- SQLite Where 子句
- SQLite AND/OR 运算符
- SQLite Update 语句
- SQLite Delete 语句
- SQLite Like 子句
- SQLite Glob 子句
- SQLite Limit 子句
- SQLite Order By
- SQLite Group By
- SQLite Having 子句
- SQLite Distinct 关键字
- SQLite 高级
- SQLite PRAGMA
- SQLite 约束
- SQLite Joins
- SQLite Unions 子句
- SQLite NULL 值
- SQLite 别名
- SQLite 触发器(Trigger)
- SQLite 索引(Index)
- SQLite Indexed By
- SQLite Alter 命令
- SQLite Truncate Table
- SQLite 视图(View)
- SQLite 事务(Transaction)
- SQLite 子查询
- SQLite Autoincrement(自动递增)
- SQLite 注入
- SQLite Explain(解释)
- SQLite Vacuum
- SQLite 日期 & 时间
- SQLite 常用函数
- SQLite 接口
- SQLite - C/C++
- SQLite - Java
- SQLite - PHP
- SQLite - Perl
- SQLite - Python
- SQL Server 教程
- 关于 Microsoft SQL Server - SQL Server 教程
- SQL Server 2014 版 - SQL Server 教程
- SQL Server 安装 - SQL Server 教程
- Windows2012 R2 上安装.NET3.5 框架 - SQL Server 教程
- SQL Server 管理套件(SSMS) - SQL Server 教程
- SQL Server 创建数据库 - SQL Server 教程
- SQL Server 创建表 - SQL Server 教程
- SQL Server 添加数据 - SQL Server 教程
- SQL Server SQL 脚本 - SQL Server 教程
- SQL Server 查询设计器 - SQL Server 教程
- SQL Server 视图 - SQL Server 教程
- SQL Server 存储过程 - SQL Server 教程
- SQL Server 服务器角色 - SQL Server 教程
- SQL Server 数据库模式 - SQL Server 教程
- SQL Server 链接服务器 - SQL Server 教程
PL/SQL 变量 - PL/SQL 教程
变量是只不过是一个给定的存储区域,程序可以操纵的名称。PL/SQL 每个变量具有一个特定的数据类型,它决定了大小和变量的存储器的值,可以说存储器和设置操作可以施加到可变内被存储的范围内。
一个 PL/SQL 变量的名称由一个字母后面可以跟多个字母,数字,美元符号,下划线和数字符号,并不得超过 30 个字符。默认情况下,变量名是不区分大小写。不能使用 PL/SQL 保留关键字作为变量名称。
PL/SQL 编程语言允许定义各种类型的变量,如,日期时间,记录,集合等数据类型将在本章后面的章节涉及,这里只研究的基本变量类型。
PL/SQL 变量声明
PL/SQL 变量必须在声明部分或包作为一个全局变量声明。当声明一个变量,PL/SQL 的变量值分配内存并由变量名称标识存储位置。
声明一个变量的语法是:
variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value]
其中,变量名是在 PL/SQL 一个有效的标识符,数据类型必须是有效 PL/SQL 数据类型,或者在上一章中讨论的任何用户定义的数据类型。它们的定义一些有效变量声明如下:
sales number(10, 2);
pi CONSTANT double precision := 3.1415;
name varchar2(25);
address varchar2(100);
当提供一个大小,缩放或精度限制的数据类型,它被称为约束声明。受限声明要比不受约束的声明更少的内存。例如:
sales number(10, 2);
name varchar2(25);
address varchar2(100);
在 PL/SQL 中初始化变量
当声明一个变量,PL/SQL 赋予默认设置为 NULL 值。如果想初始化 NULL 值以外的变量,可以声明中这样做,使用以下两种的:
- 使用 DEFAULT 关键字
- 使用 assignment 操作符
例如:
counter binary_integer := 0;
greetings varchar2(20) DEFAULT 'Have a Good Day';
还可以指定一个变量不应该使用 NOT NULL 约束 NULL 值。如果使用 NOT NULL 约束,必须明确指定该变量的初始值。
这是一个良好的编程习惯适当初始化变量,否则,有时程序会产生意想不到的结果。试试下面的例子中使用各类变量:
DECLARE
a integer := 10;
b integer := 20;
c integer;
f real;
BEGIN
c := a + b;
dbms_output.put_line('Value of c: ' || c);
f := 70.0/3.0;
dbms_output.put_line('Value of f: ' || f);
END;
/
当执行上面的代码,产生以下结果:
Value of c: 30
Value of f: 23.333333333333333333
PL/SQL procedure successfully completed.
PL/SQL 变量的作用域
PL/SQL 块允许嵌套,即,每个程序块可以包括另一内部块。如果变量的内部块内声明,它不能访问外部块。但是,如果一个变量声明并访问外部块,也提供给所有嵌套内部块。有两种类型的变量范围:
- 局部变量 - 在内部块中声明,并不能访问外块中的变量。
- 全局变量 - 在最外层块或包中声明的变量。
下面的例子显示在简单的局部和全局变量的用法:
DECLARE
-- Global variables
num1 number := 95;
num2 number := 85;
BEGIN
dbms_output.put_line('Outer Variable num1: ' || num1);
dbms_output.put_line('Outer Variable num2: ' || num2);
DECLARE
-- Local variables
num1 number := 195;
num2 number := 185;
BEGIN
dbms_output.put_line('Inner Variable num1: ' || num1);
dbms_output.put_line('Inner Variable num2: ' || num2);
END;
END;
/
当执行上面的代码,产生以下结果:
Outer Variable num1: 95
Outer Variable num2: 85
Inner Variable num1: 195
Inner Variable num2: 185
PL/SQL procedure successfully completed.
指定 SQL 查询结果为 PL/SQL 变量
可以使用 SELECT INTO SQL 语句来给 PL/SQL 变量赋值。在 SELECT 列表中的每个项目,必须有在 INTO 列表中相对应,类型兼容的变量。下面的例子说明了这个概念:现在创建一个表名为 CUSTOMERS:
(对于 SQL 语句,请看看 SQL 教程 )
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
Table Created
接下来,就让我们在表中插入一些值:
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );
下面的程序是从上面的表中,使用 SQL 的 SELECT INTO 子句给 PL/SQL 变量赋值:
DECLARE
c_id customers.id%type := 1;
c_name customers.name%type;
c_addr customers.address%type;
c_sal customers.salary%type;
BEGIN
SELECT name, address, salary INTO c_name, c_addr, c_sal
FROM customers
WHERE id = c_id;
dbms_output.put_line
('Customer ' ||c_name || ' from ' || c_addr || ' earns ' || c_sal);
END;
/
当执行上面的代码,产生以下结果:
Customer Ramesh from Ahmedabad earns 2000
PL/SQL procedure completed successfully
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论