Oracle基础查询(2)

本文深入探讨Oracle数据库的基础查询操作,包括SELECT语句的使用、JOIN的实现、子查询的应用以及聚合函数的综合实例。通过学习,读者将掌握如何高效检索和分析Oracle数据库中的信息。
摘要由CSDN通过智能技术生成
---
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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值