oracle基础语法
oracle简介
是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。
不同用户可以在同一个表空间建立同一个名字的表,表不是由表空间去查询,而是由用户去查询。
oracle常用字段类型
分类 | 数据库中的类型 | 含义 |
---|---|---|
字符串 | CHAR | 固定长度字符串 |
字符串 | VARCHAR2 | 可变长度的字符串 |
时间 | DATE | 精度为YY-MM-DD |
时间 | TIMESTAMP | 精度为DD-MM-YY HH:MM:SS |
二进制数据 | BLOB | 最大长度4G |
数字类型 | NUMBER(P,S) | P为整数位,S为小数位 |
数字类型 | DECIMAL(P,S) | P为整数位,S为小数位 |
整数类型 | INTEGER | 小的整数 |
- 注意
decimal是number的子类型,功能是一样的,没有什么区别,oracle中的decimal在底层还是number。
索引
- 逻辑上
Single column 单行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引 - 索引创建
CREATE index 索引名 on 表名(列名);
Create index emp_idx1 on emp(ename,job);
DDL(Data Definition Language)(数据库定义语言)
- 创建表空间
create tablespace itcast
datafile 'c:\itcast.dbf'
size 100m
autoextend on
next 10m
itcast 为表空间名称
datafile 指定表空间对应的数据文件
size 后定义的是表空间的初始大小
autoextend on 自动增长 ,当表空间存储都占满时,自动增长
next 后指定的是一次自动增长的大小。
- 创建用户
create user itcastuser
identified by itcast
default tablespace itcast
identified by 后边是用户的密码
default tablespace 后边是表空间名称
一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立多个表; oracle 数据库与其它数据库产品的区别在于,表和其它的数据库对象都是存储在用户下的。
-
oracle的system用户和scott用户
这两个用户都是oracle的默认用户,system用户是oracle的超级管理员,用户的创建以及初始授权都需要在system用户下进行完成,scott用户是oracle提供给开发者初学oracle使用的,登陆scott用户之前需要先解锁,alter user scott account unlock。 -
角色
- CONNECT 角色: --是授予最终用户的典型权利;
- RESOURCE 角色: --是授予开发人员的;
- DBA 角色:拥有全部特权,是系统最高权限。
授予用户角色:grant dba to itcastuser
DML(Data Manipulation Language)(数据操纵语言)
- 表的创建
create table person(
pid number(10),
name varchar2(10),
gender number(1) default 1,
birthday date
);
- 字段的增删改
添加语法:ALTER TABLE 表名称 ADD(列名 1 类型 DEFAULT 默认值,列名 1 类型
[DEFAULT 默认值]...)
修改语法:ALTER TABLE 表名称 MODIFY(列名 1 类型 DEFAULT 默认值,列名 1 类型
[DEFAULT 默认值]...)
修改列名: ALTER TABLE 表名称 RENAME 列名 1 TO 列名 2
例如: alter table person add(address varchar2(10));
- 序列的创建和使用
序列就是帮助oracle完成自动增长。- 创建
CREATE SEQUENCE seqpersonid; - 使用
select seqpersonid.nextval from dual;
- 创建
DQL(Data Query Language)(数据查询语言)
- 初级的增删改
初级的增删改和mysql数据库区别不大,故不提供。 - 常用函数
分类 | 函数 | 含义 |
---|---|---|
字符函数 | upper('smith') | 小写转大写 |
字符函数 | lower('SMITH') | 大写转小写 |
数值函数 | ROUND('字段',位数) | 默认情况下 ROUND 四舍五入取整,也可以自己指定保留的位数 |
转换函数 | TO_CHAR(字段,'yyyy') | 字符串转换函数,可以将年月日分开 |
二进制数据 | BLOB | 最大长度4G |
通用函数 | nvl(字段,0) | 如果字段为null,则转变为0 |
通用函数 | case when then when then else end | 相当于if else |
- 分页查询
select * from(
select rownum rn, tt.* from(
select * from emp order by sal desc
) tt where rownum<11
) where rn>5
使用oracle官方提供的rownum来进行标准分页。
- 视图创建
create view v_emp as select ename, job from emp; - 使用查询语句创建表备份
create table 新表名 as select * from 原先的表名 - 使用查询语句备份
select t.ename into emprec from emp t where t.empno = 7369;
常见使用命令
- 登录
sqlplus system/oracle123@1180.76.169.188:1521/ORCL - 导入dmp
imp system/oracle123@180.76.169.188:1521/orcl file=C:\0617\0617-12.dmp,full=y;
XFS