Fork me on GitHub

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;
posted @ 2022-04-10 23:18  晨度  阅读(89)  评论(0编辑  收藏  举报