数据库之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的更多相关文章
-
sqlserver 2008R2数据库迁移oracle
x项目需要,将以前的sqlserver数据库迁移的oracle数据库中,由于以前对oracle只是在DML语句的步骤,所以总结一下这次遇到的问题以及具体步骤 1,oracle新建数据库 新建Oracl ...
-
初识 数据库及Oracle数据库
一.数据库基本概念二.数据库举例三.Oracle特点四.Oracle版本五.安装Oracle注意事项六.SQL简介七.Select语句 一.数据库基本概念 数据库(Database,DB)数据库管理系 ...
-
oracle监听,数据库,oracle服务器的启动和停用
一.oracle监听,数据库,oracle服务器的启动和停用 使用root用户登录:切换用户su – root/root操作系统,一般只有root用户才有权限去操作系统中安装的oracle数据库服务器 ...
-
数据库之Oracle的介绍与使用20180620
/*******************************************************************************************/ 一.orac ...
-
Microsoft-PetSop4.0(宠物商店)-数据库设计-Oracle
ylbtech-DatabaseDesgin:Microsoft-PetSop4.0(宠物商店)-数据库设计-Oracle DatabaseName:PetShop(宠物商店) Model:宠物商店网 ...
-
Oracle数据库之Oracle的下载与安装
二.Oracle 的下载与安装 2.1.Oracle 简介 Oracle 公司是全球最大的信息管理软件及服务供应商,成立于 1977 年,主要的业务是推动电子商务平台的搭建.Oracle 公司有自己的 ...
-
Linux下安装Oracle后重启无法登录数据库ORA-01034:ORACLE not available
Linux下安装了数据库,安装完成后可以用,今天启动就不能用了,提示Oracle not available,后来查找资料,据说是oracle服务没有打开.如下方式可以解决问题. [root@root ...
-
数据库之Oracle优化技巧(一)
数据库之Oracle优化技巧(一) 1.where子句中的连接顺序 在Oracle数据库中,where子句的执行顺序是自下而上进行解析,根据这个原理,表之间的连接必须写在其他where条件之前,那些可 ...
-
电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具
Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老手,有时候安装起来也觉得挺烦.而工作中,通常服务器上面安装oracle就可以了,我们本地电脑 ...
随机推荐
-
IO总结
在电脑是新建一个文件夹 File file = new File("F:\\imgs"); File file = new File("F:/imgs"); 输 ...
-
NSIS打包(二)第一个安装包
基本介绍完之后,我们大概了解了NSIS中有哪些组件,现在我们通过一个简单的demo来学习如何使用这些组件. 1.环境配置 NSIS的环境非常简单,只有一个安装包,安装后即可使用. 官网:http:// ...
-
多线程调用HttpWebRequest并发连接限制
.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows 7 下默认是2,在服务器操作 ...
-
编写爬虫(spider)的预备知识:用java发送HTTP请求
使用原生API来发送http请求,而不是使用apache的库,原因在于这个第三方库变化实在太快了,每个版本都有不小的变化.对于程序员来说,使用它反而会有很多麻烦,比如自己曾经写过的代码将无法复用. 原 ...
-
jQuery慢慢啃之CSS(六)
1.css(name|pro|[,val|fn])//访问匹配元素的样式属性 $("p").css("color");//获取 $("p") ...
-
201521123015 《Java程序设计》第七周学习总结
1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下: public boolean contains(Object ...
-
linux 添加ftp用户与登录配置详解
不同类Unix有一定区别 版本不同也有些区别 在linux主机上如何添加ftp用户 (一)修改配置文件 vi /etc/vsftpd/vsftpd.conf 在96行,97,98行 96 chroot ...
-
Linux学习--进程概念
>>进程 说进程,感觉好空洞,来一张图,Linux下的进程: ps -eo pid,comm,cmd 说明:-e表示列出全部进程,-o pid,comm,cmd表示我们需要PID,COMM ...
-
FORM开发实现动态LOV
方法一.设置lov的记录组 IF :mat_trx.trx_action_id = 1 THEN set_lov_property('lot_number',group_name,'lot_issue ...
-
2.java面向对象类与类/类与对象之间关系详解
继承.实现.依赖.关联.聚合.组合的联系与区别 下面的内容很基础,同时也很简单,但是也很重要. 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功 ...