Oracle基础小知识
Oracle简介SQL语言分类解决显示中文乱码问题比较运算符基本查询条件与排序查询
Oracle简介
甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。第一份工作就是有使用到Oracle数据库,所以特意写些自己学到的知识点。
SQL语言分类
➢ DML(数据库操作语言): 其语句包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加,修改 和删除表中的行。也称为动作查询语言。 ➢ DDL(数据库定义语言): 其语句包括动词 CREATE 和 DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL 包括许多与人数据库目录中获得数据有关的保 留字。它也是动作查询的一部分。 ➢ DCL(数据库控制语言):它的语句通过 GRANT 或 REVOKE 获得许可,确定单个用户和用户 组 对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问。
解决显示中文乱码问题
数据库表内容出现中文乱码问题:
查询 select userenv(‘language’) from dual; 显示内容为:AMERICAN_AMERICA.ZHS16GBK复制内容,在本地电脑配置环境变量: key: NLS_LANG value: AMERICAN_AMERICA.ZHS16GBK
比较运算符
测试用到的表关系:
基本查询
--基本查询
select
* from emp
;
--别名:
"别名一般不用中文;别名如果是纯数字或者数字开头 必须使用双引号;别名不能使用单引号"
select empno 员工编号
,ename
as 员工姓名
, job
"工作", mgr
as "领导编码",hiredate
"8888888888"
from emp
;
--去重
select distinct job
from emp
;
--四则运算: 加减乘除
--空值问题
: 任何数字加上空都为空,去空
--使用:单行函数:
nvl(v1
,p1
) : 当v1等于空的时候,返回p1
-- 计算员工的年薪,年收入
select empno
,ename
,sal
as 月薪
,sal
*12 as 年薪
,comm 奖金
,sal
*12+nvl(comm
,0) as 年收入
from emp
;
--字符串拼接:
select
concat(empno
,ename
) as 员工编号与员工姓名
from emp
;
select
concat(concat(empno
,','),ename
) as 员工编号与员工姓名
from emp
;
select empno
||','||ename
||'======='||job
from emp
;
条件与排序查询
=========================条件与排序查询
=========================
--查询每月能得到奖金的雇员
--空值永远不等于空【comm
!= null 这样是不对】
-- 空: is
null 非空:is not
null
select
* from emp
where comm is not
null and comm
> 0;
--如果用比较运算,可以去空
select
* from emp
where comm
> 0;
--基本工资大于
1500 但是小于
3000 的全部雇员
select
* from emp
where sal
> 1500 and sal
<3000;
--基本工资大于等于
1500 但是小于等于
3000 的全部雇员
select
* from emp
where sal
>= 1500 and sal
<= 3000;
--使用between and
: 包含边界值
select
* from emp
where sal between
1500 and
3000;
-- 案例: 找出
1981年入职的员工
-- 单行函数:to_date()
select
* from emp
where hiredate between
to_date('1981-01-01','yyyy-mm-dd') and
to_date('1981-12-31','yyyy-mm-dd');
-- 模糊查询
--案例: 查询员工姓名中包含一个
M 字的员工
select
* from emp where ename like
'%M%';
--案例
: 查询员工姓名的第二个字母包含 一个
M 的员工
: oracle的值区分大小写
select
* from emp where ename like
'_M%';
=========================排序查询
=========================
--查询员工的工资,由大到小
select
* from emp order by sal desc
;
--查询员工的奖金,对奖金排序
,由大到小
-- 对空值处理: nulls last【放到最后】
|first【放到最前】
select
* from emp order by comm desc nulls last
;
=========================分页
=========================
如要查询emp表中专的前
5行数据,可用如下语句:属
select
* from emp where rownum
<=5;
转载请注明出处!!!本文为个人所学的一些笔记以及小结。
未完待续