访问oracle数据库语句,Oracle数据库SQL ——Select 语句使用方法

Oracle数据库SQL ——Select 语句使用方法

Oracle数据库SQL ——Select 语句使用方法

Oracle数据库SQL ——Select 语句使用方法

一、进入Oracle数据库

[var1]

su - oracle

cd $ORACLE_HOME

cd rdbms/admin

[var1]

SQL > sqlplus / as sysdba

若出现提示最后一行有

idle instance

364c50ada652cca0229b5817df624dd2.png

则数据库没有启动

输入如下命令,启动数据库

SQL > start up

最后一行出现Database opened ,表明数据库打开了。

e72298920d32d0238fab95c43ad178d4.png

练习时,可连接一个数据库用户Scott,密码为tiger。

SQL>conn Scott/tiger

#显示connected,表示已经连接。

此时可以对此用户下的文件进行查询。

二、编写SQL命令的书写规则

11e0aca39fe1b724ce5672f4bc1d3d4a.png

??子句:如 select 和 from 子句,子句要求分行书写。

三、select 语句

select命令只是显示,查询,并不修改原数据表。

[var1]

语句的标准格式:

5ff48c378b31467063263d42773a69ec.png

说明:

第一个代表【命令】,此处是select

星号 代表查询结果显示全部列

| 代表“或者”

select 后边可以加*(所有列)、列名(不区分大小写) 或者 表达式

from [表名] ,表示从哪个表执行命令

注意:

#select 控制的是查看多少列,哪几列

#结尾必须有分号,表示命令结束

#多个列之间用“逗号”分开

#所有命令不区分大小写

例子:

1、查询此用户下都有哪些表

select * from tab;

f219fe6d5fa6d592ef44a6d4ddd00e68.png

2、 显示dept表的全部列

SQL > select * from dept ;

3、查询dept表中的 deptno 和 dname 两列。

SQL > select deptno ,dname from dept ;

#输出的顺序是按照命令中的先后顺序输出两列的信息。

例子:

SQL 语句可以回车分行输入,以;分号结束命令。

SQL > select *

#此时可以继续输入命令

2 from dept

3 ;

[var1]

语句的标准格式:

select distinct 【列名】from 【表名】

#去重是去掉这一列的信息中重复的,只留下不同的,查询结果显示出这一列去重后的信息。

注意:

select distinct 【列名,列名】from 【表名】

#如果是两列同时去重,去掉的是某行的两列信息同时重复的,只留下两列都不一样的,查询结果

显示这两列的去重后的数据。

如果这列中有空值,去重后,也显示空值数据所在行。

例子:查询员工(emp表)都有哪些岗位(job)。应该去重。

7a316e0f35e5d4e1a6a2affd1c5640c0.png

c1af62ddf04252bc9f2cb40a297bdc5b.png

四、算数表达式

7321e5ba8ce6fefeaeb1012fa9ebcbdf.png

优先级:先乘除,后加减

例子:

查询所有员工的工资,工资增长200后的工资。

dc3d66877ab0aacb9920600b7160b4d2.png

五、空值 Null

Null是无效的,未指定的。

??Null不是0

?? 对空值进行运算,是无效的,还是空值。

例子:

查看emp(员工信息表)中,员工的姓名,工资和年薪(月薪*12+奖金)。有的员工的奖金(comm)为空值。

select enamel ,sal,sal*12+nvl(comm,0)

from emp;

因为,奖金可能为空值,就没有办法进行计算,因此用nvl函数进行空值转换。

如果comm列里有值,则输出原值;如果是空的,转换成0值。

27d51b520cac10d224eb4e0c01d85e09.png

六、给列起别名

95ef0ba2e780ab0c9efc4f811a48b9d6.png

两种方式:

1、空格隔开 :【原列名】【空格】【列别名】

2、用as :【原列名】 as “列的别名”

??“”双引号只出现在给列起别名的命令中。

例子:

1、将ename起别名为epm_name

select ename emp_name ,sal

from amp;

ff970e2cbb34dcc9456ebb92f6d07920.png

2、

select ename emp_name ,sal*12 as “Salary”

from emp;

f2ed491a02366f82de95f8d4ef71a3d0.png

七、连接符 ||

例子:

1、

select ‘My name is’,ename

from epm;

#输出两列,第一列是常量,第二列是ename列的值。

abf991d0f7cd88219cb9d4f3e5b2bac2.png

2、

select ‘My name is’ || ' ' || ename

from epm;

#此时通过连接符将两列值合并,中间用空格隔开,合为一列

baa87de0cf22a5814a6f464f1daf673c.png

3、合并的同时,起个别名:

select ‘My name is’ || ename as “Ename”

From emp;

八、字符串

‘字符串’

可以是字母,数字,日期

例子:

select ename|| ‘:year salary =’ || 12*sal as “Year_Sal” from emp;

6bf95eed784a96581acef2d09cf334c6.png

九、只显示表名(表结构)

describe 【表名】

简写为 desc 【表名】

95e02db0cea404f066fed907e614b821.png

注意Type列

??区分字符类型:

varchar是字符(长度为10,变长)——消耗性能,要判断长度再存——节省空间,但耗费时间

char 是字符(长度为10,定长)——先存,场度超过10,报错——耗费空间,但节省时间

Oracle数据库SQL ——Select 语句使用方法相关教程