Oracle读书笔记--基础(一)

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

比较运算符

在这里插入图片描述

在这里插入图片描述
测试用到的表关系:
在这里插入图片描述

基本查询

/*
SQL: 结构化查询语言

DDL:数据库定义语言
DML:数据库操作语言
DQL:数据库查询语言【重点】
DCL:数据库控制语言
 
完整sql语法:
 select *|字段名...
 from 表名
 where 条件
 group by 字段名
 having 条件
 order by 字段名 asc|desc
*/
 
--基本查询
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;

--字符串拼接:
/*
1)单行函数: concat(v1,v2) : 把v1和v2拼接起来
2)使用||拼接【推荐】
*/
select concat(empno,ename) as 员工编号与员工姓名 from emp;
select concat(concat(empno,','),ename) as 员工编号与员工姓名 from emp;
 
select empno||','||ename||'======='||job from emp;

条件与排序查询

=========================条件与排序查询=========================
/*
完整sql语法:
 select *|字段名...
 from 表名
 where 条件
 order by 字段名 asc【升序由小到大,默认值】|desc【降序:由大到小】
*/
--查询每月能得到奖金的雇员
--空值永远不等于空【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;

转载请注明出处!!!本文为个人所学的一些笔记以及小结。

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值