`
沈冠军
  • 浏览: 111208 次
  • 性别: Icon_minigender_1
  • 来自: 玉林
社区版块
存档分类
最新评论

oracle学习笔记(1)

阅读更多


1、sql*plus常用命令
1)disc[onnect]  用来断开与当前数据库的连接
2)passw[ord]  用来修改用户的密码,如果想修改其它用户的密码,需要用sys/system登陆
3)show urser  显示当前用户名
4)exit 断开连接,同时退出
5)&  可以替代变量,而该变量在执行时,需要用户输入。
   select * from emp where job="&job"
6) eidt  可以编辑指定的sql脚本
   edit d:\a.sql
7) spool 将slq*plus 屏幕上的内容输出到指定的文件中去。
   spool d:\b.sql 并输入 spool off    
8) 设置行的大小默认80:set linesize
9) 连接命令:conn system/netjava
10)运行脚本start和&:start d:\a.sql或者& d:\a.sql
11) set timing on 显示操作所耗时间
2、用户管理
1) 创建用户(只有sys和System具有权限) create user champion identified by netjava;
2)修改密码  alter user champion  identified by "champion"

3) 删除用户 drop user champion
4) 赋予用户权限grant(角色:connect、dab、resource等,对象权限:select、update、delete、insert等)
   系统权限:grant connect to champion
   对象权限:grant select on emp to champion
             grant all on emp to champion
5)收回权限 revoke select on emp form champion
6) 权限传递
   对象权限:grant select on emp to champion with grant option
   系统权限:grant connect to champion with admin option 
7) 账户锁定: profile 管理用户口令
   创建profile 文件:create profile lock_account(可以改) limit failed_login_attempts 3(可以改) password_lock_time 2(可以改);
   给用户配置文件:alert user champion profile lock_account;
8)账户解锁:alert user champion account unlock;
9) 终止口令:定期要用户修改密码
   创建profile文件:create profile myprofile limit password_life_time 10 password_grance_time 2
   给用户配置文件:alert user champion profile myporfile
10)口令历史:密码在定期不可以重复使用
   创建profile文件:create profile myprofile limit password_life_time 10 password_grance_time 2 password_reuse 10
   给用户配置文件:alert user champion profile myporfile   
11)删除profile
   drop profile myprofile [cascade]
3、数据类型
1)字符型
   (1)char 定长 最大2000字符 如:char(10),若存放“冠军”,则前四个字符放“冠军”,
        后添6个空格,查询时间快,因为它先比较长度是否相等
   (2)varchar2(20)  变长 最大4000字符,可以节省空间
   (3)clob 字符型大对象,最大4G
2) 数字类型
   number 范围-10的-38次方至10的38次方,可以表示小数,也可以表示整数
   number(5,2)表示一个小数有5位有效数字,2位小数,范围 -999.99-999.99
   number(5) 表示一个五位整数,范围-99999-99999
3)日期类型
   (1)date 包含年月日时分秒  默认格式:‘DD-MON-YY’ ‘16-8月-89’
        修改默认的格式 alter session set nls_date_format='yyyy-mm-dd'
   (2)timestamp 对date的拓展,精度高一点,微秒级
4)图片类型
   blob 二进制数据 可以存放图/声音 4G
4、表的操作
   1)写日志与数据恢复
      设置回滚点:savepoint a
      回滚到a点: rollback to a;
   2) truncate table student;删除表中的所有记录,表结构还在,不写日志,
      无法找回删除的数据,删除速度很快。
   3)简单查询
     (1)select count(*) from student 查看表中的记录数
     (2)select distinct name from student 查询表中不重复的名字
     (3)select sal*12+nvl(comm,0)*12 from emp 如果comm为null,则用0来替代
      (4) select ename  from emp where ename like 'S%' 查找名字以S开头的员工
           % :表示任意0到多个字符,_:表示单个字符
     (5)select empno , ename from emp where empno in(200,300,400) 查找职工号为200,300,400的员工
     (6)select ename from emp where sal is null;
      (7) select * from emp order by sal; 按工资从低到高排序
      (8) select * from emp order by sal desc ;从高到低排序
      (9) select * from emp order by deptno,sal desc;
      (10)select ename , sal*12 '年薪' from emp order by '年薪';
   4) 复杂查询
     (1)常用函数:max,min,avg,sum,count
     (2) select ename , sal from emp where sal=(select max(sal) from emp);
          查询工资最高的员工姓名和工资
     (3)group by 和 having 字句
          查询每一个部门的平均工资和最高工资
          select avg(sal), max(sal),deptno from emp group by deptno;
          查询部门平均工资在2000以上的部门
          select avg(sal),max(sal), deptno from emp group by deptno having avg(sal)>2000;
     (4)分组函数只能出现在选择列表(即select 后面的)、having、order by 句子中
   5) 多表查询
      (1) select e.ename , e.sal ,d.dname from emp e, dept d where e.deptno=d.deptno and e.ename='SMITH';
      (2) select e.ename,e.sal,s.grade from emp e, salgrade s where e.sal between s.losal and s.hisal;  
      (3) 一张表查询select worker.ename , boss.ename from emp worker,emp boss where worker.mgr=boss.empno and worker.ename='FORD';
   6)子查询(嵌套查询)
      数据库在执行sql时,是从右到左
     (1)单行子查询是指只返回一行数据的子查询语句
          select e.ename  from emp e where e.deptno=(select deptno from emp where ename
     (2)多行子查询
          select * from emp where job in (select distinct job from emp e where e.deptno=10 )
          select * from emp where (deptno ,job)=(select deptno ,job from emp where ename='SMITH');
     (3)all关键字
          select * from emp  where sal >= all(select sal from emp where deptno=30);
     (4)any 关键字
          select e.ename , e.sal , e.deptno from emp e where e.sal > any ( select sal from emp where deptno = 10);
     (5)在from语句时将查询出来的数据当作一个表来看待,需要指定别名
          select * from emp e, (select deptno,avg(sal) mysal from emp group by deptno) e1 where e.deptno=e1.deptno and e.sal> e1.mysal;
  7)oracle分页,分页比较复杂,采用的是嵌套查询方式,二分法,速度比较快,但是语句比较复杂
      (1) rownum分页 (select * from emp)
      (2) 显示rownum,oracle 自动分配的
          select e.*,rownum rn from (select * from emp) e;
     (3)显示前5条数据,注意的是这里的条件rownum<5不可以写成rn<5,否则没有数据
          select e.* ,rownum rn from emp e where rownum<5;
          如果写>5成:select e.* ,rownum rn from emp e where rownum>5;
          将没有数据,要想用>条件,则必须再嵌套一个子查询
      (4) 显示第6到第10调数据,注意,最外层的条件rn>=6不可以写成rownum>=6,否则也没有数据
          select e2.*from (select e.* ,rownum rn from emp e where rownum<=10) e2 where rn>=6;
     (5)对于需要查询指定的字段时或者排序、分组等,只需要改变最里面的查询条件
          查询员工名字和薪水
          select e2.*from (select e.ename, e.sal ,rownum rn from emp e where rownum<=10) e2 where rn>=6;
   8)用查询结果创建新表
      create table mytable(id,name,sal) as select e.empno,e.ename,e.sal from emp e;       
   9)合并查询(union,union all,intersect,minus)
     (1)union 用于取得两个结果集的并集。
          select ename ,sal, job from emp where sal>2500 union select ename,sal,job from emp where job='MANAGER'
     (2)union all 用于把所有查询到的记录联合起来
          select ename ,sal, job from emp where sal>2500 union all select ename,sal,job from emp where job='MANAGER'
      (3) intersect 用于取得两个结果集的交集
          select ename ,sal, job from emp where sal>2500 intersect select ename,sal,job from emp where job='MANAGER'
     (4)minus 用于取得两个结果集的差集,只显示在第一个集合但是不在第二个集合的数据
          select ename ,sal, job from emp where sal>2500 minus select ename,sal,job from emp where job='MANAGER'
     
     
   

分享到:
评论

相关推荐

    oracle学习笔记1

    在尚学堂马世兵的Oracle课堂笔记中,我们能看到一系列基础的SQL查询语句,这些都是学习Oracle数据库不可或缺的部分。 首先,`DESC`命令用于获取表的结构信息,例如`DESC emp`、`DESC dept`和`DESC salgrade`分别...

    Oracle学习笔记1.docx

    Oracle 学习笔记 1 本文档涵盖了 Oracle 学习的基础知识,包括客户端工具、用户管理、表结构、SELECT 语句、DISTINCT 操作、WHERE 子句、ORDER BY 子句和 SQL 函数等内容。 客户端工具 Oracle 提供了多种客户端...

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    Oracle学习笔记.pdf

    在Oracle学习笔记中,对安装卸载和配置的详尽讲解,不仅为学习者提供了操作指导,而且还涉及到了数据库管理的一些基础知识点。这些内容对于数据库管理员和开发人员来说都是十分重要的,因为它们是操作Oracle数据库的...

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    oracle dba学习笔记

    Oracle DBA 学习笔记 标题:Oracle DBA 学习笔记 描述:学习使用维护 Oracle 数据库数年,对认为值得记录的 Oracle 维护脚本进行记录总结,存起来,虽然今后开源是方向,但不可否认 Oracle 仍然非常有水平的,在...

    oracle学习笔记整理

    以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...

    Oracle学习笔记 Oracle学习笔记

    根据提供的信息,我们可以总结出以下Oracle数据库学习的关键知识点: ...以上是基于提供的内容整理出的Oracle学习笔记中的关键知识点。通过理解这些基础知识,可以更好地管理和操作Oracle数据库。

    oracle学习笔记.txt

    超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。

    oracle学习笔记-入门基础

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的特性和功能来优化数据管理和查询性能。本文主要探讨Oracle数据库的入门基础知识,特别是与索引相关的概念。 首先,我们要理解ROWID的概念。ROWID是...

    Oracle学习笔记——日常应用、深入管理、性能优化 示例代码

    Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...

    oracle学习笔记下载

    ### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

Global site tag (gtag.js) - Google Analytics