Oracle的select使用
1.select :
语法:
select [distinct] {*,column [alias],...}
from table
注:[]括起来的内容代表可有可无
* 代表所有列
distinct关键字只能跟在select关键字之后
select 子句后边指定要查询的列
from 子句后边跟要查询的表
My name is first_name.last_name;
2.select语句可以对指定的列的所有值进行算术运算。
语法:
select col_name 运算符 数字
from tb_name;
注意:select语句永远不对原始数据进行修改。
3.给查询的列区别名
语法:
select old_column [as] new_column_name
from tb_name;
4.使用||可以使得多列的值或者列和特殊的字符串合并到一个列进行显示
语法:
select col_name||'spe_char'||col_name
from tb_name
'spe_char':如果一个列的值要跟特殊的字符串连接显示,使用该语法。
5.对null值得替换运算
语法:
select nvl(col_name,change_value)
from tb_name;
nvl2(col_name,不为空显示的值,为空显示的值);
6.使用distinct关键词,可以将显示中重复的记录只显示一条
语法:
select distinct col_name,col_name...
from tb_name;
注意1:distinct关键词只能放在select关键词后面
如:select id,distinct title
from s_emp;
该语句语法错!!!!!
注意2:如果distinct关键词后面如果出现多列,表示多列联合去重,即多列的值都相同的时候才会认为是重复的记录。
test表:
id id2
1 2
1 3
2 4
3 4
3 4
select distinct id,id2
from test;
显示结果为:
id id2
1 2
1 3
2 4
3 4
7.sqlplus命令
a:在当前操作的命令行追加内容
a test
c: 在当前操作的命令行修改内容
c/old_char/new_char
clear buffer:清空当前缓存的命令
del:删除当前操作行
del line_num指定删除第几行
i:当前操作命令行的下一行插入内容
l:查看缓存命令
l line_num:查看指定的命令行
n text:替换第n行的整行内容
!:后面接终端命令 ------linux环境下
!clear:清屏 ///
$:后接终端命令
$cls ---------> windows环境下
/:执行缓存sql命令
save file_name:将缓存命令保存到file_name中 (append replace)
get file_name:将文件中的内容提取到sqlplus
start 和 @ file_name:执行文件中的sql命令
edit file_name:使用终端设置好的vi编辑器编辑文件(对于windows使用的是notepad)
spool file_name 将接下来的sql语句以及sql的运行结果保存到文件中(append)
sql1
result1
sql2
result2
...
spool off 关闭spool功能
exit:退出
8.select id,last_name,first_name, salary, dept_id
from s_emp;
结果不好看,通过column使我们的显示界面好看。
colu last_name format a15;
colu first_name format a15;
Column 有没有改变数据表里数据啊,没有,它只是改变显示。它是不是SQL命令呢? 不是,它是sqlplus命令。除了刚才这个作用之外,
我们下面来看看它还有什么作用。
COLUMN last_name HEADING 'Employee|Name' FORMAT A15
. 给last_name取别名为Employee|Name , 竖杠代表换行。
. A15表示十五个字节长,一短横杠就是一个字节长
COLUMN salary JUSTIFY LEFT FORMAT $99,990.00
. salary JUSTIFY LEFT : 仅仅改变列名显示为左齐
. FORMAT $99,990.00: 控制显示格式为前面加 $ 符, “,”为分隔符, 0或9代表数字(通配符),0表示替换对齐数值,位数不足会补足,可以混合使用.
COLUMN start_date FORMAT A8 NULL 'Not hired'
. 如果start_date值为空的话,显示为’Not hired’;
. Format后不能直接跟null, 要先a8或a10;
. NULL 'Not hired'和nvl有点不同, nvl要求类型匹配
column 显示所有对列格式的设置情况
column last_name 显示对last_name列显示设置的情况
column last_name clear 删除对last_name列格式设置的情况
Clear column 清除所有column的格式设置
Column某列的格式设置,这里的列并不特定于某个表.
ex:
1234 column 99.99 -- > ###### //出错的时候不能显示,只是显示####
column columName 显示对列的限制