Oracle数据库基础

原创 2016年05月30日 16:32:32

1、使用PL/SQL数据库开发工具登录,在sql command命令窗口执行如下操作

oracle 默认有以下三个用户 sys(超级管理员)  system(普通管理员) scott(普通用户)

alter user sys identified by a;                 / /使用 sys登录,修改初始密码

alter user scott account unlock;            / /用sys超级管理员使scott用户解锁,scott用户即可登录

grant create session to scott;                / /给scott用户授权 可以使用create

create user dyg identified by a;     / /创建一个用户 dyg 密码 a

grant create session to dyg;                 / /给dyg 授权会话

但是实际上给一个新建用户用角色resource,connect赋给一个新用户权限

grant resource,connect   to dyg;

 
    查看表: desc table_name;



    --alter create droop (DDL :数据定义语言)
   -- insert ,update, delete,select(DML :数据操作语言)
    insert 插入数据到表中,没有外键的表
    插入一段数据:insert into test(id,name,age)values(1001,'tony',22);


   -- 当插入所有字段时,可以省略,指定字段名,必须要和字段顺序一致: insert into t_test values(1002,'admin01',25);
    添加默认约束:alter table t_test modify age default 18;
   -- delected 删除表中内容
---update :修改表中的数据
    update t_test set name='小红' where id=1001;
    --修改多列时,用,隔开
    update t_test set name='小小红',age=100 where id=1001;
    --不使用where 推荐使用,会修改所有的数据
    update t_test set name='我是'; 将t_test name字段全部设为 '我是'


--delete:删除表中的数据

    delete from t_test where id=1001;
    delete from t_test;//删除t_test表中全部数据;
    
 --保障数据的安全有效性:
 TCL事物控制语言commit,roolback,saveoption



二、外链接:



1、  按部门统计员工的数量但是这个查询没有包括人数为空的部门



2、右外连接把人数为空的部门包含进来如下



左外链接把行号3改成   where e.deptno=d.deptno(+)  即可


三、自连接:

通过别名,将同一张表视为多张表


  1、示例:查询员工姓名和员工的老板姓名


不加where 过滤,自连接产生笛卡儿积即13*13条记录



四、层次查询

层次查询本质上是一个单表查询,在一定程度上层次查询可以取代自连接。



1、执行这条语句(其中level是伪列,用leave升序排列):


注意:行号3  connect by 上一层的员工号=老板号


自连接层次查询优缺点:自连接不适合查询大表因为会产生笛卡尔积,层次查询查询结果不太直观。



五、子查询:


用于解决一步不能求解的情况下使用子查询

1、示例:查询工资比SCOTT高的员工信息,SCOTT大写

首先查询SCOTT工资:  select sal from emp whereename='SCOTT';

查询结果:

 

查询高于3000的人:select * fromemp where sal>3000;

然后通过子查询查薪水大于SCOTT的人:select * from emp where sal>(select * fromemp where ename=’SCOTT’);  执行结果如下:



子查询注意的问题:

1、子查询语法中的小括号(子查询要写在()内)

2、子查询的书写风格

select *

  from emp

  wheresal>(select sal

              fromemp

              whereename=’SCOTT’);       //清晰明了易于检查错误

3、可以使用子查询的位置:where,select,having,from


1、select后面的子查询  

执行:select empno,ename,sal,(select job from emp where empno=7839) 第四列  from emp;

select后面只能有一个元素

第四列即为员工的老板的职位

 select后面的查询必须是单行子查询

如: select empno,ename,sal,(select job from emp where

select后面只能有一个元素

2、在having后面的子查询:


3、在from后面的子查询:



4、不可以使用子查询的位置:group by



5、强调:from后面的子查询

6、主查询和子查询可以 不是同一张表

7、一般不在子查询中使用排序;但在Top-N分析问题中必须对子查询排序

8、一般先执行子查询,再执行主查询;但相关子查询例外

9、单行子查询只能使用单行操作符;多行子查询只能使用多行操作符

10、注意:子查询中是null值问题


注:部分截图来自慕课网oracle课程





Oracle数据库的基础使用

oracle数据库的基础使用
  • zhaodongwoshini
  • zhaodongwoshini
  • 2016年11月10日 16:37
  • 5211

Oracle 数据库基础知识点总结(一)

1.数据库的完整性  ①实体完整性:靠主键来维护,数据唯一且不能为空 ②参照完整性:靠外键来维护,主键表无记录外见表则无法操作数据 ③域完整性:check()约束 not null 约束 defau...
  • ytc15971476977
  • ytc15971476977
  • 2015年09月28日 19:04
  • 1134

初学者Oracle数据库:sql语句的基本使用与示例

一.DBMS 和 DB 1.DBMS 是什么 数据库管理系统 是管理数据库的软件 2.DB 是什么 真正存储数据的文件 3.RDBMS 和 RDB ...
  • gwjxl
  • gwjxl
  • 2014年04月29日 16:43
  • 5071

oracle数据库基础查询sql练习

select * from emp; --emp 员工信息表 : --empno   ;   ename   ; job     ; mgr     ;hiredate ; sal   ; comm...
  • qq_27079537
  • qq_27079537
  • 2015年07月02日 11:18
  • 164

Oracle零基础入门.第一周课程总结

Oracle数据库: --1  数据库的基本概念: 数据库就是"数据"的"仓库";    数据库中包含表,关系以及操作对象; 数据存放在表中. --程序架构 C/S:client/server,拥...
  • weixin_39792307
  • weixin_39792307
  • 2017年08月13日 21:46
  • 73

Oracle数据库DBA必备基本技能

【Oracle数据库DBA必备基本技能】     1)首先知道控制文件,数据文件,以及日志文件的所在目录以及表空间相关使用情况,会优化Top级别SQL语句     se...
  • zhihui1017
  • zhihui1017
  • 2016年03月14日 14:10
  • 1083

oracle数据库基础知识学习笔记

一、SQL语言分类: 1.DDL(数据定义语言):  create(创建)    alter(修改)  drop(删除)------------主要是对表操作。   2.DML(数据操作...
  • u011955534
  • u011955534
  • 2013年11月04日 18:52
  • 6494

Oracle数据库基础教程:入门其实很简单

Oracle数据库基础教程:入门其实很简单 Oracle数据库系统是目前最流行的客户/服务器数据库之一。本文集从初学者的角度出发,由浅入深、循序渐进地介绍了Oracle数据库开发的基础知识。...
  • chengying332
  • chengying332
  • 2014年05月26日 11:17
  • 3560

VML 画统计 柱状、饼图、折线

-->v/:*         { behavior: url(#default#VML) }o/:*         { behavior: url(#default#VML) }.shape   ...
  • 21aspnet
  • 21aspnet
  • 2007年03月22日 23:01
  • 4860

oracle数据库--基础

数据库模型 层次结构模型 网状结构模型 关系结构模型 三级模式和两级映射三级模式指的是外模式、模式和内模式; 两级映射指的是外模式/模式映射、模式/内模式映射。三级模式美国国家标准协会(Am...
  • jlj417
  • jlj417
  • 2017年10月10日 15:31
  • 93
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle数据库基础
举报原因:
原因补充:

(最多只允许输入30个字)