一、基本查询语句
1.语法:
SELECT [DISTINCT] {*,column [alias],...}
FROM tablename;
注:SQL语句不区分大小写,SQL语句可以写成一行或多行。
当SQL语句较为复杂时,建议SQL子句写为单独行,这样更有可读性。
2.列标题
与列名用空格隔开,在列名后。如果列标题包含特殊字符,如空格、$,并且要区分大小写时,列标题要用双引号引起来。
3.算数表达式
加(+)、减(-)、乘(*)、除(/)
运算符优先顺序:先乘除,后加减。如果有括号,则优先计算括号内的,优先级相同时,从左到右计算。多重括号嵌套时,内层括号优先计算。
4.连接操作符 ||
连接符两边的列组合成一个列作为结果输出。为增加可读性,加列别名,在列别名前用AS操作符连接。
例:
SELECT ename||job AS "Employee"
FROM emp;
5.原义字符串:
将两个或以上的列用字符串连接起来 ||‘原义字符串内容'||
例:
SELECT ENAME||' is a '||JOB
AS "Employee Details"
FROM emp;
6.消除重复行DISTINCT
例:
SELECT DISTINCT DEPTNO
FROM EMP;
7.NULL
null空值,既不是空格,也不是零。空值与任何值运算结果都为空值。
二、SQL*Plus
登录到SQL*Plus:connect scott/tiger@xe;
1.显示表结构:
DESCTIBE tablename;
2.SQL*Plus的编辑命令:
A[PPEND] text 添加文本到缓冲区当前行尾
C[HANGE]/old/new 用新的文本替换旧的文本
C[HANGE] text 从当前行删除文本
CL[EAR] BUFF[ER] 从sql缓冲区中删除所有行
DEL 删除当前行
DEL n 删除第n行
DEL m n 删除从m到n行
I[NPUT] 在当前行之后添加一行
I[NPUT] text 在当前行之后添加包含text的一行
L[IST] 显示当前缓冲区所有行
L[IST] n 显示当前缓冲区第n行
L[IST] m n 显示当前缓冲区从m行到n行
/ 执行当前缓冲区的sql语句
R[UN] 执行当前缓冲区的sql语句
n 指定第n行为当前行
n text 用text替换第n行
0 text 在第一行之前插入一行
3.SQL*Plus的文件命令
SAV[E] filename [REPLACE] APP[END] 将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql.使用append想一个已存在的文件追加内容,使用replace覆盖一个已存在的文件
GET filename list 调入已经存盘的文件,把脚本文件内容调用到缓冲区,默认,可不写list
GET filename nolist 不显示,仅调用
STA[RT] filename 执行存盘的sql文件
@ filename 执行存盘的sql文件,同start
SPOOL filename 把操作执行结果假脱机,即保存到磁盘上
SPOOL OFF 停止输出
SPOOL OUT 输出结果并将结果送到系统打印机
EXIT 退出SQL*Plus