前记:

近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的。

这里简单说点基础知识,希望后面补上更多的关于ORacle知识博客。入门的朋友可以看看,高手就可以绕过了。

不晓得你们用的什么工具,我用的Toad。用起来还是不错的。

第一部分,创建数据,

create table student
(
sName varchar(20) primary key,
sAge int,
sEmail varchar(100),
sPhone varchar(20),
sAddress varchar(100)
) insert into student values('Jack',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack1',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack2',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack3',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack54',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack6',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack7',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jack21',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Rose',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('rose1',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('rose2',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('rose4',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Adi',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Aditt',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Niyes',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Jassic',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Carken',21,'dfdf@qq.com','2134343','Singapore');
insert into student values('Donview',21,'dfdf@qq.com','2134343','Singapore');
commit;

执行其他都会报错的.

第二部分,看几个关于Spool的命令

  

spool c:/test.log; --将下面的查询结果放在这个文件中,如果文件不存在,会自动创建

select * from student;

spool off;  --完成spool
--执行后,你就可以去相应的目录去查看Log了。
--再看一个例子
set feedback on; --如果这里设置为off,则看不到18 rows selected
set termout on; --如果这里设置为off,则看不到结果
set echo on; --这里看到SQL>命令,就是这个开启的原因
spool c:/test.log; select * from student; spool off;
exit;

  

结果(只显示了一部分):

spool常用的设置
set echo on;    //显示start启动的脚本中的每个sql命令,缺省为off
set feedback on;  //回显本次sql命令处理的记录条数,缺省为on
set heading off;   //输出域标题,缺省为on
set pagesize 0;   //输出每页行数,缺省为24,为了避免分页,可设定为0。
set termout on;   //显示脚本中的命令的执行结果,缺省为on
set trimout on;   //去除标准输出每行的拖尾空格,缺省为off
set trimspool on;  //去除重定向(spool)输出每行的拖尾空格,缺省为off

上面的命令最好自己亲自动手测试下。因为我发现自己测试是跟下面的链接,其他前辈有出入。

所以自己动手去实践下比较好。

对于spool的相关了解,查看下面的这个链接

http://blog.sina.com.cn/s/blog_6bccf0360101hzsh.html

http://blog.csdn.net/shangyang326/article/details/3304621

第三部分,几个oracle 脚本知识入门。

主要查看下面这两个链接:

http://www.oracle.com/technetwork/issue-archive/2013/13-mar/o23plsql-1906474.html

http://docs.oracle.com/cd/B10500_01/appdev.920/a96624/a_samps.htm

1,我们想查看姓名=Jack 的信息,这里只有一条记录。

set serveroutput on; --要想看到打印结果,则必须开启这个命令。
DECLARE
l_name varchar(100);
--l_name student.sName%TYPE; 相同的效果,推荐使用这个。
BEGIN
SELECT sName INTO l_name
FROM student
WHERE sName = 'Jack'; DBMS_OUTPUT.put_line ('find the name: '||l_name);
END; 结果:
find the name: Jack
PL/SQL procedure successfully completed.

%RowType 的使用,获取某行的数据类型。  

set serveroutput on;
DECLARE
rowData student%ROWTYPE;
BEGIN
SELECT * INTO rowData
FROM student
WHERE sName = 'Jack'; DBMS_OUTPUT.put_line ('find the name: '||rowData.sName);
DBMS_OUTPUT.put_line ('find the age: '||rowData.SAGE);
DBMS_OUTPUT.put_line ('find the email: '||rowData.sEmail);
DBMS_OUTPUT.put_line ('find the phone: '||rowData.sPhone);
DBMS_OUTPUT.put_line ('find the address: '||rowData.sAddress); END;

 

结果:

find the name: Jack
find the age: 22
find the email: dfdf@qq.com
find the phone: 2134343
find the address: Singapore
PL/SQL procedure successfully completed.

  

关于Type的用法,查看

http://blog.csdn.net/chen_linbo/article/details/6367871

2, 查看姓名包含rose的信息(包含多条记录)。

set serveroutput on;

DECLARE
cursor name_rose_cur is
select sName from student where upper(sName) like upper('%rose%');
l_name student.sName%TYPE;
BEGIN
open name_rose_cur;
Loop
fetch name_rose_cur into l_name;
exit when name_rose_cur%NOTFOUND; DBMS_OUTPUT.put_line ('find the name: '||l_name);
end loop; close name_rose_cur;
END;

 

结果:

find the name: Rose
find the name: rose1
find the name: rose2
find the name: rose4
PL/SQL procedure successfully completed.

  

同样的功能可以用For循环来实现。

set serveroutput on;
DECLARE cursor name_rose_cur is
select * from student where upper(sName) like upper('%rose%');
BEGIN
for student_cur
in name_rose_cur
Loop
DBMS_OUTPUT.put_line ('find the name: '||student_cur.sName);
end loop;
END;

 这里的结果跟上面是一样的。 

Oracle 水很深,希望再接再厉.

Oracle 基础知识入门的更多相关文章

  1. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  2. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

  3. Hibernate入门1. Hibernate基础知识入门

    Hibernate入门1. Hibernate基础知识入门 20131127 前言: 之前学习过Spring框架的知识,但是不要以为自己就可以说掌握了Spring框架了.这样一个庞大的Spring架构 ...

  4. Oracle基础知识汇总一

    Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...

  5. SpringMVC(一) 基础知识+入门案例

    SpringMVC基础知识 1.什么是Springmvc 2.springmvc 框架的原理(必须掌握) 前端控制器.处理器映射器.处理器适配器.视图解析器 3.SpringMVC 入门程序 目的:对 ...

  6. oracle基础知识语法大全

    ORACLE支持五种类型的完整性约束NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.CHECK (检查)--检查在约束中 ...

  7. java学习基础知识入门

    基础入门知识(一) 一.java技术的分类 java按照技术标准和应用场景的不同分为三类,分别是JAVASE.JAVAEE.JAVAME JAVASE : 平台标准版,用于开发部署桌面,服务器以及嵌入 ...

  8. oracle基础知识及语法

    ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约 ...

  9. DOM0,DOM2,DOM3事件,事件基础知识入门

    事件是javascript和HTML交互基础, 任何文档或者浏览器窗口发生的交互, 都要通过绑定事件进行交互; 事件有DOM0, DOM2和DOM3的区分(别问我怎么少了一个DOM1, 也没找到DOM ...

随机推荐

  1. Tomcat报错Exception: java.lang.OutOfMemoryError

    进入Tomcat中的/bin/catalina.sh 在catalina.sh中echo"Using CATALINA_BASE"之前的一行添加如下代码: JAVA_OPTS=&q ...

  2. python-day32--进程--->socker并发

    一.进程背景 1.进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 2.进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有 ...

  3. spring-mvc---Controller参数绑定的类型

    Controller参数绑定的类型 Controller的绑定参数类型6种.没有参数(系统默认类型):简单类型(Intager,Double)等:pojo类(对象):数组:集合:HashMap等. 我 ...

  4. SQL Server 调优系列进阶篇 - 如何索引调优

    前言 上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布.不清楚的童鞋可以点击参考. 作为调优系列的文章,数据库的索引肯定是不能少的了,所以本 ...

  5. 尚硅谷JavaSEday18 String类练习题

    1.重新编写strim方法,去掉字符串两端的空格 package www.shangguigu.java.exer; import org.junit.Test; /* 练习一:重写Strim方法,输 ...

  6. iOS调用第三方地图App进行导航方法

    前言 App内根据手机上装载的地图App将其显示在弹出的选择框,选择对应地图跳转进入地图导航.需要用到- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS( ...

  7. 特征选择: 卡方检验、F 检验和互信息

    特征选择是特征工程中的重要一环,其主要目的是从所有特征中选出相关特征 (relevant feature),或者说在不引起重要信息丢失的前提下去除掉无关特征 (irrelevant feature) ...

  8. 看黑客如何远程黑掉一辆汽车 - BlackHat 2015 黑帽大会总结 day 1

    0x00 序 今天是Black Hat 2015第一天,九点钟开场.开场介绍是由Black Hat创始人Jeff Moss讲的.随后又请来了Stanford law school的Jennifer G ...

  9. [追加评论]三款SDR平台对比:HackRF,bladeRF和USRP

    这三个月,有幸把3种板子都用到了.说说使用体会.   我用过其中的HackRF,bladeRF x115,USRP B210.我并没有仔细的测量各种板子的射频指标什么的,只是做各种实验的时候用到它们. ...

  10. HTTP Header之Content-Type

    HTTP Header之Content-Type   目录 1. HTTP Header 2. 文件请求和接口请求 3. 几种 Content-Type 3.1 application/x-www-f ...