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语句,pl\sql块
开始—>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:\b.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 手工步骤直接创建

 

posted @ 2019-11-21 21:25  TianShu  Views(329)  Comments(0Edit  收藏  举报