oracle数据库—01



数据库的选择:

根据项目规模(负载)安全性和成本来决定使用什么样的数据库。

现在的小型数据库(微软的access)在20年前都是大型的;

(瑞典AB公司)mysql sql server(微软的)是中型的;

(美国oracle公司的)oracle是大型的数据库;

oracle对于权限的管理很好。用户的管理

启动oracle就是启动一个oracle实例; 默认的有syustem用户和sys用户






ORACLE介绍


两个主要的用户,三个重要的角色


oracle的管理包括备份数据,备份计划,简库,视图,


sys拥有三个人角色的权利

sys:拥有dbasysdbasysoper(系统操作员 角色或权限,是Oracle权限最高的用户,只能以sysdbasysoper登录,不能以normal形式登录。

System:拥有dbasysdba权限或角色,可以以普通用户的身份登录。

sysdbasysoperDBA区别】


Sysdba用户: 可以改变字符集、创建删除数据库、登录之后用户是SYSshutdownstartup

Sysoper:用户不可改变字符集、不能创、删数据库、登陆之后用户是PUBLIC shutdownstartup

DBA用户:只有在启动数据库后才能执行各种管理工作。




“SYSOPER”权限,即数据库操作员权限,sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public。权限包括:打开数据库(STARTUP, ALTER DATABASE OPEN/MOUNT/OPEN),服务器(CREATE SPFILE,etc)










ORACLE的常用命令


查看用户下所有的表 

            SQL>select * from user_tables;

查看帮助 Help show 或者? show


运行命令文件 


SQL>START 文件路径.sql
SQL>@文件路径





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/SQLOracle数据库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就要求逻辑清楚



猜你喜欢

转载自blog.51cto.com/zhouyaxiong/2117808