SQL PL/SQL基础系列
文章平均质量分 88
主要介绍SQL与PL/SQL 基础操作,简易、便捷、快速入门。
清风智语
十年以上数据库领域一线实战经验,涵盖高可用,灾备中心设计,备份恢复,数据库开发,数据挖掘,数据库设计,性能优化等;其产品服务领域包括Oracle,MySQL,SQLserver,MongoDB等。曾先后服务于晨星资讯,dbadirect,香港易高科技等金融,证券软件行业;并提供企业级数据库性能优化,运维管理相关培训,先后提供培训服务的对象有速尔快递,同洲电子,民太安保险,康拓普,广州电信研究院,中行浙江分行等。
展开
-
SQL基础-->过滤和排序
--=======================================--SQL基础-->过滤和排序--=======================================/*一、使用WHERE字句实现对数据的过滤 用法:SELECT *|{[DISTINCT] column|expression [alias],...} FR原创 2010-04-15 11:10:00 · 9730 阅读 · 3 评论 -
SQL 基础-->SELECT 查询
--================================--SQL 基础-->SELECT 查询--=================================/*一、SQL 结构化查询语言 包括DDL(数据定义语言)、DCL(数据控制语言)、 DQL(数据查询语言)、DML(数据操纵语言) 二、SQL的特点 SQL 语句不区原创 2010-04-15 10:09:00 · 12021 阅读 · 2 评论 -
SQL 基础-->常用函数
--==================================--SQL 基础-->常用函数--==================================/*一、函数的分类 SQL函数一般分为两种 单行函数 基于单行的处理,一行产生一个结果 多行函数 基于多行的处理,对多行进行汇总,多行产生结果 二、函数形式 fu原创 2010-04-16 21:37:00 · 17722 阅读 · 8 评论 -
SQL基础-->分组与分组函数
--=================================--SQL基础-->分组与分组函数--=================================/*一、分组: 分组函数可以对行集进行操作,并且为每组给出一个结果。 使用group by column1,column2,..按columm1,column2进行分组,即column1,co原创 2010-05-05 13:05:00 · 16980 阅读 · 0 评论 -
SQL基础-->多表查询
--==========================--SQL基础-->多表查询--==========================/*一、多表查询 简言之,根据特定的连接条件从不同的表中获取所需的数据 笛卡尔集的产生条件: 省略连接条件 连接条件无效 第一个表中的所有行与第二个表中的所有行相连接原创 2010-05-06 14:08:00 · 126331 阅读 · 4 评论 -
SQL 基础--> 子查询
--=========================--SQL 基础--> 子查询--========================= /*一、子查询 子查询就是位于SELECT、UPDATE、或DELETE语句中内部的查询 二、子查询的分类 单行子查询 返回零行或一行 多行子查询 返回一原创 2010-05-14 15:49:00 · 23203 阅读 · 1 评论 -
SQL 基础--> 集合运算(UNION 与UNION ALL)
--=============================================-- SQL 基础--> 集合运算(UNION 与UNION ALL)--============================================= 集合运算操作符可以将两个或多个查询返回的行组合起来,即集合属于纵向连接运算 一、常用的集合运算符原创 2010-05-20 16:40:00 · 8862 阅读 · 1 评论 -
SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
--======================================================--SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)--====================================================== 层次化查询,即树型结构查询,是SQL中经常用到的功能之一,原创 2010-05-22 20:29:00 · 41098 阅读 · 4 评论 -
SQL 基础--> 视图(CREATE VIEW)
--================================-- SQL 基础--> 视图(CREATE VIEW)--================================ 视图: 从表中抽出来的逻辑上相关的数据集合 视图其实就是一条查询SQL语句,用于显示一个或多个表或其它视图中相关数据。 视图将查询的结果作为一个表来使用,因此视原创 2010-05-28 12:52:00 · 16418 阅读 · 2 评论 -
SQL 基础--> ROLLUP与CUBE运算符实现数据汇总
介绍了使用ROLLUP与CUBE运算符实现数据汇总。原创 2010-06-01 17:16:00 · 13103 阅读 · 1 评论 -
SQL 基础-->创建和管理表
本文介绍了创建表(create table)、创建临时表、修改表(alter table)表的管理等。如添加列,修改列的长度,修改列的数据类型,删除列,将列置为unused。查看表、列的相关信息,truncate table,删除表等。原创 2010-06-23 14:17:00 · 5961 阅读 · 0 评论 -
SQL基础--> 序列(SEQUENCE)、同义词(SYNONYM)
本文详细介绍了如何创建使用序列(CREATE SEQUENCE)、创建使用同义词(CREATE SYNONYM),并给出了具体的示例。原创 2010-06-24 16:25:00 · 13400 阅读 · 0 评论 -
SQL基础--> 约束(CONSTRAINT)
本文介绍了几类不同的约束以及在不同的情况下来实现约束(CONSTRAINT),比如建表时如何创建约束,已经存在的表的约束的添加、删除、启用等等。原创 2010-07-03 22:28:00 · 84379 阅读 · 9 评论 -
SQL基础--> 数据处理(DML、RETURNING、MERGE INTO)
本文介绍了SQL中常用的数据处理DML、RETURNING、MERGE INTO等相关用法。原创 2010-07-04 11:12:00 · 6119 阅读 · 0 评论 -
SQL基础-->数据库事务(TRANSACTION)
本文描述了Oracle中的事务及事务的ACID属性,同时也讲述了COMMIT,ROLLBACK,SAVEPOINT等的使用。原创 2010-07-06 21:21:00 · 14947 阅读 · 2 评论 -
PL/SQL --> 语言基础
PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语言的特征,如循环、条件分支等。同时也具有对象编程语言的特征,如重载、继承等……原创 2010-12-08 16:35:00 · 7882 阅读 · 0 评论 -
PL/SQL --> 流程控制
类似于高级语言,流程控制语句是PL/SQL语言的重要组成部分。这些流程控制语句使得PL/SQL加大了代码的灵活性和多样性,大大简化了程序的编写……原创 2010-12-08 16:41:00 · 5800 阅读 · 0 评论 -
PL/SQL --> 存储过程
存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库。是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出。一个存储过程通常包含定于部分,执行部分,Exception部分,可以被其他子程序调用,也可以被重用……原创 2010-12-08 16:46:00 · 12825 阅读 · 0 评论 -
PL/SQL --> 函数
函数通常用于返回特定的数据。其实质是一个有名字的PL/SQL块,作为一个schema对象存储于数据库,可以被反复执行。函数通常被作为一个表达式来调用或存储过程的一个参数,具有返回值……原创 2010-12-11 14:24:00 · 10969 阅读 · 1 评论 -
PL/SQL --> 游标
游标,映射在结果集中某一行数据的具体位置,类似于C语言中的指针。即通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作……原创 2010-12-15 21:12:00 · 13194 阅读 · 3 评论 -
PL/SQL --> 异常处理(Exception)
Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引入异常处理部分,进行捕捉异常,并根据异常出现的情况进行相应的处理……原创 2010-12-16 14:59:00 · 27801 阅读 · 0 评论 -
替代变量与SQL*Plus环境设置
&变量名、&&变量名, 执行时,如果&变量名,没有赋值的话,会提示输入变量值……原创 2010-12-18 19:40:00 · 7830 阅读 · 0 评论 -
PL/SQL --> PL/SQL记录
PL/SQL记录有着类似于表的数据结构,是一个或多个字段且拥有数据类型的集合体。定义了PL/SQL记录类型之后,可以定义PL/SQL记录变量。声明一个PL/SQL记录变量相当于定义了多个标量变量,简化了变量的声明……原创 2010-12-18 19:54:00 · 10846 阅读 · 0 评论 -
PL/SQL --> 包的创建与管理
包,是一个逻辑集合,是由PL/SQL类型以及PL/SQL子程序的集合。PL/SQL类型包括table类型,record类型。PL/SQL项则包括游标,游标变量。PL/SQL子程序包括过程,函数等。可以说包可谓是包罗万象。是所有PL/SQL相关资源的汇总……原创 2010-12-18 21:07:00 · 12687 阅读 · 1 评论 -
PL/SQL -->隐式游标(SQL%FOUND)
在PL/SQL中,游标的使用分为两种,一种是显示游标,一种是隐式游标,显示游标的使用需要事先使用declare来进行声明,其过程包括声明游标,打开游标,从游标提取数据,关闭游标。该方式多用于处理select语句返回的多行数据的情形。而隐式游标则由则由系统自动定义,当DML被使用时……原创 2010-12-22 16:23:00 · 25900 阅读 · 0 评论 -
PL/SQL --> 包重载、初始化
包的重载功能类似于C++中函数的重载功能,即拥有多个同名的子程序,每个同名子程序使用不同的参数。用户可以传递不同的参数来调用同名但参数不同的子程序,此即为包的重载功能……原创 2010-12-22 16:32:00 · 6639 阅读 · 0 评论 -
PL/SQL --> DBMS_DDL包的使用
为了便于建立性能良好的PL/SQL程序,Oracle提供了大量的系统包供使用。Oracle提供的这些包扩展并增强了数据库的一些功能,以及突破了PL/SQL的一些限制。本文讲述了Oracle提供的包DBMS_DDL,以及其使用方法……原创 2010-12-25 19:54:00 · 9435 阅读 · 0 评论 -
PL/SQL --> DML 触发器
何谓触发器?简言之,是一段命名的PL/SQL代码块,只不过该代码块在特定的条件下被触发并且执行。对于这样的代码我们称之为触发器。触发器根据触发类型的不同又分为不同级别的触发器……原创 2010-12-25 20:01:00 · 6827 阅读 · 0 评论 -
PL/SQL --> INSTEAD OF 触发器
INSTEAD OF 触发器常用于管理编写不可更新的视图,INSTEAD-OF触发器必须是行级的。可以用INSTEAD OF触发器来解释INSERT、UPDATE和DELETE语句,并用备用的程序代码替换那些指令……原创 2010-12-25 20:07:00 · 7190 阅读 · 1 评论 -
PL/SQL --> 动态SQL
使用动态SQL是在编写PL/SQL过程时经常使用的方法之一。很多情况下,比如根据业务的需要,如果输入不同查询条件,则生成不同的执行SQL查询语句,对于这种情况需要使用动态SQL来完成。再比如,对于分页的情况,对于不同的表……原创 2011-01-05 15:06:00 · 13812 阅读 · 2 评论 -
PL/SQL --> 动态SQL的常见错误
动态SQL在使用时,有很多需要注意的地方,如动态SQL语句结尾处不能使用分号(;),而动态PL/SQL结尾处需要使用分号(;),但不能使用正斜杠结尾(/),以及shcema对象不能直接作为变量绑定……原创 2011-01-05 15:18:00 · 11288 阅读 · 3 评论 -
SQL 基础--> NEW_VALUE 的使用
通常的使用方法为: column column_name new_value var_name new_value是将所获得的列值赋予到变量名,然后该变量名可以参与后续处理原创 2011-02-18 11:31:00 · 8496 阅读 · 1 评论 -
查看PL/SQL编译时的错误信息
编译无效对象是DBA与数据库开发人员常见的工作之一。对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法。一、当前数据库版本信息及无效对象 1、查看当前数据库版本 SQL> select * from v$version;原创 2011-10-28 09:27:16 · 17459 阅读 · 0 评论 -
CASE语句与CASE表达式
case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆。本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项。一、简单case语句-->语法CASE SELECTORWHEN EXPRESSION 1 THEN STATEMENT 1;WHEN EXPRESSION 2 THEN STATEMENT 2;.原创 2012-03-10 17:20:46 · 10350 阅读 · 0 评论 -
当心 CREATE TABLE AS
对 DBA 而言,CREATE TABLE AS 可谓是家常便饭,顺手拈来。需不知该方式虽然简单,但疏忽也容易导致意想不到的问题。笔者前阵子就碰上了这样的事情。由于是对原表进行克隆,且数据存储在不同的表空间,因此毫不犹豫地使用了CREATE TABLE AS,结果在运行package时,error...--1、非空约束遗失-->使用create table as 来创建对象scott@CNMM原创 2012-03-16 17:32:41 · 15157 阅读 · 0 评论 -
PL/SQL 联合数组与嵌套表
通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。单列多行数据则由联合数组或嵌套表来完成,其特点是类似于单列数据库表。在Oracle 9i 之前称为PL/SQL索引表,9i 之后称之为联合数组。嵌套表也是集合类型中的一种,下面分别介绍这两种集合数据类型的使用方法。 一、联合数组1、联合数组的特性 类似于一张简单的SQL表,原创 2012-03-20 10:32:58 · 14444 阅读 · 0 评论 -
PL/SQL变长数组
PL/SQL变长数组时PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的。也即是说变长数组的下标固定下限等于1,上限可以扩展。下面给出具体的描述及其使用方法。 一、变长数组语法 TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF -->type_原创 2012-03-23 15:47:29 · 12612 阅读 · 2 评论 -
PL/SQL 集合的初始化与赋值
对于集合类型,与单一的数据类型相比较而言,应该以一个整体的观念来考虑集合,即是一批类型相同的数据组合而非单一的数据。因此集合类型集合的声明、赋值、初始化较之单一类型而言,有很大的不同。尤其是嵌套表与变长数组,在赋值之前必须先初始化。当嵌套表和变长数组在声明时,它们都会自动地被设置成NULL值。也就是嵌套表和变长数组中集合不存在任何元素,并不是针对它所拥有的元素。可以使用系统定义的与集合类型同名的函原创 2012-05-01 16:15:47 · 14210 阅读 · 2 评论 -
PL/SQL 集合的方法
PL/SQL中提供了常用的三种集合联合数组、嵌套表、变长数组,而对于这几个集合类型中元素的操作,PL/SQL提供了相应的函数或过程来操纵数组中的元素或下标。这些函数或过程称为集合方法。一个集合方法就是一个内置于集合中并且能够操作集合的函数或过程,可以通过点标志来调用。本文主要描述如何操作这些方法。一、集合类型提供的方法与调用方式1、集合的方法与调用方式 EXISTS 函数EXI原创 2012-05-02 20:52:48 · 6910 阅读 · 0 评论 -
批量 SQL 之 FORALL 语句
对PL/SQL而言,任何的PL/SQL块或者子程序都是PL/SQL引擎来处理,而其中包含的SQL语句则由PL/SQL引擎发送SQL语句转交到SQL引擎来处理,SQL引擎处理完毕后向PL/SQL引擎返回数据。Pl/SQL与SQL引擎之间的通信则称之为上下文切换。过多的上下文切换将带来过量的性能负载。因此为减少性能的FORALL与BULK COLLECT的子句应运而生。即仅仅使用一次切换多次执行来降低原创 2012-05-05 10:26:09 · 15633 阅读 · 0 评论