首页 > 数据库 >oracle 10G

oracle 10G

时间:2023-05-17 14:31:29浏览次数:31  
标签:JOIN 数据库 10G test mysql oracle 连接


 

 

oracle 10G安装:

数据库口令 不可以全部都是数字 ,否则无法顺利开启Enterprise Manager 管理工具

 

管理工具 :

SQL plus 

isql plus   http:;//localhost:5560/isqlplus

Enterprise Manager  http:;//localhost:5500/em

启动数据库 :

startup opem misbb

若权限不是  conn sys as sysdba 再 startup opem misbb

关闭 :

shutdown

登录数据库 :

conn system@misdb

conn system@testdb

表空间操作 :

create tablespace ...

create tablespace ...

 

注意:mysql 不支持分布式应用,但 Oracle 支持

 

 

 

 

 

 

安装 后 全部服务最好 设为 手动,加快开机速度

OracleService----   此服务必须启动

Oracle10G----Listener   此服务必须启动

 

安装过程

勾选  创建事样本方案的数据库

 

所有帐户都使用同一口令 123

 

 

 

 

sqlplus中有两种命令:

  以命令行的方式进入数据库连接 sqlplus

  以窗口方式启动命令行工具  sqlplusw (如果有多个数据库,要指定,否则 默认)

 

set linesize 40

set pagesize 30

 

 

 

 

 sqlplus /nolog
connn / as sysdba  --用SYS用户登陆   //兼容老版本的用法,新版本:sqlplus sys/oracle as  sysdba
alter user scott identified by tiger;

alter user scott account unlock;对SCOTT解锁

 

 

让test用户的密码失效

alter user test password expire   (此用户以后会被要求输入旧的口令及新的口令)

 

锁住test用户

alter user test account lock

 

 

 

将创建session的权限 给 test 用户

grant create session to test

把多个权限一次性 给 一个用户

oracle提供了两个主要角色,connect , resource

grane connect,resource to test

 

sqlplusw中
ed 文件
@文件路径
若是.sql,后缀可以省略

conn sys/123 as sysdba
exit

show user

select * from tab

desc 表

/ 表示继续上一次命令

 

 

 

 

 

 

 

 

事务 处理: 保证数据操作的完整性

 

在oracle中对于每一个连接到数据库的窗口(sqlplus等)连接后,实际上都以和数据库的连接建立一个session

 

即每一个连接到数据库的用户都建立一个session

 

 

提交事务 commit

回滚事务 rollback

 

drop table .. 用rollback不能回复 

delete from .. 可以用rollback来回复的

 

在oracle中关于事务的处理上也会存在一个“死锁”的概念

一个session如果更新了一条记录,其他session无法立刻更新此条记录,

 

如果事务被提交了,则肯定无法回滚

 

 

ROWNUM 伪列

 

 

 

 

 

 

 

 

 

 

数据库备份

exp

 

数据库还原

imp

 

 

 

 

 

 

这一类的表是是10g 的新特性。

  Drop Table 后,没有真正的删除表,而是在“垃圾站”中了。可以通过下面看到。

  SQL> SHOW RECYCLEBIN

  如果要彻底删除,可以使用:

  SQL> PURGE TABLE "BINjR8PK5HhrrgMK8KmgQ9nw==";

  删除这一个或删除全部。

  SQL> PURGE RECYCLEBIN;

 

 

 

 三种登陆验证机制:

操作系统验证

密码文件验证

数据库验证

 

linux下oracle启动过程: 监听服务(lsnrctl start 通过命令,不用用户密码),实例实例(sqlplus sys/oracle as  sysdba,再startup实例 )

 

windows下oracle启动过程: lsnrctl start      oradim -startup -sid orcl(把好几步骤封装了,傻瓜化了)

 

 

conn / as sysdba     默认首先采用的认证方式是操作系统认证

 

 

 

 

 

 

 

desc    兼容性好,  显示其数据表的结构,,

myslq oracles都 行

 

 

 

 

 

 

 

 

 

 

 

 

 

oracle 没有 as

 

select * from dual

 

oracle中以字符串表示的数据是不能自动转换成日期时间整理的,必须使用TO_DATE()函数

如:TO_DATE('2002-08-02 YYYY-MM-DD HH 24:MI:SS')

 

 

 

 

 

 

mysql里使用DATE_ADD()函数

直接使用加号+ 进行日期的加法运算

date+3 表示 日期的基础 上加3天

 

ADD_MONTH(date,number)

 

 

 

 

 

计算日期差额:

mysql:  DATEDIFF(date1, date2)

oracle: 直接用-号

 

计算一个日期是星期几:

mysql: DATENAME(ff)

 

oracle:   TO_CHAR函数 用于将数据 转换为 字符串 类型, TO_CHAR(date, format)

 

取出日期的指定部分:

DATE_FORMAT(date, format)

 

 

 

尽量使用显式转换,避免使用隐式转换,提高效率

 

mysql: cast()   convert()

oracle:针对性更强 TO_CHAR  TO_DATE  TO_NUMBER

DB2: INT() DOUBLE() CHAR()

 

 

 

 

 

 

空值处理:

 

COALESCE()函数的简化版

mysql:IFNULL( , )

oracle:NVL( , )

 

 

 

填充函数

 

 

 

 

 

 

 

表连接 :

 

数据库系统会对 表连接 进行 查询优化。 使用表连接 会使检索更快速

 

在SQL中使用JOIN关键字 来实现 表连接。表连接有多种类型, 被主流数据库系统支持的有交叉连接 (CROSS JOIN)、内连接 (INNER JOIN)、外连接 (OUTTER JOIN),另外还有的数据库 支持 联合 连接 (UNION JOIN)

 

 

 

INNER JOIN是默认的 连接方式,一般可以省略   ...ON

 

 

不等值连接

 

交叉连接(没有ON), 普普通的方式 就是from 后 连接两个表名,显示定义是 使用CROSS JOIN,与INNER JOIN一样

CROSS JOIN的声明的交叉连接方式只能 被mysql sql server oracle所支持,在DB2中不被支持的,所以最好用隐式的,from 后 连接两个表名

 

 

 

自连接

from aa a1

inner join aa a2

where a1.name  = a2.name  and a1.id <> a2.id

 

 

左外连接 (还返回左表不符合条件的数据)

右外连接

全外连接

 

 

 

子查询

 

单值子查询:select a1,a2,(select f from ..) from

列值子查询:select a1,a2 from t1 ,(select .. from ..)  t2

 

>any()

=some()

<all()

 

 

where exists

与上面的any等运算符不同,是单目运算符,它不与列匹配,用来检查第一行是否 匹配 子查询,可以认为exists就是用来测试 子查询 的结果是否为空的。

 

 

 

 

子查询在

insert语句中的应用

update语句中的应用(mysql不支持)

delete语句中的应用

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:JOIN,数据库,10G,test,mysql,oracle,连接
From: https://blog.51cto.com/u_15012132/6291132

相关文章

  • Oracle19c中环境变量ORACLE_PDB_SID对dbca和RU打补丁的影响
     Oracle19c中环境变量ORACLE_PDB_SID对dbca和RU打补丁的影响 假设需要dbca创建一个cdb为oemdb,pdb为empdbrepos。同时,环境变量已经设置了ORACLE_PDB_SID=empdbrepos的情况下进行dbca,会导致dbca报错如下:ORA-65118:operationaffectingapluggabledatabasecannotbeperfo......
  • oracle startup命令
    1、https://dianzubuluo.com/%E6%9C%AA%E5%91%BD%E5%90%8D/117215.htmlhttps://wenku.baidu.com/view/2ded5a0bedfdc8d376eeaeaad1f34693dbef1057.html?_wkts_=1684286608746&bdQuery=oracle+startup%E5%91%BD%E4%BB%A4https://blog.csdn.net/weixin_45641933/article/d......
  • Oracle版面本的MySQL8.0的配置文件 my.cnf
    ##############################创建用户和用户组:groupaddworkuseraddwork  准备目录:mkdir-p/home/work/mysql_3306mkdir-p/home/work/mysql_3306/datamkdir-p/home/work/mysql_3306/etcmkdir-p/home/work/mysql_3306/tmpmkdir-p/home/work/mysql_3306/logmkd......
  • Oracle数据迁移MySQL
    https://blog.csdn.net/sinat_36757755/article/details/127284725Oracle数据迁移MySQL 前言:现今,Oracle数据迁移MySQL的需求已经越来越普遍,主要的迁移场景大致可以分为三类,第一类是涉及小表以及少量表的一次性迁移,无需进行增量同步,第二类是涉及大表以及多表的一次性迁移,第三......
  • 58.oracle密码过期
    一般oracle数据库中创建的用户默认是180天过期,一般如果想让它永不过期,可以进行如下设置:1.使用dba用户登录sqlplus/assysdba2.查看口令失效用户的profile文件SELECTusername,profileFROMdba_userswhereusername='xxxx'; #这里主要查看用户对应的profile文件。3.查看......
  • hasura graphql-engine 支持mysql&oracle了
    hasuragraphql-engine这几年的变化很大,目前已经支持了不少数据库了,已经不单单是pg了,就在最近hasura对于mysql&oracle的支持已经处于beta阶段了说明hasuragraphql-engine对于其他数据库支持的玩法还是直接学习的(通过dataconnector解决)参考资料https://hasura.io/blog......
  • 难见的oracle 9i恢复---2023年---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:难见的oracle9i恢复—2023年作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]时过境迁,以前恢复大量oracle8/9版本的库,现在一套oracle9i的库都比较稀奇了.今天恢复客户一套9.2.0.......
  • oracle中的merge into用法解析
    1.如果存在更新,不存在插入MERGEINTOmerge_targettargetUSING(SELECTB.name,B.age,B.target_idFROMmerge_sourceB)sourceON(target.id=source.target_id)WHENMATCHEDTHENUPDATESETtarget.name=source.name,target.age=source.ageWHENNOTMATCHE......
  • Oracle存储过程的基本学习
    Oracle存储过程的基本学习摘要这个简要学习应该会分为上下两部分第一部分是存储过程的学习.第二部分是python的学习.核心目标是查询Oracle数据库中的主键数据.如果有主键upper之后相同的数据查询出来.并且进行展示避免部分数据迁移时出现问题.存储过程的语法以及主......
  • Oracle中start with...connect by prior子句用法
    connectby是结构化查询中用到的,其基本语法是:select...fromtablenamestartwith条件1connectby条件2where条件3;例:select*fromtablestartwithorg_id='HBHqfWGWPy'connectbypriororg_id=parent_id;简单说来是将一个树状......