一:数据库种类
- 小型数据库:access、foxbase
负载量小,用户大概100人之内;成本在千元之内;对安全性要求不高。 - 中型数据库:informix、sql server、mysql
载量:日访问量5000~10000;成本在万元内;商务网站; - 大型数据库:sybase、db2、oracle
海量负载;安全高。
在项目中怎么选择数据:项目的负载量;项目成本;安全性等。
随着科技的进步,数据库知识也日新月异,一些新技术需要我钻研,同时成熟的技术也需要我们时刻回顾,为故而知新吗。
二:安装oracle数据。百度搜索有很多安装的教程。
数据库 (永久的、磁盘上)
磁盘上存储的数据的集合
在物理上表现为数据文件、日志文件和控制文件等
在逻辑上以表空间形式存在
必须首先创建数据库,然后才能使用Oracle
数据库实例 (临时的、内存中)
- 每个启动的数据库都对应一个数据库实例,由这个实例来访问和控制数据库
- 为了运行数据库,Oracle系统所运行的所有进程和分配的内存结构的组合体
数据库物理结构:
- 数据文件 :扩展名是.DBF,用于存储数据库数据的文件,数据库表和数据文件不存在一对一对应关系
- 控制文件 :扩展名是.CTL,是数据库启动及运行所必需的文件,默认包含3个控制文件,各个控制文件内容相同
- 日志文件 :扩展名是.LOG,它记录了对数据的所有更改信息,多个日志文件组之间循环使用
数据库逻辑结构:
- 表空间:每个Oracle数据库都是由若干个表空间构成,用户在数据库中建立的所有内容都被存储到表空间中,创建数据库时会自动创建若干表空间
三:oracle sql*plus常用命令
- sys用户和system用户
Oracle安装会自动的生成sys用户和system用户
(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是manager
(2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是change_on_install
(3)、一般讲,对数据库维护,使用system用户登录就可以拉
注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。 - sql*plus是oracle自带的工具软件,主要用于执行sql语句,pl\sql块。
操作如下:
(1)、在D:\dev\oracle\product\10.2.0\db_1\bin\目录下的sqlplusw.exe。(D:\dev\oracle\为oracle安装目录)
(2)、在运行栏中输入“sqlplusw”即可 - sqlplus dos工具简介
(1)、概述:sqlplus是在dos下操作oracle的工具,其功能和sql*plus相似。
(2)、操作如下:在运行栏中输入“sqlplus”即可 - PLSQL Developer工具,需要自己安装 ——推荐大家使用
- sql*plus常用命令
1.conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]
说明:当用特权用户身份连接时,必须带上as sysdba或是as sysoper
eg、
SQL> show user
USER 为 “SCOTT”
SQL> conn system/oracle@orcl
已连接。
SQL> show user
USER 为 “SYSTEM”
SQL>
以上命令实现类似切换用户的效果
2.disc/disconn/disconnect
说明: 该命令用来断开与当前数据库的连接
3.pssw[ord]
说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
eg、
SQL> conn scott/oracle
已连接。
SQL> passw
更改 SCOTT 的口令
旧口令:
新口令:
重新键入新口令:
口令已更改
SQL>
4.show user
说明: 显示当前用户名
5.exit
说明: 该命令会断开与数据库的连接,同时会退出sql*plus
5.clear screen
清空屏幕
2)、文件操作命令
1.start和@
说明: 运行sql脚本
案例: sql>@ d:\a.sql或是sql>start d:\a.sql
2.edit
说明: 该命令可以编辑指定的sql脚本
案例: sql>edit d:\a.sql,这样会把d:\a.sql 这个文件打开
3.spool
说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql并输入sql>spool off
eg、
sql>spool d:\b.sql;
sql>select * from emp;
sql>spool off;
3)、交互式命令
1.&
说明:可以替代变量,而该变量在执行时,需要用户输入。
select * from emp where job=’&job’;
4)、显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设
置,可以去修改glogin.sql 脚本
1.linesize
说明:设置显示行的宽度,默认是80个字符
show linesize
set linesize 90
2.pagesize说明:设置每页显示的行数目,默认是14
用法和linesize 一样
至于其它环境参数的使用也是大同小异
四:oracle 用户管理
一:创建用户
创建:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
语法:create user 用户名 identified by 密码;
CREATE USER user
IDENTIFIED BY password
[DEFAULT TABLESPACE tablespace] --指定默认表空间
[TEMPORARY TABLESPACE tablespace] --指定默认临时表空间
CREATE USER kevin
IDENTIFIED BY kevin
DEFAULT TABLESPACE kevin_tablespace
示例:create user kevin identified by kevin;
注意:oracle规定,密码必须以字母开头,如果以数字开头,它不会创建创建用户时的权限分配:
- CONNECT角色: –是授予最终用户的典型权利,最基本的
ALTER SESSION –修改会话
CREATE CLUSTER –建立聚簇
CREATE DATABASE LINK –建立数据库链接
CREATE SEQUENCE –建立序列
CREATE SESSION –建立会话
CREATE SYNONYM –建立同义词
CREATE VIEW –建立视图
- RESOURCE角色: –是授予开发人员的
CREATE CLUSTER –建立聚簇
CREATE PROCEDURE –建立过程
CREATE SEQUENCE –建立序列
CREATE TABLE –建表
CREATE TRIGGER –建立触发器
CREATE TYPE –建立类型
DBA角色:拥有系统所有系统级权限。
--分配权限或角色
GRANT privileges or role TO user;
--撤销权限或角色
REVOKE privileges or role FROM user;
二:给用户修改密码
给自己修改密码 直接使用:SQL> password 用户名或passw
给别人修改密码则需要具有dba的权限,或拥有alter user的系统权限:
SQL> alter user user_name identified by 123456
三:删除用户
删除用户需要使用具有drop user权限的用户;或者以DBA身份操作。
语法:drop user user_name cascade;
cascade关键字:即在删除用户时,同时删除该用户创建的表。
四:权限:分为系统权限和对象权限。
五:角色:分为预定义角色和自定义角色。
六:权限分配使用关键字 grant
SQL> conn user_name/user_pwd
如果在创建 user_name没给其赋予该角色一定给的权限时,将登录失败提示:警告: 您不能连接到 ORACLE。
需要登录DBA用户给用户分配权限。
SQL> conn system/oracle --已连接。
SQL> grant connect to user_name; --授权成功。
SQL> conn user_name/oracle --已连接。
准确说:grant connect to user_name 不是赋权限,而是角色。下面我说一下赋予权限的问题。
--给用赋予查看scott下的表 tb_user
grant select on scott.emp to user_name;
--给用赋予修改scott下的表 tb_user
grant update on scott.emp to user_name;
--给用赋予删除scott下的表 tb_user
grant delete on scott.emp to user_name;
--给用赋予增删改查scott下的表 tb_user
grant all on scott.emp to user_name;
--给用收回增tb_user用户的某权限。
revoke select on scott.emp from user_name;
七:权限传递
--把查询emp表的权限赋予 user_name ,且user_name 可以将权限传递下去。
grant select on emp to user_name with grant option;
--收回权限
revoke select on emp from user_name ;
八:with admin option与with grant option区别
1、with admin option用于系统权限授权,with grant option用于对象授权。
2、给一个用户授予系统权限带上with admin option时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.
而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。