Oracle10g技术问题总结(四)SQL的基本操作、脚本文件操作、数据的自动化导出

一、SQL的基本操作

1、修改列(属性)的别名

SELECT empno AS "Employee Number", ename name, sal  "Annual Salary" FROM emp;

解释:①AS 可以省略;②别名没有被双引号括起来,运行结果变为大写,即name运行结果变为NAME;③当别名中间有特殊符号(比如空格),必须用双引号。

2、连接运算符  ||

SELECT ename|| ' 年薪为:'|| sal*12 "员工的年薪" FROM emp;

运行结果:

员工的年薪

 - - - - - - - - - - - - -- - - - 

SMITH 年薪为:15600

3、去掉重复的行    DISTINCT(可以用于多列)

SELECT DISTINCT deptno FROM emp;

4、限制性查询

(1)WHERE +限制条件

(2) (NOT) BETWEEN+下限+ AND+上限(不在/在此范围)

SELECT * FROM emp WHERE hiredate  (NOT)BETWEEN 'A' AND 'B ';

(3)(NOT) IN (A,B)

SELECT * FROM emp WHERE job (NOT) IN ('SALESMAN','CLERK');

解释:只要记录中的job列的值属于IN()里面的,就显示出来

(4)LIKE +通配符(% --代表0个或者多个字符;_  代表一个且只能是一个字符)

SELECT * FROM emp WHERE job LIKE 'S_L_S%';

(5)转义字符:当子句内有“_”或者"%"时,即是他们的本来的含义,而不是通配符的含义时,防止混淆

SELECT * FROM emp WHERE dname LIKE 'IT\_%' ESCAPE '\';

解释:ESCAPE 是转义关键字;"\"是ESCAPE定义的转义字符;

(6)ORDER BY +子句

SELECT * FROM emp WHERE sal>=1500 ORDER BY sal DESC; (查询结果降序排列,由大到小)

SELECT * FROM emp WHERE sal>=1500 ORDER BY sal ASC; (查询结果升序排列--默认)

SELECT * FROM emp WHERE sal>=1500 ORDER BY "Annual Salary" DESC; (使用别名查询)

SELECT * FROM emp WHERE sal>=1500 ORDER BY 3 DESC;(3表示的是第三列,按照第三列大小排序)


二、sqlplus常用命令

(1)缓冲区:当输入SQL语句时,该语句被存在SQL缓冲区(一个内存区),这个SQL缓冲区很小,只能存一条SQL语句,当下一条SQL语句输入时,

原来在缓冲区的SQL语句被覆盖掉。

(2) DESC  +表名   查看表结构

(3) SET line100 将屏幕的显示输出置为100个字符宽(默认80)

(4) L(LIST)   用来显示SQL缓冲区中的内容

(5) n text  (n表示缓冲区的第n行   text表示修改后的内容)

(6) 0 text 是在第一行前面插入一行数据

(7) /    是执行缓冲区内容

(8) n    将第n行设置为当前行(n*)

(9) a    命令将a后面的子句附加到当前行上(免去了重新书写整行的麻烦)

SQL> a,job,sal;

(10)DEL  删除命令

DEL  n删除第n行(没指定n的值就默认删除当前行)

DEL  m   n  删除m 到 n 行的内容 

(11)C     修改命令     C /原文/新文

①先设置需要修改的行为当前行(命令n)

②然后进行修改  C/demp/emp;   C/demp,/;将demp删除

三、生成、编辑、运行脚本文件

1、脚本文件:将SQL缓冲区的语句存入某文件中,则这个文件即为脚本文件

2、生成脚本文件

(1)创建 D:SQL目录(文件夹)——>不创建用别的文件夹亦可

(2)   SAVE  D:/SQL/SAMPLE;              (会自动在SQL文件夹内生成SAMPLE.sql文件,即为脚本文件)

3、编辑脚本文件

(1)方法一:

① GET  D:/SQL/SAMPLEA.sql;    (此命令将脚本文件装入缓冲区)

② 然后运用SQLPlus 的命令进行编辑

(2)方法二:

① ed D:/SQL/SAMPLEA.sql;        (在文本编辑器中编辑脚本文件)

②GET  D:/SQL/SAMPLEA.sql;    (此命令将脚本文件装入缓冲区)

③然后再运行

4、运行脚本文件

SQL>  @ D:/SQL/SAMPLEA.sql; (@或者START 命令是指把指定的脚本文件内容装入SQL缓冲区并执行)


四、SPOOL   D:/SQL/OUTPUT;

命令含义:指在该命令之后屏幕上所显示的全部内容都存放在OUTPUT.LST文件中

SPOOL  OFF;     只有输入此命令之后才会看到OUTPUT中的内容

SPOOL  OUT     将内容送到打印机


五、将Oracle数据手动导出

(1)新建文本文件,输入以下内容:

set line 120 
set pagesize 10000

set heading off          ---在查询语句的输出结果中不显示列名

spool d:\sql\data.txt    -----以下语句的执行内容全部保存到data.txt中

select deptno||','||dname||','||loc from dept;
spool off
          

(2)将文件“另存为”在D:\SQL文件夹中,并命名为data.sql

(3)启动DOS界面;

cd切换到D:\SQL目录

输入   sqlplus scott/tiger  进入 SQLPlus

输入  @data    并回车

(4)DOS界面会显示结果,同时会在D:\SQL目录中生成一个data.txt,里面就是结果


六、数据库导出操作自动化(完全不需要手动进入DOS界面输入命令)

(1)新建文本文件,输入以下内容:

sqlplus  /nolog @data.sql     --------启动后立即运行data.sql  -------sqlplus  /nolog 启动sqlplus但是不登录数据库

exit

(2)将文件“另存为”在D:\SQL文件夹中,并命名为DownLoadData.bat        (.bat  表示该文件时DOS OS的批处理文件)

(3)新建文本文件,命名为data.sql。里面内容如下:

cnnect   scott/tiger

set line 120 

set pagesize 10000

set heading off          ---在查询语句的输出结果中不显示列名

spool d:\sql\data.txt    -----以下语句的执行内容全部保存到data.txt中

select deptno||','||dname||','||loc from dept;
spool off

exit

(4)右键DownLoadData.bat 文件,选择”发送到“------”桌面快捷方式“(注意快捷方式与源文件不同)

(5)然后更改图标,重命名。双击运行

(6)会在D:\SQL目录中生成一个data.txt,里面就是结果



声明:以上内容均是本人实践总结而成,包括查找书籍,网上查阅。转载请注明出处,谢谢。
----------------------------------------------------------------------------------------------
对于发现的问题还希望大家多多批评,大家共同交流,共同进步






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值