• 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;
  • 相关阅读:
    P3916 图的遍历
    P1656 炸铁路
    P6722 「MCOI-01」Village 村庄
    P1341 无序字母对
    P1072 [NOIP2009 提高组] Hankson 的趣味题
    10大主流自动化测试工具介绍
    Altium Designer中off grid pin问题的解决方法
    Easylogging++的使用及扩展
    博客园粒子特效稳定版
    C#中使用jieba.NET、WordCloudSharp制作词云图
  • 原文地址:https://www.cnblogs.com/xiaofengshan/p/16128124.html
Copyright © 2020-2023  润新知