Oracle基础开发
介绍
简单介绍
关系型数据库之一
应用于大型系统的数据库产品
特点
支持多用户,大事务量的事务处理
数据安全性和完整性控制
支持分布式数据处理
可移植性
体系介绍
数据库
Oracle数据库是数据的物理存储。对于Oracle来说,一个操作系统只有一个Oracle库。
实例
一个Oracle数据库可有N个实例,每个实例又有一系列的后台进程和内存结构组成。
数据文件
数据文件是数据库的物理存储单位。
数据是存储在数据库的表空间的,每个表空间又包含了多个数据文件。数据文件加入表空间后,是不能被删除的,除非干掉这个表空间。
表空间
表空间是数据文件的相关映射。一个数据库会在逻辑上划分成若干表空间。
它是一个逻辑概念,物理上并不存在。逻辑上,表空间下还有段、区、块等逻辑概念。
用户
用户是在表空间下建立起来的。用户登录后只能看到自己所建立的表。
安装
Server 安装
双击setup.exe,按顺序安装即可。注意记住数据库的口令。
查看安装成功:
1 查看两个服务是否运行
OracleService 实例名称
Oracle 实例名称 TNSListener
2 使用sqlplus连接Oracle,测试
基于网络测试:sqlplus system/密码
基于网络通过监听器测试:sqlplus system/密码@IP:端口/实例名称
sqlplus就是oracle的客户端
Client安装
这里只介绍PL/SQL Developer:Oracle 客户端的图形化界面工具。
1 下载PL/SQL Developer
里面会有两个文件夹:instantclient(sqlplus) 和PLSQL Developer
2 配置PLSQL Developer
2.1 启动PLSQL Developer,点击取消;
2.2 在tools->preferences->connection目录下配置:
Oracle Home —> instantclient目录
OCI library ----> instantclient目录\oci.dll
3 配置tnsnames.ora
新建文件tnsnames.ora,配置
连接名=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =IP地址)(PORT = 端口))
)
(CONNECT_DATA =
(SERVICE_NAME = 实例名称)
)
)
4 配置环境变量
TNS_ADMIN:tnsnames.ora文件所在的目录
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
查看服务器端的编码:select userenv(‘language’) from dual; – gbk
默认 PLSQL Developer 连接 Oracle 使用客户端字符集 utf-8 , 基于工具使用 SQL 插入中文有乱码问题,设置客户端字符集 gbk。
表空间
查看
查看所有表空间的设置情况:
select * from Dba_Tablespaces;
查看当前用户使用的表空间情况:
-- username标识用户名,default_tablespace表示默认的表空间
select * from user_users
创建
create tablespace 表空间名称
datafile 'c:\**.dbf' -- 表空间的物理文件名称
size 100m -- 表空间的初始大小
autoextend on -- 表空间的自增开关
next 10m -- 表空间的自增大小
更多表空间的知识,参考:
https://www.cnblogs.com/eastsea/p/3863354.html
http://www.cnblogs.com/kerrycode/p/3418694.html
创建用户
create user 用户名称
identified by 密码
default tablespace 表空间名称
赋权
grant dba to 用户名称
-- 给用户赋予 DBA 权限后即可登陆
创建表
CREATE TABLE 表名称(
字段名 类型(长度) primary key,
字段名 类型(长度),
....... );
数据类型
- 字符类型:
- 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
删除表
DROP TABLE 表名称
修改表
增加字段
ALTER TABLE 表名称 ADD(
列名 1 类型 [DEFAULT 默认值],
列名 2 类型 [DEFAULT 默认值]...)
修改字段
ALTER TABLE 表名称 MODIFY(
列名1 类型 [DEFAULT 默认值],
列名 2 类型 [DEFAULT 默认值]...)
修改字段名称
ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名
删除字段
--删除 一个 字段
ALTER TABLE 表名称 DROP COLUMN 列名
--删除 多个 字段
ALTER TABLE 表名称 DROP (列名 1,列名 2...)
数据操作
insert
INSERT INTO 表名[(列名1,列名 2,...)]VALUES(值 1,值 2,...)
update
UPDATE 表名 SET 列名1=值 1,列名 2=值 2,....WHERE 修改条件;
delete
-- delete 删除数据,可以回滚,但是可能会产生碎片
DELETE FROM 表名 WHERE 删除条件;
-- truncate 删除表,然后重建表,不可以回滚,不会产生碎片
TRUNCATE TABLE 表名称;
数据备份
整库导出
exp 账户/密码 file=文件名 full=y
整库导入
imp 账户/密码 full=y file=文件名
按用户导出
exp 账户/密码 owner=** file=**
整库导入
imp 账户/密码 file=** fromuser=**
按表导出
exp 账户/密码 file=** tables=**,**
按表导入
imp 账户/密码file=** tables=**,**