• oracle坚决不挂01(表,索引,视图的创建,修改,删除,查询)


    考试快来了,来篇oracle干货,复习一下(挣扎一下)

    废话不多说,开始写!

    这篇是数据库对象的有关操作的总结!
    数据库对象有熟悉的表,视图,索引,序列,同义词等(这个oracle东西真不少,小声bb!)

    1. 创建表

    1. 创建学生表student(sno,sname,sex,sage),要求学号sno主键,姓名sname不能重复, 性别sex只能是‘男’或者‘女’,年龄sage在15到25之间。创建课程表course(cno,cname),要求课程号cno主键,课程名cname唯一,同时为主键约束列上的唯一性索引设置存储位置和存储参数。创建学生选课表SC(sno,cno,grade),要求成绩grade大于0小于100,有两位小数,sno,cno都是外键,而且sno,cno一起做主键。
    CREATE TABLE student(
         sno NUMBER(6) CONSTRAINT S_PK PRIMARY KEY,
         sname VARCHAR2(20)  UNIQUE,
         sex CHAR(2) CONSTRAINT S_CK1 CHECK(sex in('男', '女')),
         sage  NUMBER(6,2) CONSTRAINT S_CK2 CHECK(sage between 15 and 25)
         );
    CREATE TABLE course(
         cno   NUMBER(6) PRIMARY KEY,
         cname CHAR(20) UNIQUE 
         USING INDEX TABLESPACE USER
         STORAGE (INITIAL 64K NEXT 64K)
         ); 
    CREATE TABLE  SC(
         sno NUMBER(6) REFERENCES student(sno),
         cno NUMBER(6) REFERENCES course(cno),
         grade NUMBER(5,2) CHECK(grade between 0 and100)CONSTRAINT SC_PK PRIMARY KEY(sno, cno)  
         );
    
    

    2.修改表

    随便举个例子:将staff员工表重命名成staff_01.

    alter table staff rename to staff_01;
    

    向staff_01表中添加age字段

    alter table staff_01 add(age varchar2(5));
    

    向“staff_sql0”表添加“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
    在这里插入图片描述

    在这里插入图片描述
    删除“staff_sql0”表上“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
    在这里插入图片描述
    在这里插入图片描述
    从“staff_sql0”表删除“age”字段,利用DESC命令查看“staff_sql0”表的字段信息。

    alter table staff_sql0 drop column age;
    

    在这里插入图片描述
    将“staff_sql0”表“sname”字段长度修改为30,利用DESC命令查看“staff_sql0”表的字段信息。
    在这里插入图片描述

    索引、视图、同义词及序列操作

    1. 创建索引
      为医院表的医院名称创建索引,并以降序排列,索引名为“hospital_name_index”。
    create index 索引名 on 表名 (表中属性名 desc/ascdesc(降序) asc(升序)
    

    在这里插入图片描述
    2. 查看索引

    • 从DBA_INDEXES数据字典中查看员工医疗保险系统所有索引的信息
    select * from user_indexs where table_name=upper('hospital');
    
    • 从DBA_INDEXES数据字典中查看“staff_info_index”索引的信息,并查看该索引列的顺序及状态
    select * from user_ind_columns where index_name=upper('staff_info_index');
    

    在这里插入图片描述
    别问我为什么这么喜欢发图,图的信息多啊,比打字快(手动滑稽)
    3. 删除索引

    • 删除“hospital_name_index”索引。
    drop index 索引名
    

    在这里插入图片描述

    视图操作

    1. 创建视图
    • 为企业表创建视图,视图名为“business_view”。
    create view 视图名 as 查询语句
    例如:
    create view business_view as select bname,baddress,bno,btype,btel from business;
    

    在这里插入图片描述
    2. 查看视图
    (1) 查看当前用户模式下的视图。
    在这里插入图片描述
    (2) 查看“consume_view”视图的信息。
    在这里插入图片描述
    3. 视图数据的更新
    (1) 向“business_view”插入一个记录,企业编号为“B1997010287”,企业名称为“格林制药”,企业类型为“企业”,企业地址为“鸭绿江街98号”,联系电话为“84692315”。
    在这里插入图片描述
    看看插入成功没
    在这里插入图片描述
    呦西!
    4. 删除视图

    drop view 视图名;
    

    删除“business_view”视图
    在这里插入图片描述

    同义词

    1. 创建同义词(相当于给数据库对象起了个别名)
      创建企业表同义词,名为“qyb”。
    create public synonym '同义词名' for '表名';
    

    在这里插入图片描述
    2. 使用同义词

    select * from qyb;
    
    1. 删除同义词
    drop public synonym '同义词名'
    

    在这里插入图片描述

    序列

    1. 创建序列
      创建序列,该序列最大值为“28000”,最小值为“60”,步长为“1”,可循环,序列名为“ygbx_seq1”。
    create sequence '序列名' minvalue xxx maxvalue xxx increment by xxx
    cycle;
    

    cycle是指这个序列是可循环的,increment by 1,就是每次递增1,nomaxvalue,没有最大值。

    在这里插入图片描述
    2. 查询序列
    查看序列“ygbx_seq1”。

    select * from user_sequence where sequence_name='序列名';
    

    在这里插入图片描述
    3. 修改序列
    修改序列“ygbx_seq2”,将该序列最大值设为“1000”

    在这里插入图片描述

    alter sequence '要修改的序列名' 属性名 属性值
    
    1. 删除序列
      删除序列“ygbx_seq1”。
      在这里插入图片描述
    drop sequence '序列名';
    
    

    先总结到这,后面继续,本人村树菜鸟,以上有错误和要改正的,欢迎大家指出。

  • 相关阅读:
    Pick-up sticks
    The Doors
    Intersecting Lines
    Segments
    TOYS
    Palindrome
    Distinct Substrings
    Milk Patterns
    Musical Theme
    JavaScript基于时间的动画算法
  • 原文地址:https://www.cnblogs.com/dataoblogs/p/14121978.html
Copyright © 2020-2023  润新知