1、Oracle登录

Oracle连接有三种客户端工具

  • 使用sqlplus工具连接
  • 使用sqldeveloper图形界面连接
  • 使用第三方工具

Oracle登录有两种方式

  • 用户名和密码
  • 使用用户名和角色登录
>sqlplus / as sysdba

Oracle安装好时已经创建提供了许多用户

用户名:sys  角色:dba    这个用户是活的,即可以直接使用(其他用户需要解锁使用)
用户名:scott
用户名:HR
...

解锁其他普通用户,并设置密码

SQL> alter user scott account unlock;
SQL> alter user scott identified by tiger01;

普通用户登录

> sqlplus scott/tiger01

当出现密码忘记情况,需要使用管理员超级用户来修改
三次出错时拒绝登录

> sqlplus / as sysdba
> alter user scott identified by abc123;

普通用户修改自己的代码

SQL> password
更改 SCOTT 的口令
旧口令:
新口令:
重新键入新口令:
口令已更改

显示当前用户名

SQL> show user;
USER 为 "SCOTT"

2、Oracle基本使用

查询scott用户下所有对象

select * from tab;

查询表结构

desc emp;

修改表的字段显示宽度
Oracle一共有三种类型,varchar2、 number、 date

-- 字符类型 a12表示12位
column ename format a12;
-- 数字类型9999代表四位
column empno format 9999;column mgr format 9999;

/执行上一条执行过的sql语句
host cls;清屏

NVL(a,b)函数,当a为null时,使用b值代替,如果是非null就不用b代替直接返回a值

select NVL(null,10) from dual;

NVL2(a,b,c),当a不为空时使用b,当a为空时使用c

使用别名,可以不使用双引号,但别名中不能有空格,

select empno AS 编号 from emp;
select empno AS "编号" from emp;

获取时间,默认只显示日期

select sysdate from dual;

||管道符,拼接字段,常量字符串使用单引号,将两个字段查询结果拼接在一起

> select 'hello' || ' word' "结果" from dual;
> select ename || '的薪水是' || sal " 结果" from emp;
 结果
-------------------SMITH的薪水是800
ALLEN的薪水是1600
WARD的薪水是1250
JONES的薪水是2975
MARTIN的薪水是1250
BLAKE的薪水是2850
CLARK的薪水是2450
SCOTT的薪水是3000
KING的薪水是5000
TURNER的薪水是1500
ADAMS的薪水是1100

保存所有的命令及结果

spool e:/oracle.sql;
...
spool off;

从外部读入sql脚本并执行

@ e:/oracle.sql;

单行注释--,多行注释/* */

--select * from dual;
/*123
*/

SQL语句关键字大小写不敏感,字段名即列名大小写不敏感,必须使用;结束
单引号中的字符串大小写敏感

3、查询

-- 查询
select * from emp where deptno = 20;
-- 注意单引号中的字符串大小写敏感
select * from emp where ename='SMITH';
select * from emp where sal>1500;
-- 不等于可以使用!=也可以使用<>
select * from emp where sal!=1500;
select * from emp where sal>=1300 and sal<=1600;
-- between a and b 可以使用在数字型和日期型
select * from emp where sal between 1300 and 1600;
select * from emp where sal not between 1300 and 1600;
select * from emp where hiredate between '20-2月-81' and '23-2月-82';
-- 使用in 来替换or
select * from emp where (deptno==20) or (deptno==30);
select * from emp where deptno in (20,30);
select * from emp where deptno not in (20,30);
-- 查询大写字母S开员工,%表示0个,1个或多个字符
-- 精确查询使用=,不精确查询使用like,称为模糊查询,mysql与Oracle都一样
select * from emp where ename like 'S%';
-- 使用_表示一个任意字符
select * from emp where ename like '__I__';
-- 转义字符\,查询名字含有_的员工
select * from emp where ename like 'ac\_' escape '\';
-- 插入姓名含有'单引号的,注意Oracle中字符串使用单引号
insert into emp(empno,ename) values(100,'''''');
-- null加减乘除一个数还为null,null不能参与精确查询
-- 注意不能使用like或=
select * from emp where comm is null;
select * from emp where comm is not null;
-- 按照升序出结果,不写asc默认升序
select * from emp order by sal asc;
-- 降序
select * from emp order by sal desc;
-- 佣金非空升序排列
select * from emp where comm is not null order by comm asc;
-- 当排序使用多个字段,当第一个一样时 第二个才起作用
select * from emp order by comm,sal asc;

4.单行函数

单行函数:只有一个参数输入一个参数输出
多行函数:可以有多个函数输入,一个输出
单行函数

-- 转小写
select lower('ABC') from dual;
-- 转大写
select upper('abc') from dual;
-- 字符串拼接
select concat('hello','你好') from dual;
select concat('hello','你好','abc') from dual;错误
select concat('hello',concat('你好','abc')) from dual;
select 'hello' || '你好' || 'abc' from dual;
-- 取子串
select substr('helloab你好cdef',5,3) from dual;-- 从左到右第一次出现的位置instr函数 大小写敏感,第一个结果0,第二个结果5
SQL> select instr('helloworld','O') from dual;
SQL> select instr('helloworld','o') from dual;
-- lpad/rpad:不足指定位数,补位指定字符,lpad在左边补,rpad在右边补
select lpad('hello',10,'#') from dual;
select rpad('hello',10,'#') from dual;
-- trim去掉两边的指定字符 结果:abcooodef
select trim('o' from 'oooabcooodefooo') from dual;
-- replace 替换
select replace('hello','l','LL') from dual;
-- round,保留指定位小数,四舍五入
select round(3.1415,3) from dual;
-- trunc,保留指定位小数,不四舍五入
select trunc(3.1415,3) from dual;
-- mod,求余
select mod(10,3) from dual;

计算时间的单行函数

-- 昨天,今天,明天
select sysdate-1 "昨天",sysdate "今天",sysdate+1 "明天" from dual;
-- 上个月的今天
select add_months(sysdate,-1) from dual;
-- 上个星期三是多少号
select next_day(sysdate,'星期三') from dual;
-- 上上一个星期三
select next_day(next_day(sysdate,'星期三') ,'星期三') from dual;
-- 本月最后一天
select last_day(sysdate) from dual;

5.Oracle类型转换

Oracle三大类型
(1)varchar2是边长的,char固定长度,隐式转换:varchar2->date
(2)number—>varchar2/char
(3)date—–>varchar2/char

-- to_char('日期','格式')将日期转换为字符串
select to_char(sysdate,'yyyy mm dd day') from dual;
select to_char(sysdate,'yyyy "年" mm "月" dd "日" day') from dual;
select to_char(sysdate,'yyyy mm dd day hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy mm dd day hh12:mi:ss AM') from dual;
-- to_char(数字,"格式")
select to_char(12345,'$999,999,999') from dual;-- to_date('字符串','格式')
select * from emp where hiredate = to_date('1980年12月7日','yyyy"年"mm"月"dd"日"');-- to_number('123')将字符串转为数字型
select to_number('123') from dual;
-- 字符串隐式转换为数字
select '123'+123 from dual;
-- 数字隐式转换为字符串
select '123'||123 from dual;

oracle学习(一)相关推荐

  1. 怎样学好Oracle子查询,Oracle学习(六):子查询

    Oracle学习(6):子查询 子查询 为何要用子查询 SQL> --查询工资比SCOTT高的员工信息 SQL> --1. 知道SCOTT的工资 SQL> select sal fr ...

  2. oracle两表链接序列跳序,Oracle学习之 序列(Sequence)

    Oracle学习之 序列(Sequence) [Oracle学习]之 序列(Sequence) oracle文档:https://docs.oracle.com/cd/B28359_01/server ...

  3. Oracle学习网站

    Oracle学习网站 http://www.oracle-base.com 能弄懂这里面的文章,那oracle的基本功就非常扎实.(英) http://asktom.oracle.com/pls/ap ...

  4. 分享丨10年DBA老司机整理的Oracle学习路线图

    微思10年资深DBA吴老师呕心沥血的分享总结-Oracle学习路线图,看完没收获你打我. 学习Oracle的前提是:熟悉Linux操作系统.Unix操作系统. 学习方法 1.sql.pl/sql 作为 ...

  5. oracle db-link 分布式数据库网络配置协议错误,Oracle学习(18)【DBA向】:分布式数据库...

    数据物理上被存放在网络的多个节点上,逻辑上是一个整体. 分布式数据库的独立性 l分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据. Oracle分布式RDBMS 本地操作 远程 ...

  6. oracle学习数据,oracle学习中的一些心得

    当前位置:我的异常网» 数据库 » oracle学习中的一些心得 oracle学习中的一些心得 www.myexceptions.net  网友分享于:2015-08-26  浏览:10次 oracl ...

  7. Oracle学习计划

    这两天,在网上参考了大量的文档,制定了Oracle学习的读书计划,共分三个阶段: 第一阶段: 目标: 系统学习.巩固基础. 书籍: (1)Oracle Concept, Oracle Performa ...

  8. oracle学习--循环语句

    oracle学习--循环语句 loop循环: create or replace procedure pro_test_loop is i number; begin i:=0; loop   i:= ...

  9. oracle表是动态表怎么算排名,Oracle学习动态性能表

    按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况. 类似于v$s Oracle 学习动态性能表 v$l ...

  10. oracle中sga的合理设置,oracle学习:SGA_MAX_SIZE参数设置

    oracle学习:SGA_MAX_SIZE参数设置 时间:2017-07-11 来源: SGA_MAX_SIZE这个参数顾名思义,它用来控制SGA 使用虚拟内存 的最大大小,这里的虚拟内存的含义可能会 ...

最新文章

  1. 大数据量导出Excel ---待测试
  2. IBM中国开发中心吉燕勇: 通过Cloud Data Services打造新型认知计算数据分析云平台...
  3. SQL 学习最强刷题网站!
  4. 201521123017 《Java程序设计》第4周学习总结
  5. python3 web框架_循序渐进Python3(十二) --0--  web之框架
  6. 苹果将在内华达州里诺市再购地块 都是为了它
  7. windows系统通过git上传代码
  8. 哈希革新Transformer:这篇ICLR高分论文让一块GPU处理64K长度序列
  9. cad黑色背景变成白色_学会了、让你前程似锦的CAD完整版教程
  10. jsp页面中插入jsp代码片段
  11. android 自定义多边形,android自定义形状的按键实例代码
  12. 计算机网络 | 思科网络 | 什么是DHCPv4
  13. Lempel-Ziv算法
  14. Movavi Screen Recorder 10 Mac(全能录屏软件) 中文激活版
  15. 下载的turbo c 3.0 怎样安装
  16. java微信公众号开发之配置服务器
  17. 云宏与航天科工706所一起获得2018年国家发改委“互联网+”重大工程项目支持
  18. Ubuntu系统下硬盘安装windows
  19. 【ShaderToy】基础篇之谈谈点、线的绘制
  20. 2021高考热度最高专业,大数据分析告诉你

热门文章

  1. sp工具中最疼的是_阴阳师手游:SP鬼切技能PV分析:双形态附加协战?鬼兵部恐成最惨御灵...
  2. 记一次赛题--保护全开
  3. telnet对应的端口不通,防火墙关闭了也不行
  4. 创建VMware集群
  5. 武汉php工程师,Laravel 招聘:[武汉][10-20k][光谷][CmsTop新项目]高级PHP工程师 | Laravel China 社区...
  6. 道达尔远景光伏助力中天钢铁打造低碳绿色钢城
  7. 企业为何要建设工业互联网标识解析节点?
  8. 密歇根大学计算机专业怎么样,密歇根大学安娜堡分校UMich计算机科学Computer Science专业排名第26位(2021年THE世界大学商科排名)...
  9. WPF Prism框架
  10. prism 加载模块的四种方法