Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
oracle大小写不敏感,推荐使用大写。
oracle常用账号
Sys----sysdba----系统超级管理员
System----普通用户----具备管理员权限
Scott----示例账号----提供了一些常用的练习表----密码:tiger(需要先解锁才能使用)
自定义账号
连接oracle数据库
使用 sqlplus,oracle自带的操作数据库工具
在cmd窗口连接数据库
- 输入sqlplus /nolog 只连接不登录
sys账户登录
Sys /system 一般都是管理身份,用于管理oracle数据:conn sys/密码@orcl as sysdba;
conn----连接意思
sys----系统管理员账号
/----分割符号
jinken----密码
@----分隔符
Orcl----需要连接的数据库
as sysdba----以管理员方式管理数据库
Show user 命令----显示当前登录账户
- sys 账户登录解锁scott账户
alter user scott account unlock----解锁
alter user scott account lock----加锁
- 重置scott密码
alter user scott identified by 密码
Oracle 账户Scott自己改自己密码,前提,必须先登录成功
登录成功以后输入 password: 命令
远程登录oracle数据库服务器
conn scott/tiger@ip地址/orcl
例如:conn scott/tiger@202.109.123.908/orcl
oracle重要概念
全局数据库----一般只有一个全局数据库
表空间----tablespace、数据库对象、Oracle 存放数据的基本逻辑单元
模式----schema 理解成“用户”
oracle表空间创建
三部曲
- 创建表空间
- 创建用户
- 授权
- 创建表空间
CREATE TABLESPACE hhh_tablespace ---- 逻辑名
DATAFILE ‘D:\Oracle\orcl_tablespace\hhh.DBF’ ----物理文件路径
SIZE 10M AUTOEXTEND ON; ---- size表示初始容量 ,可以自动扩展容量 - 创建用户
CREATE USER hhh IDENTIFIED BY hhh
DEFAULT TABLESPACE hhh_tablespace; – 指定当前帐号使用的表空间 - 授权 包括权限和角色 角色是权限的集合
select * from role_sys_privs where role=‘RESOURCE’;
select * from role_sys_privs where role=‘CONNECT’;
获取当前时间
select sysdate from dual;
--daul为虚表
注意在oracle中插入、更新、删除的时候,都需要手动commit一下,这时候数据才会真正的保存到数据库中.
oracle中主键自增处理
在oracle中并没有自动增长一说,我们需要借助于序列来自己完成
create sequence seq_items_id; -- 默认是以1 开始,然后以1 递增
--查询序列
select seq_items_id.nextval from dual; -- 每运行一次产生一个
select seq_items_id.currval from dual; -- 获取当前的序列id(刚创建完第一次查询不要用这个)
drop sequence seq_items_id; -- 删除一个序列
-- 设置自增序列的属性 从2开始 每次递增1
create sequence seq_items_id
start with 2
increment by 1;
oracle中内置函数
- to_date()
- to_char()
- to_number()
--to_date()将字符串转为时间(按照指定类型)输出
select to_date('2020-10-10','yyyy-mm-dd') from dual;
insert into item values(seq_items_id.nextval,'小米大米',1000,to_date('2020-10-10','yyyy-mm-dd'),'很好');
-- to_char() 将任意类型转为一个字符串,如果可以转就转换,如果不能转换就直接抛出异常
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
--中文格式输出
select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;
--to_number() 将字符转为 数值型
select to_number('123')from dual;
select to_number('123q') from dual; -- 操作不合理,会报错!
oracle中分页操作
select a.* from
(select rownum rn,emp.* from emp where rownum<=pageNum页码*pageSize页大小) a where rn>(pageNum-1)*pageSize;
--每页五条信息,查第二页信息
select a.* from
(select rownum rn,emp.* from emp where rownum<=10) a where rn>5;