Oracle基础

Oracle自己的理解
Oracle安装完毕以后就只有一个大的数据库,它和mysql不一样的地方就是mysql可以创建多个数据库,然后各个数据库下面有许多表,Oracle是就一个数据库,然后下面是表空间,在下面是表
这里写图片描述
这里要注意的是Oracle权限强调的很不错的
你创建表空间的时候一定是拥有权限的才可以常用的是system
创建表空间以后还不可以使用你还要说明这个表空间是和那个操作的人是关联的,相当于一个表空间–>连接着多个操作表空间的人.
为了便于学习Oracle提供了两个账号一个scott另一个是hr以便于学习

1:基本查询

-- 1.查询语法
SELECT * FROM emp;

-- 2.别名用法
SELECT e.empno 账号,e.ename 名字 FROM emp e;
-- 这里注意有没有双引号的区别就是别名中有没有关键字
SELECT e.ename "%名字" FROM emp e;

-- 3.消除重复的数据
SELECT DISTINCT job FROM emp; --distinct 消除重复数据

-- 4.查询中四则运算
SELECT ename,sal*12 年薪 FROM emp; 

-- 5.按照 编号是:7369 的雇员, 姓名是:smith,工作是:clerk 查询 emp 表  oracle中使用||来链接
SELECT '编号是:'||e.empno||'的雇员,姓名是:'||e.ename||',工作是'||e.job FROM emp e;

-- 6.非空和空的限制
SELECT * FROM emp e WHERE e.comm IS NULL; 
SELECT * FROM emp e WHERE e.comm IS NOT NULL;

查询中注意点:

  1. 在使用别名的时候可以给字段还有表名都可以给别名,使用语法就是 列名 表名 后面加一个空格 在输入别名就行,但是特殊符号的时候比如:”%” 你就需要加引号,还只能加双引号不可以单引号
  2. 消除重复的数据使用的是关键字 distinct 适用语法可以看上面的第三条 要加在列名的前面
  3. Oracle查询的时候是可以进行四则运算的,(mysql不行) 这个是很浪费资源,在开发过程中几乎不用.
  4. 链接的时候可以使用 || 符号来连接字符串.如下图
    这里写图片描述

    2.条件查询和排序

--7. 查询工资大于 1500 并且有奖金领取的雇员
SELECT e.ename,e.sal FROM emp e WHERE e.comm IS NOT NULL AND e.sal >1500;

-- 8.查询工资不大于 1500 并且有奖金领取的雇员
SELECT * FROM emp e WHERE e.sal< 1500 AND e.comm IS NOT NULL;

-- 范围限制 between 可以用于数字 也可以用于 时间 
--9.基本工资大于 1500 但是小于 3000 的全部雇员
SELECT * FROM emp e WHERE e.sal BETWEEN 1500 AND 3000;

--10.查询 1981-1-1 到 1981-12-31 号入职的雇员
SELECT * FROM emp e WHERE e.hiredate BETWEEN DATE'1981-1-1' AND DATE'1981-12-21' ;

-- 11.查询雇员名字叫 smith 的雇员 
SELECT * FROM emp e WHERE e.ename='smith';
SELECT * FROM emp e WHERE e.ename='SMITH';

-- 12.查询雇员编号是 7369,7499,7521 的雇员编号的具体信息 多值查询 使用or的时候可以使用in
SELECT * FROM emp e WHERE e.empno=7369 OR e.empno=7499 OR e.empno=7521;
SELECT * FROM emp e where e.empno IN(7369,7499,7521);

-- 13:查询雇员姓名是’SMITH’,’ALLEN’,’WARD’的雇员具体信息
SELECT * FROM emp e WHERE e.ename IN('SMITH','ALLEN','WARD');

条件查询中的注意点

  1. between and 可以用来查询一定范围的数字如上第9条
  2. between and 也可以查询范围的一定范围的时间 查询的时候有要求可以看下上第10条 语法是 between date’1990-01-01’
    and date’1998-01-01’ 就是在时间前面要用date关键字 后面要加单引号

  3. 一个字段多值查询的时候可以使用in关键字 可以看上第12条–查询雇员编号是 7369,7499,7521 where xx in (7369,7499,7521)

  4. 排序的语法是 order by 后面跟字段 然后 升序(asc 小–>大) 还是倒序(desc 大–>小).

3.单行函数

--单行函数 就是类似于方法 截取字符串啊 获取长度啊
-- 字符函数
--字符串的截取,使用 substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数长度,开始的索引使用 1 和 0 效果相
SELECT substr('hello',1,3) FROM dual;
--获取字符串的长度
SELECT length('hello') FROM dual;
--字符串替换
SELECT REPLACE('hello','l','x') FROM dual;

-- 数值函数
--round四舍五入
SELECT round(28.111,2) FROM dual;
--trunc截断
SELECT trunc(28.111,2) FROM dual;
--mod求余
SELECT MOD(1500,301) FROM dual;

--日期函数
--查询雇员的进入公司的周数
SELECT ename,(SYSDATE-e.hiredate)/7FROM emp e;
--获得两个时间段中的月数:MONTHS_BETWEEN()
SELECT months_between(SYSDATE,'1980/12/17') FROM dual;
--查询三个月后的时间
SELECT add_months(SYSDATE,3) FROM dual;

单行函数类似于编程中的方法
用法很简单 关键字(参数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值