此篇文章将包含三个模块
- 环境变量的配置
- 简单的表设置
- 简单的表查询
环境变量
. oraenv后要输入这个oracle orcl才能继续进入到SQL中
而直接输入sqlplus是不能进入到sql中的,要想直接进入就要更改环境变量
什么是环境变量?
举例:
设置变量 XINGMING 为123 echo出来的就是123
查看用户的用户名
Linux的内核是根据这些路径逐个寻找输入的目录(找到则不再寻找) echo $PATH
在那些路径中找到后,就写在hash表中,hash在内存中,系统重启后,hash表就被重置
更改环境变量:一般将环境变量写在bashrc里
[oracle@localhost ~]$ vim .bash_profile
追加如下内容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
说明:
ORACLE_BASE是所有的软件安装存放的路径
ORACLE_HOME是oracle数据库软件安装存放的路径
ORACLE_SID是数据库名称
=是赋值的意思,引用原有的PATH变量,在其后追加ORACLE变量
将以上内容放入到ORACLE用户的环境变量中
export是对全局的shell中生效
追加完成之后,需要生效该环境变量
[oracle@localhost ~]$ source .bash_profile
简单的表设置
查看/设置:
- 查看当前用户
- 查看/设置行宽度
- 查看/设置页宽度
- 修改列宽度
show是SQLPLUS的用法,所以可以不用带;
SQL> show user
SQL> show linesize SQL> set linesize 300
SQL> show pagesize SQL> set pagesize 300
SQL> col c1 format a20 将列c1(字符型)显示最大宽度调整为20个字符
SQL> clear columns; 重置为默认值
如果想要永久生效
Vim $ORACLE_HOME/sqlplus/admin/glogin.sql
检查:
修改列宽度测试:
重置为默认值测试:
简单的表查询
简单查询
语法:
SELECT [DISTINCT]*| 字段 [别名][,字段 [别名]] FROM 表名称 [表别名]
举例:
注意,要先导入本地数据库,才能继续表的查询,这是显而易见的,具体请看这篇文章
- 查询每个雇员的职位,注意删除重复项
简单查询中,可以使用四则运算符
- 查询每一个雇员的姓名,职位和基本年薪
- 每个月每个人有200的饭补和100的车补,计算年薪
- 使用||连接符
限定查询
语法:
SELECT [DISTINCT]*| 字段 [别名][字段 [别名]] FROM 表名称 [表别名] [WHERE 条件(s)]
条件:
>,>=,<,<=,!=(<>),BETWEEN...AND...,LIKE,IN,IS NULL,AND,OR,NOT
具体举例:
1.关系运算
- 要求查询出基本工资高于1500的所有雇员信息
- 查询出所有职位是办事员的雇员信息 注意:在oracle数据库,数据区分大小写
- 查询工资在1500-3000之间的全部雇员信息
select * from emp where sal>=1500 and sal<=3000;
select * from emp where sal between 1500 and 3000;
select * from emp where sal>1500 and sal<3000;
- 查询职位是办事员,或者是销售员的全部信息,并要求这些雇员的工资大于1200,注意优先级
select * from emp where (job='CLERK' or job='SALESMAN') and sal>1200;
- 查询所有不是办事员的雇员信息
select * from emp where job<>'CLERK';
select * from emp where job!='CLERK';
select * from emp where NOT job='CLERK';
2.范围判断
BETWEEN 最小值 AND 最大值
- 查询基本工资在1500-3000的雇员信息 求反
select * from emp where sal between 1500 and 3000;
select * from emp where not sal between 1500 and 3000;
判断是否为空 IS(NOT) NULL,空值不是数字0或者空字符串
- 查询出所有领取奖金的雇员信息
select * from emp where comm is not null;
select * from emp where not comm is null;
注意这里的奖金为0并不能说明是空的,只是他没有获得奖金
- 查询所有不领取奖金的雇员,comm栏没有东西的才是没有奖金的
select * from emp where comm is null;
以上的思维导图总结