PLSQL 基础数据类型

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
posted @ 2023-12-09 21:02  osbreak  阅读(135)  评论(0编辑  收藏  举报