Oracle入门 04_02 表删除新增查询

  1. ​​​​​序列 sequence

可以为表中的列自动产生值

由用户创建数据库对象,并可由多个用户共享

一般用于主键或唯一列。

案例:

create sequence my_seq		---创建序列名
	start with 1				---从1开始
	increment by 1			---每次增长1
	maxvalue 999999999		---最大值
	minvalue 1				---最小值
	cycle					---循环
	cache					---缓存
	order
说明:从1开始,每次增长1,最大值为999999999,之后又循环从1开始。
运用:
select my_seq.nextval from dual             ---新值(下一个)
select my_seq.currval from dual             ---当前值

SQL语句插入标识符

insert into tb_student values(my_seq.nextval, 李四, , 2000-10-19, 1, null)

删除数据

删除所有记录,表结构还在,写日志,可以恢复的,速度慢

delete from tb_student

删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快

l truncate table tb_student

删除表的结构和数据

l drop table tb_student

DROP与TRUNCATE与DELETE的比较:

相同点:

  1. TRUNCATE和DELETE、DROP都会删除表内的数据。
  2. DROP与TRUNCATE都是DDL语句(数据定义语言),执行后会自动提交。

不同点:

  1. TRUNCATE和DELETE只删除数据不删表结构;DROP除删数据和表结构外,与该表有依赖的约束、触发器、索引将被删除,但存储过程和函数将保留。
  2. 安全性:小心DROP和TRUNCATE。DELETE在执行后不会马上提交,可以通过回滚找回删除数据;DROP和TRUNCATE执行后直接提交,不会回滚。
  3. 速度,一般来说:DROP > TRUNCATE > DELETE
  4.  
  5. 查询
  6. ​​​​​​​set timing on; --打开操作时间开关
  7.  
  8. (1)查看表结构

    desc 表名;

    (2)取消重复行

    select distinct deptno,job from emp;

    (3)查询处理空值

    nvl(expr1, expr2)

    如果expr1为空则返回expr2

    select sal*13+nvl(comm, 0) total from emp;

     

    nvl2(expr1, expr2, expr3)

    如果expr1不为空返回expr2,否则返回expr3

    select empno,ename, nvl2(comm,'有奖金','没有奖金') from emp;

     

    nullif(expr1, expr2)

    如果expr1和expr2相等返回空,否则返回expr1

     

    (4)合并查询

    为了合并多个select语句的结果,可以使用集合操作符号union、union all、intersect、minus

    l union该操作符用于取得两个结果集的并集,当使用该操作符时,会自动去掉结果集中重复行。

     

    查询工资大于2500与职位为MANAGER的并集

    select ename,sal,job,from emp where sal>2500

    union

    select ename,sal,job from emp where job=MANAGER;

     

    union all与union相似,但是它不会取消重复行

    select ename,sal,job,from emp where sal>2500

    union all

    select ename,sal,job from emp where job=MANAGER;

     

    intersect使用该操作符用于取得两个结果集的交集

    select ename,sal,job,from emp where sal>2500

    intersect

    select ename,sal,job from emp where job=MANAGER;

     

    minus使用该操作符用于取得两个结果集的差集,它只会显示在第一个集合中,而不存在第二个集合中的数据

    select ename,sal,job,from emp where sal>2500

    minus

    select ename,sal,job from emp where job=MANAGER;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@insist123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值