Oracle基础知识总结
原文链接: https://blog.csdn.net/qq_39876666/article/details/82764040
ORACLE 基础
ORACLE 数据库具有以下特点:
- 支持多用户、大事务量的事务处理
- 数据安全性和完整性控制
- 支持分布式数据处理
- 可移植性
ORACLE 体系结构
- 数据库
- 实例
- 数据文件(dbf)
- 表空间
- 用户
创建表空间
1 | create tablespace waterboss |
创建用户
1 | create user wateruser |
用户赋权
1 | grant dba to wateruser |
表的创建、修改与删除
创建表
1 | CREATE TABLE 表名称( |
数据类型:
字符型
- CHAR : 固定长度的字符类型,最多存储 2000 个字节
- VARCHAR2 :可变长度的字符类型,最多存储 4000 个字节
- LONG : 大文本类型。最大可以存储 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 默认值]…) |
- 修改字段
1 | ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型 [DEFAULT 默认值]…) |
- 修改字段名
1 | ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名 |
- 删除字段名
1 | ALTER TABLE T_OWNERS DROP COLUMN REMARK |
删除表
1 | drop table 表名称 |
数据增删改
- INSERT INTO 表名[(列名 1,列名 2,…)]VALUES(值 1,值2,…)
- UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,…WHERE 修改条件;
- DELETE FROM 表名 WHERE 删除条件;
- TRUNCATE TABLE 表名称 —- 删除表
比较 truncat 与 delete 实现数据删除?
- delete 删除的数据可以 rollback
- delete 删除可能产生碎片,并且不释放空间
- truncate 是先摧毁表结构,再重构表结构
JDBC 连接 ORACLE
1 | //加载驱动 |
JDBC 驱动为:
1 | oracle.jdbc.OracleDriver |
连接字符串( 瘦连接 ):
1 | 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
聚合统计
- 聚合函数
1
2
3
4
5
6
7
8
9sum* 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
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment