oracle

概述

oracle是一种网络上的数据库,oracle或oracle数据库指的是oracle数据库管理系统。oracle数据库管理系统是管理数据库访问的计算机软件。它由oracle数据库和Oracle实例构成。

oracle数据库:一个相关的操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起,成为一个逻辑整体,即为oracle数据库。

        oracle用它来存储和管理相关的信息。Oracle数据库必须要与内存里实例合作,才能对外提供数据管理服务。

oracle实例:位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池也可以被所有进程访问。

        oracle用它们来管理数据库访问。用户如果要存取数据库(也就是硬件上的文件)里的数据,必须通过oracle实例才能发现,不能直接读取硬盘上的文件。

        实际上,Oracle实例就是平常所说的数据库服务(service)

区别:实例可以操作数据库;在任何时刻一个实例只能与一个数据库关联,访问一个数据库;而同一个数据库可由多个实例访问(RAC)。

        @+sql文件即可运行sql文件;

cms:监听,数据库,tomcat都要启动

执行sql语句后要及时提交!

数据库导入导出(命令Linux和win同)

1.整库导出与导入

        整库导出命令

                exp system/itcast full=y

                添加参数full=y就是整库导出,执行命令后会在当前目录下生成一个叫EXPDAT.DMP,                    此文件为备份文件。

                 

                如果想要指定备份文件的名称,则添加file参数即可,命令如下:

                exp system/itcast file=文件名 full=y

                

        整库导入命令

                imp system/itcast full=y

                此命令如果不指定file参数,则默认用备份文件EXPDAT.DMP进行导入,如果指定file                  参数,则按照file指定的备份文件进行恢复。

                imp system/itcast full=y file=water.dmp

2.按用户导入导出

        按用户导出

                exp system/itcast owner=wateruser file=wateruser.dmp

        按用户导入

                imp system/itcast file=wateruser.dmp fromuser=wateruser

3.按表导入导出

        按表导出

                exp wateruser/itcast file=a.dmp tables=t_account,a_area

                用tables参数指定需要导出的表,如果有多个表用逗号分隔即可

        按表导入

                imp wateruser/itcast file=a.dmp tables=t_account,a_area

数据库查询

1.单表查询

        简单条件查询

                精确查询

                select * from tables where name=‘zhangsan’;

                模糊查询

                select * from tables where name like ‘%刘%’;

                and运算符

                select * from tables where name like ‘%刘%‘ and addr like ’%5%‘;

                or运算符

                select * from tables where name like ‘%刘%’ or name like ’王‘;

                

                范围查询

                select * from table where num between 10 and 30;

                

                空值查询

                select * from tables where max is null;

                select * from tables where max is not null;

                去掉重复记录

                select DISTINCT addressid from T_OWNER;

        排序查询

                升序

                select * from tables order by usernum;

                降序

                select * from tables order by usernum desc;

        基于伪列的查询

                oracle表在建立过程中会附加伪列:ROWID和ROWNUM;

                1.ROWID

                rowid就是每一行的物理地址,查询起来效率高。

                select rowid,t.*(此处不能为*) from tables t;

                2.ROWNUM

                rownum是结果集的序号。

               

        聚合统计

                聚合函数

                        求和:sum

                        select sum(usernum) from t_account where year=’2012‘;

                        求平均:avg

                        select avg(usernum) from t_account where year=’2012‘;

                        求最大最小:max min

                        统计个数:count

                        select count(*) from t_owners where ownertypeid=1;

                        

                分组聚合gruop by(select后面必须是分组聚合的条件或者是聚合函数)

                        select areaid,sum(money) from t_account group by areaid

                分组后的条件查询 having

                        select areaid,sum(money) from t_account group by areaid having sum(money)> 16900;

                

2.连接查询

        多表内连接查询

                select o.id,o.name,ot.name from T_OWNERS o,T_OWNERTYPE ot 

                where o.ownertypeid=ot.id;

        左外连接查询

                select ow.id,ow.name,year,month,money from t_owners ow left join t_account ac

                on ow.id=ac.owneruuid;

                oracle语法:

                select ow.id,ow.name,year,month,money from t_owners ow t_account ac

                where ow.id=ac.owneruuid(+);

        右外连接查询

                select ow.id,ow.name,year,month,money from t_owners ow right join t_account ac

                on ow.id=ac.owneruuid;

                oracle语法:

                select ow.id,ow.name,year,month,money from t_owners ow t_account ac

                where ow.id(+)=ac.owneruuid;

3.子查询

        where子句中的子查询

                单行子查询:只返回一条记录,单行操作符:大于小于等于和不等于<>

                多行子查询:返回了多条记录,多行操作符:

                        in:等于列表中的任何一个/not in

                        select * from table where id in (1,2,5);

                        any:和子查询返回的任意一个值比较

                        all:和子查询返回的所有值比较

        from子句中的子查询

        select子句中的子查询

4.分页查询

        简单分页

                rownum后面只能跟< 或<=

        基于排序的

5.单行函数

        字符函数

                concat可以用 || 拼接字符替代

        数值函数

        日期函数

        转换函数

                TO_CHAR()

                || ' '

                TO_DATE()

                TO_NUMBER()

        其他函数

                1.空值处理函数:NVL

                        select NVL(null,0) from dual;类型不一样不能转换

                2.NVL2:比NVL多一个参数,判断不是null时返回的值

                3.条件取值:decode。decode(条件,值1,翻译值1,值2,翻译值2.。。缺省值)

                        根据条件返回相应值

                4.case when then同条件取值

                        case 值 when 1 then ‘居民’ 

                                        when 2 then ‘行政’

                                        。。。

                                        end

6.行列转换

        

7.分析函数

8.集合运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值