zoukankan      html  css  js  c++  java
  • 数据库之ORACLE常见基础操作

    一》分组查询与分组筛选

    分组查询关键字:group by 分组字段名1,分组字段名2,..

    1.使用分组后,在select语句中只允许出现分组字段和多行函数。

    2.多字段分组,则按by后次序依次分组。

    3.在where子句中不允许出现多行函数。

    分组筛选关键字:having

    1.针对分组进行分组后的数据筛选,允许使用多行函数。

    2.having关键字必须和分组结合使用,不允许单独使用。

    where与having

    1.分组语句中使用where进行字段级别的筛选,使用having进行多行函数的筛选。

    2.where字句不允许出现多行函数,having允许出现多行函数。

    3.where和having都可以使用普通字段进行直接筛选,但where效率高于having。

    where执行顺序:from->where->group by->select->order by

    having执行顺序:from->group by->select->having->order by

    二》 增删查改及数据备份

    注:增删改操作后,不会立即进行数据写入,还需手动对数据进行提交,若数据有问题可回滚。主键非空唯一,用于唯一标识一条数据。

    • 增:insert int 表名(字段名,字段名,...)values(值1,值2,...);

      注:值和字段数量和顺序必须一一对应,如果全字段插入,可省略字段名部分。

    • 删:delete from 表名 ---删除表中所有记录

    ​ delete from 表名 where 条件 ---删除符合条件的指定数据

    ​ truncate table 表名 ---删除表中所有记录,效率高于delete

    • 改:update 表名 set 字段名=新值,字段名=新值...

      ​ update 表名 set 字段名=新值,字段名=新值... where 条件

    • 备份:只会备份表结构和表数据,不会备份约束

      --表全部备份:create table 新表名 as select * from 备份表名

      --表部分备份:create table 新表名 as select 字段名1,字段名2,...from 备份表名

      --数据整体插入:insert into 插入表名 select * from 表名

      注:插入字段数量,类型都要和查询结果字段一致

    三》二维表维护

    • 添加新字段:alter table 表名 add 字段名 类型
    • 修改表名:rename 原表名 to 新表名
    • 修改字段类型:alter table 表名 modify 字段名 新类型
    • 修改字段名:alter table 表名 rename column 字段名 to 新字段名
    • 删除字段:alter table 表名 drop column 字段名
    • 删除表:drop table 表名

    四》约束

    • 主键:primary key
    • 非空约束:not null
    • 检查约束:check(条件)
    • 唯一约束:unique

    使用:

    • 直接在创建表的字段后使用 约束关键字

    • 在创建表的语句最后使用

      例:constraints pk_表名_字段名 primary key(字段名);

      ​ constraints ck_表名_字段名 check(字段名 is not null);

      ​ constraints un_表名_字段名 unique(字段名);

    • 在创建表后使用 alter table 表名 add constraints pk_表名_字段名 primary key(字段名);

    • 删除约束 alter table 表名 drop constraints 约束名;

    外键:当一张表的某个字段的值需要依赖另外一张表的某个字段的值,则使用外键约束,主动依赖的表称为子表,被依赖的表称为父表。在子表插入的数据在父表不存在,则会自动报错。

    使用:

    • 在子表字段后直接使用 references 父表名(字段)
    • 在创建表的语句的最后使用 constraints fk_子表名_字段名 foreign key(字段名) references 父表名(字段名)
    • 在创建表后使用 alter table 表名 add constraints fk_子表名_字段名 foreign key references 父表名(字段名)
    • 删除外键 alter table 表名 drop constraints 外键约束名

    缺点:无法直接删除父表数据,除非级联删除

    级联删除:在添加外键约束时,使用关键字 on delete cascade

    ​ 使用:当删除父表数据时,自动删除子表相关所有数据

    ​ 缺点: 无法保留子表历史数据

    ​ 使用关键字on delete set null,删除父表数据时,将子表中依赖 字段设置为null(子表依赖字段不能添加非空约束)

    五》序列

    create sequence 序列名

    • 默认开始是没有值的,也就是指针指在了没有值的位置
    • 序列名.nextval每次执行都会自增一次,默认步长为1(increment by 可改变步长)
    • 序列名.currval查看当前序列的值,开始是没有的
    • 作为主键使用时,动态获取之间值,新增数据时极大的避免了主键冲突(序列名.nextval作为主键)

    六》视图

    创建视图:create view 视图名 as select 对外提供的内容 from 真实表名

    删除视图:drop view 视图名

    特点:

    • 保护真实表,隐藏重要字段数据,保护数据
    • 在视图中的操作会映射执行到真实表中
    • 可以手动开启只读模式,使用关键字 with read only
    你是我出现在这唯一的原因,无所谓因果,也无关风月.
  • 相关阅读:
    elasticseacth基础操作--QueryBuilders的使用
    并发编程(八)并发安全
    redis集群 相关
    并发编程(七)线程池
    PMP--综合考试知识点,持续更新中。。。
    常用正则表达式
    测试计划
    ACC(Attribute Component Capability) 即特质,组件,能力
    LockScreen
    Custom Window
  • 原文地址:https://www.cnblogs.com/xcstruggle/p/13629475.html
Copyright © 2011-2022 走看看