数据库之Oracle

一. 用户的管理

1. 用户就是好比公司的某个人,而权限是这个人能在公司做什么,他的角色就是说明他的职位。

2. 用户的权限分为:

系统权限:对别的用户的管理操作。

对象权限:对保存的数据的管理操作。

3. 对用户的增删改查

增:例如我创建一个用户名为”atongmu“密码为“123”的用户:create user c##atongmu identified by 123;

删:不能自己删除自己,需要dba权限才可以,这样有了之后,删除用户:drop user  c##atongmu cascade;

改:一般就是改去密码:alter user c##scott identified by root;

查:当前用户下所有的表:select * from user_tables;

显示当前数据库的所有表:select * from tab;

select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
                  select * from all_users;  查看你能管理的所有用户!
                  select * from user_users; 查看当前用户信息 !

4. 用户权限管理

(什么是权限:就是你能不能操作某条SQL语句)

增:grant connect to C##用户名;

grant 操作名 on 表名 to 用户名 ;

grant 操作名 on 表名 to 用户名 with grant option;

删:revoke 操作名 on 表名 from 用户名;

revoke select on emp from us_test;

5. 一个用户的综合应用案例

(1)  创建用户,默认创建在哪个数据库里面,但是默认没有任何权限,不能登录任何数据库的,需要授权。

(2)  为其制定相应的权限,需要sys/system用户赋予权限: grant connect to xiaoming;

(3)  创建表create table TestTable(userId varchar2(30),userName varchar2(30));

(4)  grant resource to xiaoming;

(5)  查看表的列:desc test;

(6)  grant select on c##scott.emp to xiaoming;(sys,system,表所有者,scott)

(7)  select * from c##scott.emp;

(8)  收回权限(有权限的人都可以收回):revoke select on emp from xiaoming

(9)   权限传递:grant select on emp to xiaoming with grant option

(11)  如果授权在上级被会收,下一级也会被回收

(12)   把测试用户删除掉:drop user C##用户名 cascade;

二. 数据表管理

1 表和列的命名的规则

必须以字母开头,长度不能超过30个字符,不能使用oracle的保留字,只能使用下面的字符a-zA-Z0-9$#_等。

2 数据类型

number(5,2):5位数字,2位小数.范围(-10^38,10^38)

char:定长,2000字符,字符串char(5)     查询极快,浪费空间

varchar2:变长,4000个字符(8000个字节)

clob(character large object) 字符型大对象,最大4G

date:年月日 时分秒

blob:二进制数据电影,图片,音乐,4G,不会放到数据库里面,文件服务器

3 表操作

增: create table student(id,varchar2(30),username varchar2(30));

删:drop table 表名

改:rename 旧表名 to 新表名;

查:select 表名 from user_tables;//当前用户的表

三. Oracle的查询

(数据库中,我们一般用的最多的就是查询)

1 纯查询语句

select 列限定 from 表限定 where 行限定。

去除重复行(distinct):select distinct 列限定 from 表名 where 行限定(z只能单行查询)。

like 模糊行限定。

in:枚举查询: select * from emp where empno in(12,56,90);

where条件的组合查询(and,or) : select * from emp where (sal>500 or job='MANAGER') and ename                    like 'J%';

2 多表查询

笛卡尔乘积的原理:select * from emp,dept;

逻辑外键多表联查: select e.name,d.name, from emp e,dept  d where e.deptno=d.deptno

3 子查询/嵌套查询

什么叫子查询:多个select 关键词在同一个查询语句中,这种情况下,就是子查询.把内部select查询到的结果当成一张表,在通过外面的select语句查询出最终的结果。

例如:select * from emp where job in(select distinct job from emp where deptno=20);

4 SQL函数查询

字符函数:

lower(字符):把字符串转化为小写。

upper(char):将字符串转化为大写格式。

length():返回字符串的长度。

substr(char,m,n):取字符串的字串。

replace(char,search_s,replace_s) : 后换前

instr(char_1,char_2,[,n[,m]]):取得chr_2,在char_1中起始位置下标

数学函数:

abs(n):取绝对值

round(n,[m]):四舍五入,n为数据,m为四舍五入到第几位

trunc(n,[m]):截取,截取到小数点的第几位

mod(m,n):对m用n取摸(余数)

floor(n):向下取整

ceil(n):向上取整

5 分页查询

rownum分页 :select * from (select ta.*, rownum rn from (select ename, sal from emp order by sal desc) ta where rownum <=10) where rn >= 6;

RowID分页: select * from emp where rowid in(select rid from (select rownum rn,rid ,sal from(select rowid rid,sal from order by sal desc)where rownum<10)where rn>5)order by sal;

rownum()函数分页:select * from (select t.*,row_number() over (order by sal desc) rkfrom emp t)where rk<10 and rk>1;

 

转载于:https://www.cnblogs.com/atongmyuxiaowanzi/p/4853847.html

数据库之Oracle相关推荐

  1. oracle schema与mysql_Oracle数据库之Oracle 11g R2 用户与模式(schema)

    本文主要向大家介绍了Oracle数据库之Oracle 11g R2 用户与模式(schema),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 创建用户的语法: Create u ...

  2. oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...

    本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...

  3. mysql中tonumber函数_Oracle数据库之oracle的TO_NUMBER函数

    本文主要向大家介绍了Oracle数据库之oracle的TO_NUMBER函数,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. TO_NUMBER(x [, format], [  ...

  4. oracle数据库gold,Oracle数据库之Oracle GoldenGate 12.2.0.1 安装、升级和删除

    本文主要向大家介绍了Oracle数据库之Oracle GoldenGate 12.2.0.1 安装.升级和删除,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 1.准备工作 选择 ...

  5. 达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法

    sm_appmenuitem 这个演示表有 5 个索引. 我在不知道的情况下想知道这个表的索引有没有建成功,或者说我现在想知道这个表的索引有哪些,就要来查询了. 索引表查询方法如下,把对应的表放到括号 ...

  6. oracle set feedback off,Oracle数据库之Oracle导出数据中的prompt,set feedback 等是什么意思...

    本文主要向大家介绍了Oracle数据库之Oracle导出数据中的prompt,set feedback 等是什么意思,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. mpt 输出 ...

  7. oracle数据库 名词,Oracle数据库名词解释

    SQL(Structured Query Language) --- 结构化查询语言 VPD(virtual private database) --- 虚拟专用数据库 OAS(Oracle Appl ...

  8. jsp oracle 登录页面,Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能

    本文主要向大家介绍了Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库表的建立: c ...

  9. oracle表还原truncate,Oracle数据库之Oracle表恢复(truncate)

    本文主要向大家介绍了Oracle数据库之Oracle表恢复(truncate),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 一.模拟truncate操作: SQL> c ...

  10. 如何启用和关闭数据库的Oracle归档模式

    2019独角兽企业重金招聘Python工程师标准>>> 本文简单介绍如何启用和关闭数据库的Oracle归档模式. 一.shutdown normal或shutdown immedia ...

最新文章

  1. Android官方技术文档翻译——Ant 任务
  2. pgsql 两个时间字段相减_如何在Excel做专业的时间序列分析
  3. 【Python学习系列四】Python程序通过hadoop-streaming提交到Hadoop集群执行MapReduce
  4. linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
  5. python爬虫用多线程还是多进程_python爬虫之多线程、多进程爬虫
  6. 一文带你了解MySQL中的各种锁机制!
  7. php输出学生成绩foreach,PHP中foreach输出值不正确
  8. 聚合,组合,继承的区别
  9. opengl学习笔记(六)
  10. poj 1679 TheUniqueMST 最小生成树Kruskal(、Prim待做
  11. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香么!...
  12. IDEA出现Module ** must not contain source root **. The root already belongs to module **这类错误的解决方法
  13. python类方法和静态方法_Python 中的方法、静态方法(static method)和类方法(class method)...
  14. 数据优化——分库分表(三)中间件讲解
  15. word论文排版插件_Word排插件 一键搞定论文、标书、报告、公文等排版
  16. jQuery计算时间差和阴阳历转换
  17. 裸金属服务器启动之PXE与IPXE实践
  18. TWINSNOW - Snowflakes 哈希
  19. 常用的一句话反弹shell总结
  20. 自制atmega328p-pu为主控的Arduino核心板

热门文章

  1. 三菱M80操作介绍_共享屋:三菱M70 PLC 转M80操作步骤
  2. python中split的用法-python中的split()函数的用法
  3. pandas 空字符串与na区别_pandas中对nan空值的判断
  4. php限制登陆尝试次数,Laravel登录失败次数限制的实现方法
  5. 没有varselect这个函数_JavaScript学习笔记(四)-- 函数基础
  6. asp连接mysql数据库增删查_【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法...
  7. 就地链表反转_数据结构与算法系列之链表操作全集(二)(GO)
  8. mysql 存储过程 大于等于_mysql 存储过程 大于
  9. 硬币兑换python 每个面值有多个_【算法27】硬币面值组合问题
  10. php 实现防盗链,php中如何实现防盗链的示例