zoukankan      html  css  js  c++  java
  • Oracle基本使用

    连接数据库

     

    一、数据库

    1.1 主流数据库

    微软:             sql server 、access
    瑞典MySQL:    AB公司mysql
    IBM公司:         db2
    美国Sybase公司:sybase
    美国oracle公司: oracle

    1.2 数据库分类

    小型数据库:access、foxbase
    中型数据库:mysql、sql server、informix
    大型数据库:sybase、oracle、db2

    1.3 用什么数据库

    项目的规模
    负载量多大(用户多大)、成本、安全性

    二、oracle安装

    2.1 下载

    百度网盘:https://pan.baidu.com/s/1Nl9G-3R00018jo5y328Adg 

    提取码:ze2z

    2.2 安装

    安装参考:https://blog.csdn.net/qq_40774525/article/details/79919057

    安装参考:https://blog.51cto.com/12346621/2149650

    在oracle安装成功后,会默认生成三个用户:
    
    ①sys用户:超级管理员,权限最高,角色:dba,密码:change_on_install
    ②system用户:系统管理员,权限高,角色:dbaoper, 密码:manager
    ③scott用户:普通用户,密码:tiger

    2.3 oracle管理工具

    ①oracle自带的工具软件,主要用于执行sql语句,plsql块
    开始—>Oracle-OraDB11g_home1——>SQL Plus
    
    Oracle system 用户无法登录问题 
    解决:使用sysdba账号登录(运行cmd-->sqlplus / as sysdba)
            解除锁定账号(例如解除system用户):alter user system account unlock;
           为system用户设置新密码:alter user system identified by manager;
    
    ②pl/sql developer:第三方软件,主要用于开发,测试,优化oracle pl/sql的储存过程

     

    三、oracle基本命令

    3.1 sql plus常用命令

    ①连接:conn 用户名/密码;
    当用特权用户身份连接时,必须带上as sysdbs或者是as sysoper
    
    ②断开连接:disconnect
    
    ③修改密码:passw 回车,提示输入旧密码,然后输入新密码,输入确认密码
    该命令用于修改用户的密码,如果想要修改其他用户的密码,需要用sys/system登录
    
    ④显示当前用户名:show user;
    
    ⑤exit:该命令会断开与数据库的连接,同时会退出

    3.2 文件操作命令

    ①start:运行sql脚本
    案例: start d:a.sql;
    
    ②edit:编辑sql脚本 案例: edit d:a.sql;
    ③spool 该命令可以讲sql plus屏幕上的内容输出到指定的sql文件中 案例:spool d:.sql; 回车 输入select
    * from emp 回车 输入spool off;

    3.3 显示和设置环境变量

    可以用来输出的各种格式,set show如果希望永久的保存相关设置,可以去修改glogin.sql
    脚本
    
    ①linesize:设置显示行的宽度,默认是80个字符 show linesize; set linesize
    100
    ②pagesize:设置每页显示的行数目,默认是14 show pagesize; set pagesize
    20;

    四、oracle用户管理

    4.1 创建用户

    在oracle中要创建一个新的用户试用create user语句,一般具有dba的权限才能使用
    create user xiaoming identified by 密码;
    如:create user xiaoming identified by x1234;

    4.2 给用户修改密码

    ①给自己:password 用户名;
    
    ②给别人:需要具有数据库管理员权限 alter user 用户名 identified by 新密码;

    4.3 删除用户

    自己不能删除自己,一般以dba权限去删除某个用户
    在删除用户时,如果要删除的用户已经创建了表,就需要在删除的时候,带一个参数:cascade

    4.4 用户管理的综合案例

    ①新用户授权
    创建的新用户是没有任何权限的,无法登陆数据库,需要为其指定相应的权限
    给一个用户赋权限使用命令grant,回收权限使用命令revoke
    conn system/manager;        系统管理员登陆
    grant connect to xiaoming;  授权
    conn xiaomming/密码;        新用户登陆数据库
    
    
    ②实现:希望xiaoming可以查询emp表,但是xiaoming用户下面没有emp表,也无法建表 给xaioming授权建表: conn system
    /manager; grant resource to xiaoming; create table test(userid varchar2(30),username varchar2(30)); 建表
    ③实现:希望xiaoming可以查询scott用户的emp表 对象权限:用户对其他用户的数据对象操作的权限 包括select、insert、update、delete、all、create index conn scott
    /tiger; 授权:grant select on emp to xiaoming 只能查询 conn xiaoming/x1234; select * from scott.emp; 查询成功 ④实现:希望xiaoming可以修改scott用户的emp表 grant update on emp to xiaoming;
    ⑤实现:希望xiaoming可以修改
    /删除/查询/添加scott用户的emp表 grant all on emp to xiaoming; ⑥实现:scott希望收回xiaoming对emp的查询权限 conn scott/tiger; revoke select on emp from xiaoming; conn xiaoming/x1234; select * from scott.emp; 收回权限后,再次查询提示表或试图不存在

    4.5 对权限的维护

    ①实现:希望xiaoming可以查询scott用户的emp表,还希望xiaoming可以把这个权限继续给别人,
    如果是对象权限,就加入with grant option:grant select on emp to xiaoming with grant option
    如果是系统权限,就加入with admin option:grant select on emp to xiaoming with admin option
        
    
    ②授权 conn scott
    /tiger; grant select on emp to xiaoming with grant option;
    ③创建xiaohong用户: conn system
    /manager; create user xiaohong identified by x5678; grant connect to xiaohong; 授权xiaohong登录数据库
    ④xiaoming授权给xiaohong conn xiaoming
    /x1234; grant select on scott.emp to xiaohong; 授权成功
    ⑤实现:如果scott把xiaoming对emp表的查询权限收回,则xiaohong的权限也会被收回 conn scott
    /tiger; revoke select on emp from xiaoming; 收回权限成功 conn xiaohong/x1234; select * from scott.emp; 提示表和视图不存在,级联收回

    4.6 profile管理用户的口令

    profile是口令限制,资源限制的命令集合,当监理数据库时,oracle会自动建立名称为default的profile。当监理用户没有指定profile选项,那么oracle就会将default分配给用户

    ①账户锁定
    指定该用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba的身份去执行该命令
    
    
    例子:实现指定xiaoming这个用户最多只能尝试3次登录,锁定时间为2天
    首先创建profile文件(红色字体是关键字):
    create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
    alter user xiaoming profile lock_account;    把profile文件分配给指定的用户
    
    conn system/manager;
    create profile lock_account limit failed_login_attempts 3 password_lock_time 2; 
    alter user xiaoming profile lock_account;    用户已更改
    这时登录xiaoming用户,密码输入错误3次,账户就会被锁定
    
    
    ②账户解锁 conn system
    /manager; alter user xiaoming account unlock;
    ③终止口令 为了让用户定期修改密码可以时用终止口令的指令来完成,同样这个命令也需要dba的身份来操作 例子:实现给用户xiaoming创建一个profile文件,要求该用户每隔10天要修改登录密码,宽限期为2天。 create profile lock_account limit password_life_time
    10 password_grace_time 2; alter user xiaoming profile lock_account; ④删除profile 当不需要某个profile文件时,可以删除该文件 drop profile password_history;

    五、oracle表管理

    5.1 数据类型

    ①字符型
    char(10) :定长,最大2000字符
    varchar2(20) :变长,最大4000字符
    create table user (userName char(2000)
        
    
    ②数字型 number 范围:
    -10的38次方——10的38次方 可以表示整数,也可以表示小数 number(5,2) 表示一个小数有5位有效数,2位小数 范围:-999.99——999.99 number(5) 表示一个五位整数 范围:-99999——99999
    ③日期类型 date 包含年月日时分秒 timestamp 这是oracle9i对date数据类型的扩展
    ④图片类型 blob 二进制数据 可以存放图片
    /声音 4G

    5.2 创建表

    ①学生表
    create table student(  
    xh number(4),    学号
    xm varchar2(20),  姓名
    sex char(2),      性别
    birthday date,   出生日期
    sal number(7,2)  奖学金
    );    
    
    
    
    ②班级表
    create table class(
        classid number(2),
        cname varchar2(20)
    );

    5.3 修改表

    ①添加一个字段
    alert table student add (classid number(2));
    
    ②修改字段的长度 alter table student modify (xm varchar2(
    30));
    ③修改字段的类型 alter table student modify (xm char(
    30));
    ④删除一个字段 alter table student drop cloumn sal;
    ⑤修改表的名字 rename student to stu;
    ⑥删除表 drop table student;
    ⑦查看表 desc student;

    5.4 添加数据

    ①insert into student values(1,’张三’,’男’,’09-5月-99’,100,12);
    
    
    ②oracle中默认的日期格式:DD
    -MON-YY 注:DD:天,MON:月,YY:年 09-5月-99:1999年5月9号
    ③修改日期的默认格式:alter session set nls_date_format
    =‘yyyy-mm-dd’; 修改后可以用我们熟悉的格式添加日期类型: insert into student values (1,’张三’,’男’,’1999-05-09’,100,12);
    ④插入部分字段 insert into student(xh,xm,sex) values(
    1,’李四’,’女’);
    ⑤插入空值 insert into student(xh,xm,sex,birthday) values(
    1,’王二’,’男’,null);
    ⑥查询为空
    /不为空 select * from student where birthday is null; select * from student where birthday is not null;
    ⑦修改一个字段 update student set sex
    =’女’ where xh=1;
    修改多个字段 update student set sex
    =’女’ ,birthday=’ 1995-12-29’ where xh=1;

    5.5 删除数据

    ①delete from student;删除所有记录,表结构还在,写日志可以恢复,速度慢
    可以实现回滚
         savepoint 张三;          删除之前保存节点
         delete from student;    删除数据
       select * from student;  无数据
       rollback to 张三;        回滚
         select * from student;  有数据
        
    ②drop table student; 删除表结构和数据
    
    ③delect fromstudent where xh=1;  删除一条数据
    
    ④truncate table student; 删除表中的所有记录,表结构还在,不写日志无法找回删除的记录,速度快

     六、创建数据库的两种方法

    6.1 通过oracle提供的向导工具

    Database Configuration Assistant   数据库配置助手
    
    点击 —> 创建数据库 —> New Database —> 设置数据库名称 —> 数据库特性和定制脚本默认 —> 专用服务器模式 —> 典型自定义可以根据自己需求修改 —> 数据库储存默认 —> 创建数据库

    6.2 手工步骤直接创建

  • 相关阅读:
    LinqToXML~读XML文件
    C#~使用FileSystemWatcher来监视文件系统的变化
    HDU4144:Bacon's Cipher
    国产手机的路还很长
    同一个存储过程中,不能多次select into 到同一张表的问题
    IT行业为什么没有进度
    IOT(Index Organized Table)
    模版——容器,迭代器
    shell split分析日志文件
    VMware vSphere 服务器虚拟化之十七 桌面虚拟化之安装View链接服务器
  • 原文地址:https://www.cnblogs.com/zhangguosheng1121/p/11908515.html
Copyright © 2011-2022 走看看