美文网首页
Oracle 数据库(一)

Oracle 数据库(一)

作者: 月影风煞 | 来源:发表于2018-04-18 11:41 被阅读0次

    1.数据库

    DB(database) 用来存储数据的仓库
    DBS(数据库系统) 一套软件 包括DB 和DBS
    DBMS(数据库管理系统)

    主流数据库: 主流数据库

    2.sql->structs query lanagues(结构化的查询语言)

    任何数据库都支持的语言标准sql
    不同数据库
    1:数据类型会存在一些差异
    2:函数存在一些差异
    3:存储过程 plsql.一些差异

    3.Oracle 定义

    1) oracle版本

    oracle7 – oracle8 -> oracle8i -> oracle9i -> oracle10g -> oracle11g -> oracle12c
    i->internet 支持网络访问操作
    g-> grid 支持网格的数据库 (支持分布式应用)
    c->cloud 支持云计算的数据库

    2)oracle数据类型
    • 字符类型
      char 是一个定长的字符类型 最大存储空间是2000字符
      char(10) “a”, -> a ,
      varchar 是一个变长的字符类型最大存储空间是4000字符
      varchar(10) “a” -> a,
      varchar2 是一个变长的字符类型最大存储空间是4000字符,是oracle 10g新推出的数据类型在varchar上面改正的数据类型,在性能上比varchar高
    • 数值类型
      number 可以存储任意的数据 包括带小数位的
      number(n) n代表整数位数
      number(3)->存储范围 -999 -999
      number(n,m) n代表有效值的总位数 m小数位数
      number(5,2) ->存储范围 -999.99 -999.99
    • 时间类型
      date 时间 可以存储到 年月日 时分秒
      timestamp 时间 可以存储到 年月日 时分秒 毫秒
    • 大数据类型
      clob 以字符存储的大数据 最大值是4G (文章)
      blob 以二进制存储的大数据 最大值是4G (视频 照片)
    3) oracle 表 列命名规范

    必须只能是 字母 数字 _ - $ 组成
    首字母必须不能是数字
    命名不能是oracle的关键字 number char varchar….
    命名的长度不能超出 30个字符
    数据库中 表名 列名 关键字 都不区分大小写,但数据值区分大小写

    4、数据库定义语言 DDL(database defined language)

    1)创建表:
       create table 表名(
         列名1  数据类型1,
         ………,
         列名n  数据类型n
    )
    
    2) 修改表结构
    • 添加列
      alter table 表名 add (字段名 字段类型 默认值 是否为空,....);
    • 修改列
      alter table 表名 modify (列名 新的数据类型,….. 列名 新的数据类型)
    • 删除列
      alter table 表名 drop column 列名;
    • 字段重命名
      alter table 表名 rename column 老列名 to 新列名
    • 表的重命名
      alter table 表名 rename to 新表名
    3) 删除表
    drop table 表名;
    /*删除闪回为删除oracle10g中的数据库实体提供了一个安全机制,当用删除一个表时,oracle10g 
    会将该表放到回收站中,回收站中的对象一真会保留,直到用户决定永久删除它们或出现表空间的空间不足
    时才会被删除。回收站是一个虚拟容器,用于存储所有被删除的对象*/
    flashback table 表名  to before drop;
    
    4)截断表

    truncate table 表名;//删除数据,保留表结构

    5、数据库操纵语言 DML(database manipulate language)

    • 向数据库表里面插入记录
    insert  into 表名 (列名1,。。。。。列名n) values (列名1值,…. 列名n值);
     数据仅仅插入数据库的缓冲器  要进入数据库 必须启动事务操纵
           Commit ;或者  rollback;
    
    • 删除表里面的记录
    delete from表名   删除表里面的所有记录 保留表结构
    也需要  Commit ;或者  rollback; 
    

    drop table 删除表 删除表数据与表结构 不能回滚 会释放空间
    truncate table 删除表数据 保留表结构 不能回滚 会释放空间
    delete table 删除表数据 保留表结构可以回滚 不释放空间

    • 修改表里面的数据
     Update 表名 set 属性1=值1,….. 属性1=值1 where 属性=值;
    

    6、数据库的规范(范式)

    第一范式 :表的列不可再分
    第二范式: 在满足第一范式的基础上,行数据可以唯一区分
    可以考虑给表加上唯一可以区分的 不能重复的列(主键)
    第三范式:在满足第二范式的基础上,外键要依赖其他表的主键

    7、表的约束

    constraint 约束名 约束类型(列名)

    创建表的时候添加约束:

    Create table xxx(
     列1 数据类型1,
    ...,
    Constraint 约束名  约束类型 (列名)
    )
    

    创建完表之后添加约束:
    alter table ttss_user add constraint ttss_user_pk primary key(id);

    • 主键约束(primary key)
    • 唯一约束(unique):只可以有一个null
    • 检查约束(check):常用于范围检查
      constraint sex_check check(sex='女')
    • 默认值约束(default ):写法不一样
      alter table 表名 modify 列名 default 默认值
    • 外键约束(foreign key):值可以是null
      constraint 约束名 foreign key(列名) references 外表名(列名)

    相关文章

      网友评论

          本文标题:Oracle 数据库(一)

          本文链接:https://www.haomeiwen.com/subject/zhkukftx.html