admin管理员组

文章数量:1794759

Oracle基础知识总结(最全)

Oracle基础知识总结(最全)

Oracle 基础

ORACLE 数据库具有以下特点:

支持多用户、大事务量的事务处理 数据安全性和完整性控制 支持分布式数据处理 可移植性

ORACLE 体系结构

  • 数据库
  • 实例
  • 数据文件(dbf)
  • 表空间
  • 用户

在这里插入图片描述 创建表空间

create tablespace waterboss datafile 'c:\\waterboss.dbf' size 100m autoextend on next 10m --waterboss 为表空间名称 --datafile 用于设置物理文件名称 --size 用于设置表空间的初始大小 --autoextend on 用于设置自动增长,如果存储量超---过初始大小,则开始自动扩容 --next 用于设置扩容的空间大小

创建用户

create user wateruser identified by itcast default tablespace waterboss --wateruser 为创建的用户名 --identified by 用于设置用户的密码 --default tablesapce 用于指定默认表空间名称

用户赋权

grant dba to wateruser

表的创建、修改与删除 创建表

CREATE TABLE 表名称( 字段名 类型(长度) primary key, 字段名 类型(长度), ....... );

数据类型:

  • 字符型

CHAR : 固定长度的字符类型,最多存储 2000 个字节 VARCHAR2 :可变长度的字符类型,最多存储 4000 个字节

3LONG : 大文本类型。最大可以存储 2 个 G

  • 数值型

NUMBER : 数值类型

例如:NUMBER(5) 最大可以存的数为 99999

NUMBER(5,2) 最大可以存的数为 999.99

  • 日期型

DATE:日期时间型,精确到秒

TIMESTAMP:精确到秒的小数点后 9 位

  • 二进制型(大数据类型)

CLOB : 存储字符,最大可以存 4 个 G BLOB:存储图像、声音、视频等二进制数据,最多可以存 4 个 G

- 修改表 1.增加字段

ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值],列名 1 类型 [DEFAULT 默认值]…)

2.修改字段

ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型 [DEFAULT 默认值]…)

3.修改字段名

ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名

4.删除字段名

ALTER TABLE T_OWNERS DROP COLUMN REMARK

5.删除表

drop table 表名称

数据增删改

INSERT INTO 表名[(列名 1,列名 2,…)]VALUES(值 1,值2,…) ; UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,…WHERE 修改条件; DELETE FROM 表名 WHERE 删除条件; TRUNCATE TABLE 表名称;---- 删除表

比较 truncat 与 delete 实现数据删除?

1.delete 删除的数据可以 rollback 2.delete 删除可能产生碎片,并且不释放空间 3.truncate 是先摧毁表结构,再重构表结构

JDBC 连接 ORACLE //加载驱动

static{ try { Class.forName("oracle.jdbc.driver.OracleDriver"); Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); e.printStackTrace(); } } // 获取数据库连接 public static java.sql.Connection getConnection() throwsSQLException{ return java.sql.DriverManager.getConnection("jdbc:oracle:thin:@192.168.80.10:1521:orcl","wateruser", "itcast"); }

JDBC 驱动为:

oracle.jdbc.OracleDriver

连接字符串( 瘦连接 ):

jdbc:oracle:thin:@虚拟机的 IP:1521:orcl

数据导出与导入

整库导出与导入 整库导出命令

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

整库导入命令

imp system/itcast full=y or imp system/itcast full=y file=water.dm

按用户导出与导入 按用户导出

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

按用户导入

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

按表导出与导入

按表导出 exp wateruser/itcast file=a.dmp tables=t_account,a_area 按表导入 imp wateruser/itcast file=a.dmp tables=t_account,a_are ORACLE 查询

单表查询 简单条件查询

精确查询 select * from T_OWNERS where watermeter=‘30408’ 模糊查询 select * from t_owners where name like ‘%刘%’ and 运算符 select * from t_owners where name like ‘%刘%’ and housenumber like ‘%5%’ or 运算符 select * from t_owners where name like ‘%刘%’ or housenumber like ‘%5%’ and 与 or 运算符混合使用 select * from t_owners where (name like ‘%刘%’ or housenumber like ‘%5%’) and addressid=3 范围查询 select * from T_ACCOUNT where usenum>=10000 and usenum<=20000 空值查询 select * from T_PRICETABLE t where maxnum is null

去掉重复记录

select distinct addressid from T_OWNERS

排序查询

升序排序 select * from T_ACCOUNT order by usenum 降序排序 select * from T_ACCOUNT order by usenum desc

基于伪列的查询

ROWID 具体某一行数据的物理地址 select rowID,t.* from T_AREA t ROWNUM 每一行的行号,查询后才会标注 select rownum,t.* from T_OWNERTYPE t

聚合统计

聚合函数 sum* select sum(usenum) from t_account where year=‘2012’ avg* select avg(usenum) from T_ACCOUNT where year=‘2012’ max* select max(usenum) from T_ACCOUNT where year=‘2012’ select* min(usenum) from T_ACCOUNT where year=‘2012’ count* select count(*) from T_OWNERS t where ownertypeid=1 分组聚合 Group by* select areaid,sum(money) from t_account group by areaid 分组后条件查询 having* select areaid,sum(money) from t_account group by areaid having sum(money)>169000 连接查询

多表内连接查询

  • 查询显示业主编号,业主名称,业主类型名称
select o.id 业主编号,o.name 业主名称,ot.name 业主类型 from T_OWNERS o,T_OWNERTYPE ot where o.ownertypeid=ot.id
  • 查询显示业主编号,业主名称、地址和业主类型
select o.id 业主编号,o.name 业主名称,ad.name 地址, ot.name 业主类型 from T_OWNERS o,T_OWNERTYPE ot,T_ADDRESS ad where o.ownertypeid=ot.id and o.addressid=ad.id
  • 查询显示业主编号、业主名称、地址、所属区域、业主分类
select o.id 业主编号,o.name 业主名称,ar.name 区域, ad.name 地址, ot.name 业主类型 from T_OWNERS o ,T_OWNERTYPE ot,T_ADDRESS ad,T_AREA ar where o.ownertypeid=ot.id and o.addressid=ad.id and ad.areaid=ar.id
  • 查询显示业主编号、业主名称、地址、所属区域、收费员、业主分类
select ow.id 业主编号,ow.name 业主名称,ad.name 地址, ar.name 所属区域,op.name 收费员, ot.name 业主类型 from T_OWNERS ow,T_OWNERTYPE ot,T_ADDRESS ad , T_AREA ar,T_OPERATOR op where ow.ownertypeid=ot.id and ow.addressid=ad.id and ad.areaid=ar.id and ad.operatorid=op.id

左外连接查询

  • 查询业主的账务记录,显示业主编号、名称、年、月、金额。如果此业主没有账务记录也要列出姓名 SQL1999标准:
SELECT ow.id,ow.name,ac.year ,ac.month,ac.money FROM T_OWNERS ow left join T_ACCOUNT ac on ow.id=ac.owneruuid

本文标签: 最全基础知识oracle