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