zoukankan      html  css  js  c++  java
  • 数据库 Oracle数据库对象一

    常见的数据库对象
    表:基本的数据存储集合,由行和列组成
    视图:从表中抽出的逻辑上相关的数据集合
    序列:提供有规律的数值
    索引:提高查询的效率
    同义词:给对象起别名
    create table语句
    --create table权限
    --存储空间
    数据类型
    varchar2(size)    可变长字符数据(默认4kb)
    char(size)    定长字符数据
    number(p,s)    可变长数值数据
    date        日期型数据
    long        可变长字符数据,最大可达到2G
    clob        字符数据,最大可达到4G
    raw and long raw    原始的二进制数据
    blob        二进制数据,最大可达到4G
    bfile        存储外部文件的二进制数据,最大可达到4G
    rowid        行地址(索引中存储的就是行地址
    --创建一个表
    create table t2 (
    tid number,
    tname varchar2(20),
    hiredate date default sysdate--设置该字段的默认值
    )
    alter table 语句追加,修改,或者删除语法
    --追加
    SQL> alter table t2 add (sid2 number,sid3 number);
    --修改
    SQL> alter table t2 modify (tname varchar2(30),sid2 long);
    --删除列
    SQL> alter table t2 drop column sid2;
    删除表
    1.数据和结构都被删除
    2.所有正在运行的相关事务都被提交
    3.所有相关索引都被删除
    4.DROP TABLE 语句不能回滚,但是可以闪回
    语法结构:DROP TABLE 表名
    普通用户下,表被删除会进入回收站(管理员没有回收站)
    --清空回收站
    purge recyclebin;
    --彻底删除一张表
    drop table test1 purge;
    约束
    --约束是表一级的限制
    --如果存在依赖关系,约束可以防止错误的删除数据
    --约束类型
        NOT NULL    非空
        UNIQUE        唯一性
        PRIMARY    KEY    主键
        FOREIGN    KEY    外键
        CHECK        检查
    create table student
    (
        sid number constraint student_sid_pk primary key,--主键约束
        sname    varchar2(40),
        email    varchar2(40) not null,--这是由oracle系统创建约束名
        sex number constraint student_sex_notnull not null,--这是自定义约束名,constraint是关键字
        age number constraint student_age_notnull not null constraint student_age_unique unique,
        --一个字段定义多个约束
        numx number constraint student_age_check check(numx<20)--检查约束
        deptno number constraint student_deptno_fk references dept(deptno)--外键约束
        --references是关键字,表示student表的deptno字段需要参考dept表的deptno字段 
    )
    有关check约束
    --可以使用in关键字
    create table student
    (
        sex varchar2(10) constraint student_sex_check check(sex in ('',''))
    )
    有关primary key约束
    --主键约束 通过这一列 唯一确定一行值
    --若定义主键约束 隐含 非空且唯一约束
    有关foreign key外键约束
    --定义两张表,一个表的列值引用另一个表的列值 员工表 部门表
        子表的外键关联的是父表的主键
    --父表中数据被子表引用,则父表相应记录删不掉
        若想删除 级联删除 级联置空
    --子表中插入数据,外键必须在父表中存在,否则插入出错
    外键约束(续)
    foregin key:在子表中定义了一个表级的约束
    references:指定表和父表中的列
    on delete cascade:当删除父表时,级联删除子表记录(一般情况下不使用,因为会破坏子表数据)
    on delete set null:将子表相关的依赖记录的外键值置为空值(一般情况下不使用,因为会破坏子表数据)
    ed:
    create table student
    (
    sid number,
    deptno number constraint student_deptno_fk references dept(deptno) on delete set null
    )
  • 相关阅读:
    CentOS安装使用.netcore极简教程(免费提供学习服务器)
    新生命团队netcore服务器免费开放计划
    线程池ThreadPool及Task调度死锁分析
    NetCore版RPC框架NewLife.ApiServer
    NewLife.Net——管道处理器解决粘包
    NewLife.Net——网络压测单机2266万tps
    NewLife.Net——构建可靠的网络服务
    NewLife.Net——开始网络编程
    搬家
    借助Redis做秒杀和限流的思考
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6269987.html
Copyright © 2011-2022 走看看