Oracle数据库SQL ——Select 语句使用方法
su - oracle
cd $ORACLE_HOME
cd rdbms/admin
SQL > sqlplus / as sysdba
若出现提示最后一行有
idle instance
SQL > start up
最后一行出现Database opened ,表明数据库打开了。
练习时,可连接一个数据库用户Scott,密码为tiger。
SQL>conn Scott/tiger
#显示connected,表示已经连接。
此时可以对此用户下的文件进行查询。
⚠️子句:如 select 和 from 子句,子句要求分行书写。
select命令只是显示,查询,并不修改原数据表。
语句的标准格式:
说明:
第一个代表【命令】,此处是select
星号 代表查询结果显示全部列
| 代表“或者”
select 后边可以加*(所有列)、列名(不区分大小写) 或者 表达式
from [表名] ,表示从哪个表执行命令
注意:
#select 控制的是查看多少列,哪几列
#结尾必须有分号,表示命令结束
#多个列之间用“逗号”分开
#所有命令不区分大小写
例子:
1、查询此用户下都有哪些表
select * from tab;
SQL > select * from dept ;
3、查询dept表中的 deptno 和 dname 两列。
SQL > select deptno ,dname from dept ;
#输出的顺序是按照命令中的先后顺序输出两列的信息。
例子:
SQL 语句可以回车分行输入,以;分号结束命令。
SQL > select *
#此时可以继续输入命令
2 from dept
3 ;
语句的标准格式:
select distinct 【列名】from 【表名】
#去重是去掉这一列的信息中重复的,只留下不同的,查询结果显示出这一列去重后的信息。
注意:
例子:查询员工(emp表)都有哪些岗位(job)。应该去重。
Null是无效的,未指定的。
⚠️Null不是0
⚠️ 对空值进行运算,是无效的,还是空值。
例子:
查看emp(员工信息表)中,员工的姓名,工资和年薪(月薪*12+奖金)。有的员工的奖金(comm)为空值。
select enamel ,sal,sal*12+nvl(comm,0)
from emp;
因为,奖金可能为空值,就没有办法进行计算,因此用nvl函数进行空值转换。
如果comm列里有值,则输出原值;如果是空的,转换成0值。
两种方式:
1、空格隔开 :【原列名】【空格】【列别名】
2、用as :【原列名】 as “列的别名”
⚠️“”双引号只出现在给列起别名的命令中。
例子:
1、将ename起别名为epm_name
select ename emp_name ,sal
from amp;
select ename emp_name ,sal*12 as “Salary”
from emp;
例子:
1、
select ‘My name is’,ename
from epm;
select ‘My name is’ || ' ' || ename
from epm;
3、合并的同时,起个别名:
select ‘My name is’ || ename as “Ename”
From emp;
‘字符串’
可以是字母,数字,日期
例子:
select ename|| ‘:year salary =’ || 12*sal as “Year_Sal” from emp;
describe 【表名】
简写为 desc 【表名】
注意Type列
⚠️区分字符类型:
varchar是字符(长度为10,变长)——消耗性能,要判断长度再存——节省空间,但耗费时间
char 是字符(长度为10,定长)——先存,场度超过10,报错——耗费空间,但节省时间