---
Oracle基础
---
oracle的常用命令 第一章
(1) 请使用 scott 用户登录 oracle 数据库实例,然后,切换身份为 system 用户
登录后,使用:
简单使用:conn 用户名/密码
该命令经常用于切换当前用户。因为我们建议大家在登录的时候用普通用户,scott,如果确实需要 system
用户,测可以使用该命令切换为高级用户。
一、连接命令
(1)conn[ect]用户名/密码@网络[as sysdba/as sysoper]
(2)show user 命令可以用来显示当前用户名
(3)disc[onnect] 用户 该命令用于断开和oracle连接,但是不退出sqlplus窗口
(4)exit 退出sqlplus窗口
(5)passw[ord] 该命令用于修改用户密码
基本用发:password 用户名:
如果给自己修改密码, 则可以不带用户名,如果给别人修改密码(前提是 system,
或者说一声用户来修改),则需要带用户名。
-------------------------------------------------------------------------------------
二、交互命令
(1)& :可以替代变量,而该变量在执行时,需要用户输入。
基本用法: select* form table where coumnName=&***;
slect * from emp job=&job;
(2)edit :用于编辑脚本
基本用法: edit d:\aa.sql
(3)spool :把屏幕中上显示的记录,保存到文件中。
(1)linesize: 每行显示的字数。默认是80个。
基本用法: set linesize 字符数
(2) pagesize 每页显示的行数
基本用法: set pagesize 100;
-------------------------------------------------------------------------------------
三、oracle的用户管理
① 创建用户(简单版)
基本用法: create uer 用户名 identified by 密码;
eg: 创建一个普通用户xiaoming
create user xiaomig identified by m124;[oracle 要求用户密码不能用数字开始。]
创建用户(细节)
eg:create user ljf identified by m123
default tablespace users
temporary tablespace temp quota 3m on users;
identified by 表明用户ljf将用数据库方式验证default tablespace users//用户的表空间在uers上。
temporary tablespace temp //用户ljf的临时表建在temp空间
quata 3m on users//表明用户ljf建立的数据对象(表、索引、pl/sql块。。)最大只能是3m。
刚刚创建的用户是没有任何权限的,需要dba给该用户权限。
grant connect to ljf;
如果你希望该用户没有空间的权限
grant resource to ljf
如果你希望该用户成为dba
grant dba to ljf
----------------------------------------------------------------------------------------------
②oracle 管理用户的原理
权限:从大类来分:系统权限和对象权限
系统权限有128中,常用的有:create session 登录数据库实例
create table 建表权限 create index 、create view
create sequence create trriger...
对象权限: unpdate、insert、delete、select
角色分两种:预定义角色、自定义角色。
预定义角色:把常用的权限集中起来,形成的角色。dba、connect、resource这几个角色是常用的。
自定义角色:自己定义的角色。
授予或回收权限
基本语法:授予 grant 权限/角色 to 用户
回收 revoke 权限/角色 from 用户
②修改密码
password 用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user 的系统权限,也可以使用password用户名
alter user 用户名 identified by 新密码。
④方案(schema)
当一个用户创建好后,如果该用户创建了任意一个数据对象,这时,我们的dbms就会创建一个对应的方案与该用户对应,并且该方案的名字和用户名一致。
小技巧:如果希望看到某个用户的方案究竟有什么数据对象,我们可以用pl/sql developer;
要求:请完成一个功能:让xiaoming 用户可以去查询 scott 的 emp 表
步骤1.先用scott 登录
conn scott/tiger;
步骤2.赋权限
grant select[update][delete][insert][all] on emp to xiaoming;
小明要查询scott 的emp 表时,要这样写:select * from scott.emp;
----------------------------------------------------------------------
四、使用profile(规则)文件对口令进行管理
基本语法:
创建profile文件
create profile 文件名 limit failed_login_attempts 3 password_lock_time 2;
指定给用户:alter user 用户名 profile profile文件名;
需求,只允许某用户,最多尝试登录三次,如果三次没有成功,则锁定两天,两天后才能重新登录。
步骤1 conn system/cclljf
2 create profile myprofile1 limit failed_login_attempts 3 password_lock_time 2;
3 alter user scott profile myprofile1;
给账户(用户)解锁
alter user 用户名 account unlock;
终止口令
需求:一个用户的密码做多只能用10天,宽限期为2天,到时必须设置重新的密码。
基本语法:
create profile 文件名 limit password_life_time 10 password_grace_time 2;
分配文件
alter user 用户名 profile 文件名;
删除profile文件
drop profile 文件名;
-------------------------------------------------------------------------
五、oracle数据库的启动流程
①可以在控制台(dos控制台下运行) 查看window系统信息指令:systeminfo;
lsnrctl start;用于启动监听
②启动数据实例
oradim -startup -sid 数据库实例名
-------------------------------------------------------------------------
六、oracle 登录认证方式
oracle认证分为普通用户和特权用户
- 普通用户登录,默认是以数据库方式验证,如:conn scott/tiger;
- 特权用户登录(sys)
-- 只要当前这个系统用户是在ora_dba组中,则可以通过),默认是以操
作系统方式验证。如:conn system/ccljf as sysdba
dbms一看到as sysdba则认为要以特权用户登录,前面的用户名和密码口不看,登陆后,
自动切换成 sys用户 等价于conn sys/cclljf;
-- 如果当前用户不在ora_dba组中,这时候再使用数据库验证。
-- 可以通过修改sqlnet.ora文件,可以修改oracle登录验证方式:
SQLNET AUTHENTICATION_SERVICES=(NTS) 是基于操作系统验证
SQLNET AUTHENTICATION_SERVICES=(NONE) 是基于oracle验证
SQLNET AUTHENTICATION_SERVICES=(NONE,NTS) 两者共存。
----------------------------------------------------------
如何找回管理员密码
① 搜索名为PWD 数据库实例名.ora 文件
* 数据库实例名 是根据实际情况定,比如:orclljf
②备份一份密码文件
③生成一份新的密码文件,在doc控制台下输入命令:
orapwd file=xxx password=xxxx entries=xx
file:密码文件的全路径(和原来的一样)
password:表示新的密码
entries:表示登录同时可以登录多少个sys用户
注意:修改后要重启数据库实例,这样修改的密码文件才能生效。
课堂练习:
给scott用户分配一个profile,要求如下:
1. 尝试登录的登录次数4次
2. 如果4次登录错误,则锁定该用户2天
3. 密码每隔5天修改一次,宽限期为2天
conn system/cclljf
create profile myprofile1 limit failed_login_attempts 4
password_lock_time 2 password_life_time 5 password_grace_time 2;
4. 练习如何给用户解锁
conn system/cclljf
alter user scott account unlock;
5. 联系如何删除profile文件
drop profile myprofile1 cascade;
oracle 第二章 笔记
创建表
create table table_name(
列名 劣的数据类型,
....
)
oracle 数据类型
文本、二进制类型
① char(size)
存放字符串,最大 2000个字符,是定长。
② varchar2(size)
变长,最大可以存放4000个字符。是变长
注意:如果确定数据的长度是固定的,比如商品编号(8位),则应当使用char来存放,
以提高存取速度,如存放的数据的是变化的。则使用varchar2.
③ nchar
定长,unicode编码,最大2000个字符。
④nvarchar
变长,unicode编码,最大4000个字符
⑤ clob(character large object) 字符型大对象
变长,最大8tb 1t = 1024g,一般存放字符类文件
⑥ blob
变长,最大8tb,存储二进制文件,如:音乐文件等
*说明:我们在实际开发中很少把文件存放在数据库(效率问题),实际上我们一
般记录文件的有一个路径(http://www.baidu.com/..)
-----------------------------------------------------------------------
数值类型
① number
可以存放整数,也可以存放小数。number(p, s)
p为整数位,s为小数位,范围: 1<=p <=38, -84<= s <=127
保存数据范围:-1.0e-130 <= nmber value <1.0e+126;
*-10e-130(科学计数法):就是 -1.0 乘以 10 的-130次方。
保存在机器内部的范围: 1--22bytes;是变长。
② date 日期类型
用于表示时间,(年/月/日/时/分/秒)
oracle 日期的默认格式是 ‘dd-mm-yyyy’;如果我们希望使用自己习惯的日期添加,
也可以但是需要借助oracle的相关函数。
- timestamp(n) 是邮戳,n的值0--9,是可以选择。时间是会联动的。
表管理-修改表
//添加一个字段
alter table 表名 add (新的列名 列的类型);
//修改一个字段
alter table 表名 modify (culumnname datatype);
//删除一个字段
alter table tablename drop column columnname;
//修改表的名字
rename 旧表的名字 to 新的名字;
实际使用:
练习:
1 给学生表添加班级编号
atler table student add (classId number(10));
2 学生姓名 变成 varchar2(30)
alter table student modify (sname varchar2(30));
3
Oracle基础查询(2)
最新推荐文章于 2021-04-07 09:21:36 发布
本文深入探讨Oracle数据库的基础查询操作,包括SELECT语句的使用、JOIN的实现、子查询的应用以及聚合函数的综合实例。通过学习,读者将掌握如何高效检索和分析Oracle数据库中的信息。
摘要由CSDN通过智能技术生成