oracle笔记

oracle实例,数据对象(存储过程 表 。。。)
不同用户登录数据库权限不一样,访问权限也不一样
登录listenner和数据库实例

windows下oracle卸载:注册表
oracle管理工具的使用:

  1. 自带的pl/sql,主要用于执行sql语句
     oracle sql plus 主机字符串是实例的名称
    show user;显示当前用户
     cmd运行sqlplusw
  2. sqlplus dos下操作oracle
  3. oracle的企业管理器oracle oraclehome90->enterprise manager console
    方案
  4. pl/sql developer属于第三方软件,主要用于开发,测试,优化oracle pl/sql的存储过程比如:触发器,此软件oracle不带 需要独立安装。
    sql plus常用命令:
    连接命令:
    conn [etc]
    用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]
    当用特权用户身份连接时,必须带上as sysdba或是as sysoper
    例子:conn system/密码; //输错的话直接退出oracle,未登录任何用户
    disc [connect]
    说明:用来断开与当前数据库的连接
    passwd [password]
    说明:该命令用来修改用户的密码,如果要想修改其他用户的密码,需要用sys/system登录
    例子:passwd
       输入旧密码
    输入新密码
    确认新密码
    文件操作命令:
    start和@
    说明:运行sql脚本
    例子:
    sql>@ d:\a.sql 或者sql>start d:\a.sql
    edit
    说明:该命令可以编辑指定的sql脚本
    例子:sql> edit d:\a.sql
    spool
    说明:该命令可以将sql*plus屏幕上的内容输入到指定的文件中去。
    例子:sql> spool d:\b.sql 并输入sql> spool off
    交互式命令:
     &
    说明:可以替代变量,而该变量在执行时,需要用户输入
    例子:select * from emp where job=’&job’;
    显示和设置环境变量:
    概述:可以用来控制输出的各种格式,set show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本
  5. linesize
    说明:设置显示行的宽度,默认是80个字符
    sql> show linesize;
    sql> set linesize 90;
  6. pagesize
    说明:设置每页显示的行数目,默认是14
    用法和linesize一样
    oracle用户管理:(oracle下创建用户需要用到create user语句,一般具有dba权限的才能使用)
    例子:create user xiaoming identified by m1234;//密码必须以字母开头
    conn system/manager;
    给用户修改密码:(system)
    例子:passwd xiaomin;
    删除用户:(一般使用dba/system用户进行删除)
    例子:drop user 用户名;
    删除用户时注意:如果删除的用户已经创建了表,那么就需要带参数cascade
    创建的用户是不存在任何权限的,需要手动去指定权限,管理员登录。
    /*************************************
    系统权限:
    1. 系统权限指用户对数据库的相关权限(create session)
    2. 对象权限指用户对其他用户的数据对象(用户创建的表,存储器,触发器,存储过程,函数,包,角色,同义词,视图,视图等等)
    角色:事先定义一些角色(权限的批量)
    1. 角色分两种一种叫预定义角色
    2. 角色第二种叫自定义角色
    访问的权限(connect,dba(包括所有的权限),resource(表空间))
    例子:
    grant connect to xiaoming;
    conn xiaoming/m1234;
    /******************************************

对象权限:
新创建的用户是空的,什么都没有。
建表:
create table test(userid varchar2(20),username varchar2(30));
conn system/manager;
设置权限:
grant resource to xiaoming;
conn xiaoming/m1234;
create table test(userid varchar2(30),username varchar2(30));
select * from test;
desc test;//查看表结构
对对象权限的控制,将一个用户的表给其他用户
对象权限可以划分为:

  1. select

  2. insert

  3. init

  4. all

  5. create/delete

  6. index …
    例子:希望xiaoming用户可以去查询user2的emp表
    grant select on emp to xiaoming;
    //sys/system/user2 可以授权
    conn user2/m1234;
    select * from user2.emp; //要查找的表在user2上
    //user2.emp引出方案,简称方案
    回收权限:revoke(收回)
    conn user2/manager;
    例子:
    revoke select on emp from xiaoming;
    conn xiaoming/m1234;
    select * from user2.emp;
    权限的传递:
    //对权限的维护:
    。希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个权限交给别人
    –如果是对象权限,就加入with grant option
    grant select on emp to xiaoming with grant option
    例子:conn scott/m123;
    grant select on emp to xiaoming with grant option;//表明xiaoming可以继续授权这个权限给其他用户
    conn system/manager;
    creat user xiaohong identified by m123;
    grant connect to xiaohong;–xiaohong连接数据库
    conn xiaoming/m123;
    grant select on scott.emp to xiaohong;
    –如果是系统权限。–系统权限授权如下:
    system给xiaoming权限connect时:
    grant connect to xiaoming with admin option;
    –如果scoot把对emp表的select权限回收,那么xiaohong会怎样?
    scoot->xiaoming->xiaohong;scoot收回xiaoming权限,xiaohong则不拥有此权限
    例子:conn scott/m123;
    revoke select on emp from xiaoming;//撤销select权限
    conn xiaohong/m123;
    select * from scott.emp;//提示表或视图不存在.
    oracle用户的管理:
    使用profile管理用户口令:
    profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。
    当建立用户没有指定profile选项,那oracle就会将default分配给用户。
    帐户锁定:
    概述:制定该帐户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令
    例子:指定tea这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。
    –创建profile文件(一般由dba来操作)
    sql>create profile (固定) lock_account (创建规则的名称,可以改变) limit failed_login_attempts (代表锁定多少次) 3 password_lock_time (代表锁定多少天) 2;
    sql>alter user tea profile lock_account;
    例子:conn system/manager;
    create profile aaa1 limit failed_login_attempts 3 password_lock_time 2;
    alter user xiaoming profile aaa1;
    给帐户(用户)解锁:
    sql>alter user (不可以修改) tea (修改的用户名字) account unlock (不可以修改);
    sql>alter user xiaoming account unlock;
    –已经解锁
    终止口令:
    为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。
    例子:sql>create profile myprofile limit password.life_time (多少天) 10 password_grace_time (宽限期) 2;
    sql>alter user tea profile myprofile;
    口令历史:
    概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
    例子:
    1> 建立profile
    sql> create profile [password_history] limit password_life_time [10] password_grace_time [2] password_reuse_time [10]
    password_reuse_time --指定口令可重用时间即10天后就可以重用
    删除profile:
    概述:当不需要某个profile文件时,可以删除文件,删除文件之后所有约束即将消失。
    sql> drop profile [password_history] [[cascade]]

  7. 掌握oracle表的管理(创建/维护)

  8. 掌握对oracle表的各种查询技巧

  9. 学会创建新的oracle数据库
    oracle表明与列名的命名规则:

  10. 必须已字母打头

  11. 长度不能超过30个字符

  12. 不能使用oracle的保留字

  13. 只能使用如下字符:A-Z,a-z,0-9,$,#等等
    oracle支持的数据类型:
    字符型:
    char 字长 最大2000字符。
    varchar(20) 变长 最大4000字符。
    clob(character large object) 字符
    例子:创建表:
    create table users (username char(2000)//最大2000, 为够2000剩余由空格填充
    如果有一个字段知道字长多少而且经常被查询则定义为char,效率高(char用定长上来就整个匹配),浪费空间,varchar2节省空间效率低 clob是针对大对象 最大4G
    数字型:
    number范围-(10的38次方),10的38次方
    可以表示整数,也可以表示小数。
    number(5,2);
    表示一个小数有5位有效数,2位小数
    范围-999.99 —999.99
    number(5);
    表示一个五位整数
    范围:-99999----99999
    日期类型:
    date 包含年月日和十分秒
    timestamp这是oracle9i对date数据类型的扩展(时间戳)
    图片类型:
    blob 二进制数据 可以存放图片/声音 4G
    (需要安全性考虑的可以放到数据库中,普通图片和声音的放到文件夹下,数据库中存放一个路径即可)

表空间:假设数据库中有一张表,表最终存放在一个文件里,表存在一个磁盘上,表存在数据库中的某一块儿,称之为表空间–存放表的那部分空间
建表:
班级表:
sql>create table classes(
classid number(2),
classname varchar2(40));
修改表:
添加一个字段:
sql>alter table [student] add ([classid] number(2));
sql>desc student;
修改字段的长度:
sql>alter table student modify (xm varchar2(30));
修改字段的类型/或是名字(不能有数据)
sql>alter table student modify (xm char(30));
//表为空表可以按照上述操作,表中存在数据不要进行修改
删除一个字段:
sql>alter table student drop column sal;
//删字段不要轻易使用
修改表的名字:
sql>rename student to stu;
删除表:
sql>drop table student;
添加数据:
所有字段插入:
sql>insert into student values (‘A001’,‘张三’,‘男’,‘01-5月-2005’,10); //日月年必须带汉字
oracle中默认的日期格式’dd-mon-yy’,该日期的默认格式:
alter session set nls_date_format = ‘yyyy-mm-dd’;
修改后,可以用我们熟悉的格式添加日期类型:
sql>insert into student values (‘A002’,‘MIKE’,‘男’,‘1905-05-06’,10);
插入部分字段:
insert into student (xh,xm,***) values (‘A003’,‘jone’,‘女’);
插入空值:
insert into student(xh,xm,***,birthday)
values (‘A004’,‘MARTIN’,‘男’,null);

块结构示意图:
pl/sql块由三个部分构成:定义部分,执行部分,例外处理部分。
如下所示:
declare
/定义部分–定义常量,变量,游标,例外,复杂数据类型/
begin
/执行部分–要执行的pl/sql语句和sql语句/
exception
/例外处理部分–处理运行的各种错误/
end;

注意:定义部分是可选的
执行部分是必须的
例外部分也是可选的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值