Oracle_创表,改表,增删改,序列,scott用户使用(3)

目录

 

一主要数据类型,创建表格

二.修改表结构

三.数据的增删改

四.序列的使用(主键赋值)

五.scott用户介绍与激活 


一主要数据类型,创建表格

  • varchar -- 存放定長的字符数据,最长2000個字符;
  • varchar2 -- 存放可变长字符数据,最大长度为4000字符。
  • CLOB文本类型的数据
  • BLOB一般用来存放除文本类型的数据
  • 创建表格
    • -- 创建表格
      create table person(
             pid number(20),
             pname varchar(10)
      );

       

二.修改表结构

  • 1.添加一列
    •  
      -- 增加一列
      alter table person add gender number(1);

       

  • 2.修改列类型
    • -- 修改表字段类型,char表示固定长度类型
      alter table person modify gender char(1);
  • 3.修改列名称
    •  
      -- 修改列名称
      alter table person rename column gender to sex;

       

  • 4.删除一列 
    • -- 删除一列
      alter table person drop column sex;

       

  • 5.注意:如果要修改多列需使用括号

    • -- 修改多列类型
      alter table person modify (pid number(12),PNAME VARCHAR2(11)); 
      
      --添加多列 
      alter table test add (pid int, PNAME int); 
      
      --删除多列
      alter table test drop (pid,PNAME);

       

三.数据的增删改

注意:脏数据产生情况

  • 1.添加一条记录
    •  
      -- 添加一条数据
      insert into person(pid,pname) values(2,'张三');
      -- 在java中connection事务是自动提交,此时并没有工具为我们自动提交
      -- 如果不写提交,此时为脏数据
      commit;
      
      
      -- 一般来说主键字段都是由序列自动生成的,不需要我们制定
      -- 文章下方有序列的基本介绍

       

  • 2.修改一条记录
    •  
      -- 修改一条数据
      update person set pname = '李四' where pid=1;
      commit;

       

  • 3.删除操作
    • A.删除全部记录
      •  
        -- 删除表中全部记录,这表语句等同于一条一条记录删除
        delete table person;

         

    • B.删除表结构
      •  
        -- 删除表结构
        drop table person;

         

    • C.先删除表结构,在创建表结构
      • -- 等同于删除表中全部记录
        -- 数据量大的情况下,并且在表中带有索引的情况下,该操作效率其高。
        -- 根据索引的特性,查询快,删除慢。 
        truncate table PERSON;
        
        -- 以上是正常情况
        -- 不正常情况报错:ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
        
        -- 解决方法如下:
        select session_id from v$locked_object;
        
        -- 根据查询到的session_id获取sid
        SELECT sid, serial#, username, osuser FROM v$session where sid = 142;
        
        -- 根据查询到的sid和serial杀死服务
         ALTER SYSTEM KILL SESSION '142,38';
        
        --问题解决

         

四.序列的使用(主键赋值)

  • 1.序列的基本介绍
    • -- 序列的基本使用和介绍
      -- 序列主要用于id字段的自增长使用
      
      -- 创建序列,该序列与数据表格无紧密的关系,只有逻辑关系
      -- 所以只要看得出是该表格的序列即可 
      create sequence s_person;
      
      -- 以下为创建序列后产生的文件
  • 2.查看序列方式
    •  
      -- 序列不属于任何表格,但是可以和表格邦定。
      -- 序列默认是从1开始,然后递增。
      -- 可以通过以下方式查看序列
      select s_person.nextval from dual;
      select s_person.currval from dual;
      
      --上面的使用顺序必须要正确,因为currval表示返回当前值,但是不使用nextval是没有值的
      -- nextval从1开始递增
      
      -- dual:虚表,只是为了补全语法而存在,比如上方语法根本没有要查询的表格,但是form字段必须要有。

       

      •  如果先使用currval就会报错(我这是plsql乱码原因
  • 3.完整的使用方式
    • -- 创建序列
      create sequence s_person;
      -- 使用序列插入数据
      insert into person(pid,pname) values(s_person.nextval,'王武');
      -- 提交
      commit;

       

  • 4.创建序列其他扩展属性介绍

    • ‘[]’中括号表示可选可不选

    • INCREMENT BY n:每次递增的数量,默认1

    • START WITH n:从哪个数量开始

    • MAXVALUE/MINVALUE n|NOMAXVALUE:最大值和最小值

    • CYCLE|NOCYCLE:表示递归的数据循环(这个基本不会用的,id就是为了保证唯一,不可以循环)

    • CACHE n|NOCACHE:缓存,设置的n表示会在递归到之前先缓存多少数值

五.scott用户介绍 

  • scott用户中数据不是很多也不是很复杂,但是可以模拟各种情况
  • 1.解锁scott用户
    • -- 解锁scott用户
      alter user scott account unlock;
      -- 修改scott用户密码(其他用户也可以使用该语句修改密码,但是权限要足够)
      alter user scott identified by tiger;
      -- 登陆scott用户

       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值