zoukankan      html  css  js  c++  java
  • 【学习笔记】Y2-1-1 Oracle数据库基础

    Oracle 简介
    关系型(二维表)数据库 用来存储海量数据
    在大数据量的并发检索的情况下,性能要高于其他同类数据库产品
    一般运行环境是Linux和Unix
    Oracle版本中的
    I(Internet) G(Grid) C(Cloud)

    E(自己安装在E盘)--> app --> Sword
    (Oracle安装目录)
    E:appSwordproduct11.2.0dbhome_1NETWORKADMIN
    listener.ora 监听的配置文件
    tnsnames.ora 客户端的配置文件

    监听:计算机的IP和Port(端口号1521)
    SqlServer默认端口号 1433
    Mysql 3306
    Oracle 1521

    2.连接Oracle必须保证启动:
    监听程序 OracleOraDb11g_home1TNSListener
    数据库服务 OracleServiceORCL

    sys超级管理员 (不能用normal登录 应用sysdba)
    可以添加和删除其他管理员和普通用户

    system 管理员
    可以添加普通用户

    4.创建一个用户
    create user 用户名 identified by 密码
    分配两个角色
    grant Connect(连接数据库),Resource(基础操作) to 用户名

    5.
    Oracle没有int类型 只有number类型(数字)
    Sequences 序列(和table是平级的)

    使用序列插入记录
    insert into Student values(序列名.Nextval,'xxx')

    --数据库的隔离级别 Oracle数据库事务默认不会自动提交
    需要commit

    登录sql plus (cmd)sqlplus 用户名/密码
    在sqlplus中 单个"/"代表执行上一条sql

    alter user 用户名 account lock 锁定用户不能登录
    alter user 用户名 account unlock 解锁

    Oracle数据库本质上是socket服务器
    sqlplus和PL/SQL developer等都是客户端

    用客户端连接Oracle服务的四种方式
    1.Sqlplus
    2.PL/SQL Developer
    System或者sys用DBA登录 无论密码是否正确都可以登录
    3.SQL Developer 自带客户端
    需要关联java.exe文件
    4.em方式 需要开启DBConsole服务 端口1158

    SGA 全局缓冲区(实例中的全局共享区)
    SGA只能有一个, PGA(私有/进程全局区)

    SGA(System Global Area)一个实例只能有一个SGA
    PGA(Process Global Area)


    --表空间
    一个数据库下可以开多个表空间,一个表空间可以包含多个数据文件,表空间是逻辑概念

    --全局数据库名
    全局数据库名=数据库域名+数据库名全局数据库名是为了保证数据库系统中每个数据库名都是唯一的


    查询某个用户下的所有表
    select * from all_tables where owner='SCOTT'
    (用户名大写)

    lacks 缺少

    revoke 权限名 from 用户名 --收回权限


    --对用户解锁
    alter user 用户名 account unlock

    --伪表 dual
    select 1+1 from dual

    --双竖杠||
    select '哈哈哈'||'呵呵呵' as str from dual
    (相当于连接 因为Oracle中'+'号不能拼接)

    --表名或者列名如果与关键字冲突,建表时用双引号引起来

    百度脑图

    数据库:
    数据文件
    日期文件
    控制文件
    参数文件
    口令文件
    归档日志文件


    --函数
    --靠后的日期和靠前的日期的月份差
    select Months_Between(
    to_date('2010-7-1','yyyy-MM-dd'),
    to_date('2000-8-1','yyyy-MM-dd'))
    from dual

    --给日期追加多少个月后的日期
    select Add_Months(
    to_date('2010-7-1','yyyy-MM-dd'),
    15)
    from dual

    --按格式对日期四舍五入
    select Round(
    to_date('2017-1-7','yyyy-MM-dd'),
    'Day')
    from dual


    --通用函数

    --滤空函数
    nvl(可能为空的列,替换值)
    select sal*12工资,comm 奖金,sal*12+nvl(comm,0) from emp

    nvl2(可能为空的列,不为空返回的是,为空返回的是)
    select sal*12工资,comm 奖金,nvl2(comm,1,12.5) from emp

    --decode函数
    select product_id,decode(warehouse_id,1,'a',2,'b') from exp...

    IntelliJ idea 16

    SQL中的常用函数

      1.字符函数

        initcap(char) 首字母大写  select initcap('heLLO') from dual  结果 Hello

        lower(cahr) 全部小写

        upper(char) 全部大写

        instr(char,substr[,pos]) 查找字符串位置1

                      select instr('ORdhORhjskOR','OR') from dual      结果 1

                      select instr('ORdhORhjskOR','OR',3) from dual     结果 5

                      select instr('ORdhORhjskOR','OR',0,3) from dual    结果 11

        substr(char,pos,len) 取子字符串

              select substr('abcdef',2) from dual   结果 bcdef

              select substr('abcdef',2,3) from dual  结果 bcd

      2.数字函数

        round(m,n) 四舍五入

            select round(5.25,1)    结果 5.3

            select round(5.252,2)    结果 5.25

        sqrt(n) 平方根

        cell(n) 向上取证

        floor(n) 向下取整

      3.日期函数

        --靠后的日期和靠前的日期的月份差
          select Months_Between(
          to_date('2010-7-1','yyyy-MM-dd'),
          to_date('2000-8-1','yyyy-MM-dd'))
          from dual

        --给日期追加多少个月后的日期
          select Add_Months(
          to_date('2010-7-1','yyyy-MM-dd'),
          15)
          from dual

        --按格式对日期四舍五入
          select Round(
          to_date('2017-1-7','yyyy-MM-dd'),
          'Day')
          from dual

      4.转换函数

         to_char(num) 将数字转化成字符串

              select to_char(123)    结果:'123'

              select to_char('123.23','$999.9')  结果:'$123.2'  

      5.通用函数

      滤空函数
        nvl(可能为空的列,替换值)
          select sal*12工资,comm 奖金,sal*12+nvl(comm,0) from emp

        nvl2(可能为空的列,不为空返回的是,为空返回的是)
          select sal*12工资,comm 奖金,nvl2(comm,1,12.5) from emp

      decode函数
        select product_id,decode(warehouse_id,1,'a',2,'b') from exp...

  • 相关阅读:
    bootstrapValidator表单验证插件
    sublime自动保存(失去焦点自动保存)
    js、jquery实现放大镜效果
    mysql 添加索引语句
    mybatis sql语句中的foreach标签
    android ListView 刷新卡顿问题
    JFrame 桌面右下角弹窗
    取没有date的邮件发送时间
    java 判断图片是否损坏
    java 后台poi导入导出Excel到数据库
  • 原文地址:https://www.cnblogs.com/swordtm/p/6259409.html
Copyright © 2011-2022 走看看