Oracle笔记3

1、oracle数据库连接方式
    1 sqlplus 进行连接 【oracle client】
       tnsnames.ora 里面的配置信息
                     【服务器信息: 协议、端口、ip/主机名】
                     【数据库信息: sid (services_name)】
    2 jdbc链接 不需要 oracle-client
      thin链接
            jdbc:oracle:thin:host:port:sid

使用jdbc连接数据库没有统一规则, jdbc:____:____:host:__:___?____
    具体链接词的写法与规则与jdbc驱动有关

    3 ODBC链接
           需要oracle-client
           需要使用 tnsnames.ora 中的配置信息
——————————————————————-
2、oracle – sqlserver

     oracle    —–    [1 用户名 ]
               —-schema
                       — table
                       — view
                        ….
              —-security
                      — user
               —- store
                      —tablespace

    sql-server              [1 database 名称 2 data file ]
            —–database
                 — table
                 — view
                 — user
存储的角度上来看 sql-server的database 等同于 oralce 的 tablespace
组织              sql-server的database 等同于 oralce 的 schema
安全              sql-server的database 等同于 oralce 的 Instance

================================================================

1 拿到连接
2 使用连接构造 Statement [执行语句]
【Statement statement= connect.createStatement()     】
3 执行Statement并且返回结果[有结果则返回,没结果不管]
       1、执行Sql: statement.executexxxxxx;
    2、服务结果集
          while(rs.next){
     String sx=rs.getString(?)   
    }

2: Oracle
   1   create index
         数据库表中的 pk(primary key) 是有索引的
   Index 类型
      B-tree 缺省的 类型 其他的用B-tree 索引
    bitmap Indexes      "性别 ,男、女、其他" 取值比较少的字段 用位图索引
    Function-based indexes     建立基于某一个、一组函数运算的结果进行索引
    Partitioned indexes      基于分区表
    Domain indexes            基于Domain-域
   权限: CREATE ANY INDEX
   语法: Create    [BitMap] Index index_name on table_name(column_1,func_column_2);
          drop index index_name
  
   2   create view
       VIEW 实际上就是一条SELECT 语句,可以作为表一样使用它,
    如果该select语句本身就非常慢,做成视图也不会有效提高速度。
   
    、
   
   权限: CREATE ANY VIEW
   语法: Create view view_name as
                   一条SELECT 语句
       Drop view view_name
   —————————————————————————
  
  
   3   create sequence
        create sequence sequence_name
         start with 0
         increment by 1
         nocache
         nocycle;
         删除序列 drop sequence sequence_name
         修改序列   alter sequence increment by 1
         nocache
         nocycle;
         使用sequence 当前值   sequence_name.currval
   使用sequence 的值   sequence_name.nextval
  
————————————————————————————-
1 查询使用 select  
2 select 后面使用的 from 的内容 是一个“集合” ,该集合可以是一个 Table、View、Select结果、多个Select结果的联合
3 select 无穷嵌套

select
   字段
from
   集合—– 子查询 –subQuery
where
   条件
group by 字段 — 需要使用到聚合函数   — 字段必须存在于Select中
order by 字段 【ASC/DESC】 –字段必须存在在集合中【desc不可以省略,asc为缺省】

order by 排序条件由前向后,优先级递减
——————————————–
select 选择结果的合并
交集:intersect
SQL> select username from www where userid<8 intersect select username from www
where userid<16;

USERNAME
——————————–
_A7
mmzzxx
提交完成

合集:union
SQL> select username from www where userid<8 union select username from www whe
re userid<16;
————————————————-user_score
user_id   user_name   user_score user_type
1            Jam      90           A
2            Jbm      60           A
3            Jcm      80           B
4            Jdm      90           B
5            Jem      20           B
6            Jfm      40           A
7            Jim      70           A
———————————————- add_score
user_id      add_score          add_type
   7            20              少数民族
   5            30              少数民族+体育特长
   3             5              三好学生
   1            15              奥数
——————————————————-
查询:
    所有加分学生的原始分数;
select t1.user_score-t2.add_score,t1.user_name from
(select user_id,user_score,user_name from user_score where user_id in( select user_id from add_score))t1,
    (select user_id,add_score from add_score) t2
where t1.user_id=t2.user_id

查询:
    计算user_type 为 A 的 没有加分的学生的及格率 — count(1)、count(*)
    1 查询加分的学员的user_id   — A
    2 查询所有学生中,user_id 不在集合 A 中的记录 –B
    3 在B集合中查询 user_type = A 的学生 —C
    4 在集合C中统计分数不小于60的人数 –结果 X
    5 在集合C中统计所有的人数 –结果 Y
    6 结果   select X/Y ×100 ||’%’ from dual;

查询:
    计算加分学生的用户类型(user_type)的比例   — count(1)、count(*)
   

—count(1)    对第一个字段进行统计【一般情况下第一个字段都是一个number类型主键】
—count(*)    1: 对所有字段进行统计 2:自动采用已建索引的字段进行统计
   

——————————————————-
oracle 层次查询

select 字段 from 集合
start with   条件 1
connect by   条件 2【 在条件中使用 prior 修饰字段】

===============================================

driverName:oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@<machine_name><:port>:sid(不带参数)
URL:jdbc:oracle:thin:用户名/密码@<machine_name><:port>:sid(带参数)

此条目发表在 Oracle 分类目录,贴了 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>