数据库之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;

 

数据库之Oracle的更多相关文章

  1. sqlserver 2008R2数据库迁移oracle

    x项目需要,将以前的sqlserver数据库迁移的oracle数据库中,由于以前对oracle只是在DML语句的步骤,所以总结一下这次遇到的问题以及具体步骤 1,oracle新建数据库 新建Oracl ...

  2. 初识 数据库及Oracle数据库

    一.数据库基本概念二.数据库举例三.Oracle特点四.Oracle版本五.安装Oracle注意事项六.SQL简介七.Select语句 一.数据库基本概念 数据库(Database,DB)数据库管理系 ...

  3. oracle监听,数据库,oracle服务器的启动和停用

    一.oracle监听,数据库,oracle服务器的启动和停用 使用root用户登录:切换用户su – root/root操作系统,一般只有root用户才有权限去操作系统中安装的oracle数据库服务器 ...

  4. 数据库之Oracle的介绍与使用20180620

    /*******************************************************************************************/ 一.orac ...

  5. Microsoft-PetSop4.0(宠物商店)-数据库设计-Oracle

    ylbtech-DatabaseDesgin:Microsoft-PetSop4.0(宠物商店)-数据库设计-Oracle DatabaseName:PetShop(宠物商店) Model:宠物商店网 ...

  6. Oracle数据库之Oracle的下载与安装

    二.Oracle 的下载与安装 2.1.Oracle 简介 Oracle 公司是全球最大的信息管理软件及服务供应商,成立于 1977 年,主要的业务是推动电子商务平台的搭建.Oracle 公司有自己的 ...

  7. Linux下安装Oracle后重启无法登录数据库ORA-01034:ORACLE not available

    Linux下安装了数据库,安装完成后可以用,今天启动就不能用了,提示Oracle not available,后来查找资料,据说是oracle服务没有打开.如下方式可以解决问题. [root@root ...

  8. 数据库之Oracle优化技巧(一)

    数据库之Oracle优化技巧(一) 1.where子句中的连接顺序 在Oracle数据库中,where子句的执行顺序是自下而上进行解析,根据这个原理,表之间的连接必须写在其他where条件之前,那些可 ...

  9. Python操作数据库类 Oracle、Sqlserver、PostgreSQL

    我在工作中经常使用Python,特点很明显,轻量,效率还不错,尤其在维护或者自动化方面. 下面是我使用到的访问数据库(Oracle.Sqlserver.PostgreSQL)的公共类. 一.Oracl ...

随机推荐

  1. 邁向IT專家成功之路的三十則鐵律 鐵律二:IT專家專業之道–專精

    在IT技術的領域當中有許多的類別,若要細分那可真是難以一一列舉,但常見的大致有軟體研發工程師.韌體研發工程師.系統分析師.網路工程師.系統工程師.維護工程師.動畫設計師.製圖工程師.以及各類別的專業電 ...

  2. GO --微服务框架(一) goa

    当项目逐渐变大之后,服务增多,开发人员增加,单纯的使用go来写服务会遇到风格不统一,开发效率上的问题. 之前研究go的微服务架构go-kit最让人头疼的就是定义服务之后,还要写很多重复的框架代码,一直 ...

  3. Scala IDE里的WorkSheet的使用

    所见即所得的一个工具, 左边编码,右边立即出结果 https://www.cnblogs.com/zlslch/p/6115118.html

  4. java资源分享、面试题资料、分布式大数据

    马士兵大数据_架构师(1) 链接:http://pan.baidu.com/s/1qYTW1m0 密码:lxjd spring Cloud 链接:http://pan.baidu.com/s/1bzG ...

  5. VS中的 MD/MT设置 【转】

    VS系列工具作为目前微软主打的集成开发环境,在历经了近20多年的发展后,到如今已经可以 说是Windows平台上各种IDE环境中的翘楚了.很多别的开发工具已经难望其项背了,如今VS2010也已经面市很 ...

  6. Effective JavaScript Item 54 将undefined视为&quot;没有值&quot;

    将undefined视为"没有值" JavaScript中的undefined是一个特殊的值:当JavaScript没有提供详细的值时.它就会产生undefined. 比方: 未被 ...

  7. PHP如何学习?

    PHP 的学习,可以归纳为三个类型:      语言的基础语法学习,这些是 ifelse, while, switch, class, function, trait 等:  内置函数/类学习,这 ...

  8. 每日一支TED——帕特里夏&#183;瑞安:不要固执于英语

         瑞安讲述了她在科威特教学英语30年最大的 关于语言的一个感受:英语在迅速的在全世界传播,而其它的语言在逐渐的消失.      瑞安想要说的是.拥有一种国际性的语言,大家都能够理解,让全部人的 ...

  9. python正则中的贪婪与非贪婪

    当重复一个正则表达式时,如用 a*,操作结果是尽可能多地匹配模式.当你试着匹配一对对称的定界符,如 HTML 标志中的尖括号.匹配单个 HTML 标志的模式不能正常工作,因为 .* 的本质是“贪婪”的 ...

  10. inch mil mm换算

    inch:英寸 mil:密耳 mm:毫米 1mil=0.0254mm=25.4um 1mm=39.37mil 1inch=1000mil=25.4mm