惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
IT之家
IT之家
C
Check Point Blog
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
M
MIT News - Artificial intelligence
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
F
Fortinet All Blogs
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

博客园 - osbreak

ros2::tf2 QML::qml与c++数据交互 k8s:: Service 管理 deployment postgresql 索引 postgresql 基本类型 postgresql 基础运维 PLSQL 触发器 PLSQL 程序包 PLSQL 执行块 PLSQL oracle安装部署 mysql事务与隔离 mysql慢查询分析 mysql建增删改查 mysql常用总结 (9)libevent 常用设置 (8)libevent 构建libevent http服务,支持文件下载 (7)libevent filter(过滤器) (6)libevent定时器 (5)libevent evbuffer
PLSQL 基础数据类型
osbreak · 2023-12-09 · via 博客园 - osbreak

1.DCML概念

DDL:用来定义和管理数据库中的对象

CREAT TABLE /创建表/
ALTER TABLE /修改表的属性/
DROP TABLE /删除表/

DML:用来操作数据库中的对象和数据,是T-SQL中最常用的部分。

SELECT /从一个表或多个表中检索数据/
DELETE /从表中删除数据/
INSERT /向一个表中添加数据/
UPDATE /修改表中已有的数据/

DCL:用来控制用户对数据库对象操作的权限。

GRANT /授予权限/
REVOKE /回收所授予的权限/

2.Oracle 数据类型

1.1 字符数据类型

  • CHAR 数据类型存储字母数字值,列长度可以是 1 到 2000 个字节。
  • VARCHAR2 存储字母数字值,大小在1至4000个字节范围内。
  • LONG 存储可变长度字符数据,最多能存储 2GB。

1.2 二进制数据类型

  • RAW 数据类型用于存储二进制数据,最多能存储 2000 字节。
  • LONG RAW 数据类型用于存储可变长度的二进制数据,最多能存储 2 GB。

1.3 LOB 称为“大对象”数据类型,用于存储大文本、图像、视频剪辑和声音剪辑等非结构化数据

  • LOB 数据类型可存储最大 4GB 的数据
  • BLOB 将大型二进制对象存储在数据库中
  • CLOB 将大型字符数据存储在数据库中
  • NCLOB 存储大型UNICODE字符数据
  • BFILE 将大型二进制对象存储在操作系统文件中

2.PLSQL 数据类型

2.1 标量类型:提供表示表中一行的记录类型

  • 数字
BINARY_INTEGER:存储有符号整数,所需存储空间少于NUMBER类型值。
NUMBER:存储整数、实数和浮点数。
PLS_INTEGER:存储有符号整数,可使算术计算快速而有效。
  • 字符

  • 布尔型

用于存储逻辑值(TRUE、FALSE和NULL)
不能向数据库中插入BOOLEAN数据
不能将列值保存到BOOLEAN变量中
只能对BOOLEAN变量执行逻辑操作
  • 日期时间
DATE
TIMESTAMP  可以用于时间运算

2.2 LOB类型:存储非结构化数据块

  • BFILE
  • BLOB
  • CLOB
  • NCLOB
SET SERVEROUTPUT ON
DECLARE
  clob_var   CLOB;
  amount     INTEGER;
  offset     INTEGER;
  output_var VARCHAR2(100);
BEGIN
  SELECT chapter_text INTO clob_var FROM my_book_text WHERE chapter_id=5;
  amount := 24;  -- 要读取的字符数
  offset := 1;   -- 起始位置
  DBMS_LOB.READ(clob_var, amount, offset, output_var);
  DBMS_OUTPUT.PUT_LINE(output_var);
END;

2.3 属性类型:提供表示表中一行的记录类型

%TYPE 引用变量和数据库列的数据类型
%ROWTYPE 提供表示表中一行的记录类型

2.4 变量赋值

定义用户变量
SQL>DEFINE deptname = sales;
显示变量:
SQL>DEFINE deptname;
DEFINE deptname	= "sales" (CHAR) 
释放变量:
UNDEFINE deptname;

当使用DEFINE命令来定义一个包含空格的变量时,要用单引号将该变量括起来。
SQL>SELECT * 
FROM   dept 
WHERE  dname = UPPER('&deptname');
使用赋值语句 :=
使用 SELECT INTO 语句

2.5 替换变量

使用带有一个&号的变量值来提示用户输入一个值.
SET VERIFY ON
SQL> SELECT	empno, ename, sal, deptno
FROM	emp
WHERE	empno = &employee_num;

Enter value for employee_num: 7369

使用 SET VERIFY 命令:显示用某个具体值替换变量名之前和之后的命令文本
old   3: WHERE empno = &employee_num
new   3: WHERE empno = 7369
使用单引号标志替换变量中的日期和字串值
SELECT ename, deptno, sal*12
FROM   emp
WHERE  job='&job_title';
使用带有两个&的变量可以使得该变量可以重复使用,而不必在每次使用时提醒用户输入.
SELECT	empno, ename, job, &&column_name
FROM	emp
ORDER BY	&column_name;

Enter value for column_name: deptno