标签:oracle
数据库的选择:
根据项目规模(负载)安全性和成本来决定使用什么样的数据库。
现在的小型数据库(微软的access)在20年前都是大型的;
(瑞典AB公司)mysql 。sql server(微软的)是中型的;
(美国oracle公司的)oracle是大型的数据库;
oracle对于权限的管理很好。用户的管理
启动oracle就是启动一个oracle实例; 默认的有syustem用户和sys用户
ORACLE介绍
两个主要的用户,三个重要的角色
oracle的管理包括备份数据,备份计划,简库,视图,
sys拥有三个人角色的权利
sys:拥有dba、sysdba、sysoper(系统操作员 )角色或权限,是Oracle权限最高的用户,只能以sysdba或sysoper登录,不能以normal形式登录。
System:拥有dba、sysdba权限或角色,可以以普通用户的身份登录。
?【sysdba、sysoper、DBA区别】
Sysdba用户: 可以改变字符集、创建删除数据库、登录之后用户是SYS(shutdown、startup)
Sysoper:用户不可改变字符集、不能创、删数据库、登陆之后用户是PUBLIC (shutdown、startup)
DBA用户:只有在启动数据库后才能执行各种管理工作。
“SYSOPER”权限,即数据库操作员权限,sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public。权限包括:打开数据库(STARTUP, ALTER DATABASE OPEN/MOUNT/OPEN),服务器(CREATE SPFILE,etc)
ORACLE的常用命令 查看用户下所有的表 SQL>select * from user_tables; 查看帮助 Help show 或者? show 运行命令文件
oracle中用户的权限: 创建User时没有给赋上create session权限,导致使用conn的时候报错。 或在pl/sql developer里,创建user时选择system privileges->create session conn连接命令 disc[onnect]断开连接: : 授权Zyx用户可以增删改差t1表 SQL> grant all on t1 to zyx; Grant succeeded
收回zyx用户对于t1表的修改权限(update)。 SQL> revoke update on t1 from zyx; Revoke succeeded 不写日志的删除速度更快: 可以使用all()函数也可以使用max()函数实现 |
PL/sql的使用:
plsql编程:
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。
结构化查询语言(Structured Query Language,简称SQL)
在windows的终端输入 sqlplus就可以登录自带的oracle管理工具
Sql*pls的工具用于存储过程,触发器,sql编程
在pl/sql中 选择my_object
找到table文件夹,里边就是当前账户的所有表格
PL SQL可以导入导出dmp文件
new ——打开命令窗口
pl/sql中图形化建表的方式
查看pl/sql的帮助手册。
oracle的分页查询不好理解
一个清晰的查询语句才能够明白他的意思;
查询的时候是分组函数都得需要是分组函数
加两个rownum之后只有第一个有用。如果想再用一就需要再select一次。
所有的改动就只需改里面的一个就好了
这可以按照一个公式来查询,只要套着会用就行。
--分页查询一 (这个号理解一些)
select * from (select a1.*,rownum rn from (select * from student) a1 where rownum <=5) where rn>=2;
--分页查询二 (起别名,查询结果做新表)
select a1.* from (select student.*,rownum rn from student where rownum <=5) a1 where rn >=3;
--分页查询三(between实现)
select a1.* from (select student.*,rownum rn from student) a1 where rn between 3 and 5;
子表也叫做内嵌视图。必须对字表起一个别名而且最好不要使用as。
给列取别名的时候可以使用as
dba就要求逻辑清楚
标签:oracle
原文地址:http://blog.51cto.com/zhouyaxiong/2117808