Oracle复习基础知识:增删改查,六大约束,序列+触发器

–授权
grant … to
–取消权限
revoke … from

–创建表
–两个常用数据类型 number varchar2 date
–精度:小数点左右两边的数字的位数 33333335.67
create table tb_10(
tid number(5),
tname varchar2(50),
tsex varchar2(4),
tage number(20),
taddress varchar2(200)
)

—查询所有
select * from tb_10

–约束
– 主键约束 唯一约束 默认约束 非空约束 检查约束 外键约束
– tid tname tsex 男 taddress tage 0-150

–往表中添加数据
–单行插入
insert into tb_10 (tid,tname,tsex,tage,taddress)
values(1,‘老范’,‘女’,38,‘浪琴湾厕所’);
insert into tb_10 (tid,tname,tage,taddress)
values(2,‘老范1’,18,‘浪琴湾厕所’);

–多行插入 dual伪表
insert into tb_10 (tid,tname,tsex,tage,taddress)
select 3,‘张三’,‘男’,110,‘浪琴湾网吧’ from dual union
select 4,‘李四’,‘男’,80,‘浪琴湾下水道’ from dual union
select 5,‘张麻子’,‘女’,45,‘梅溪湖’ from dual union
select 6,‘王五’,‘男’,23,‘涉外’ from dual union
select 7,‘赵六’,‘女’,15,‘岳麓区’ from dual

–序列 sequence 开始标识1 增长标识1
create sequence seq

–两个伪列 nextval获取下一个值 currval 最大序列
select seq.nextval from dual;
select seq.currval from dual;

—触发器:trigger
2 :时间 after before
2:触发级:行级 语句级
2:临时表 :new :old
3:操作 insert delete update
create or replace trigger tra
before insert
on tb_10
for each row
begin
:new.tid := seq.nextval;
end;

–序列+触发器 做自动增长
insert into tb_10 (tname,tsex,tage,taddress)
values(‘老范3’,‘妖’,28,‘深山老林’);

–查询语句
–查询所有
select * from tb_10
–查询姓名与性别
select tname,tsex from tb_10
–查询性别为男的学生信息 where 条件
select * from tb_10 where tsex=‘男’
–查询学生性别为女并且住在梅溪湖的学生信息 多个条件使用 and 连接
select * from tb_10 where tsex=‘女’ and taddress=‘梅溪湖’
–*查询学生姓名带有张的学生信息 like 模糊查询
select * from tb_10 where tname like ‘张%’
–查询年龄大于20的学生信息
select * from tb_10 where tage >20
–查询年龄在15-25之间的学生信息 between and 两者之间
select * from tb_10 where tage between 15 and 25;
–查询年龄最大的学生信息 子查询
select * from tb_10 where tage =(
select max(tage) from tb_10)

–查询年龄最小的学生信息
select * from tb_10 where tage =(
select min(tage) from tb_10)
–查询班上的平均年龄
select avg(tage) from tb_10
–统计班上总共有多少人
select count() from tb_10
–统计各个性别分别有多少人 先分组group by 后统计 count
select tsex 性别,count(
) 数量 from tb_10 group by tsex

–查询emp表
select * from emp
–给emp表增加伪列 rownum rowid
select a.*,rownum from emp a

–查询薪资最高的员工信息
select * from emp where sal =(
select max(sal) from emp)

select b.*,rownum from
(select * from emp a order by sal desc) b
where rownum =1

–查询4-8之间的数据(伪列) 变为实例
– 不行 select a.,rownum rid from emp a where rid between 4 and 8
select b.
from
(select a.*,rownum rid from emp a ) b
where b.rid between 1 and 10

–查询所有员工薪资总和(工资+奖金) nvl(a,b) 如果a为null 则用0 代替
select ename, sal+nvl(comm,0) 工资 from emp

–修改 修改记得要加条件
–将姓名为xxx的修改为xxx
select * from tb_10
update tb_10 set tname=‘大宝’ where tname =‘老范1’

–将姓名为XX的年龄修改为XX,地址修改为xxxx
update tb_10 set tage=88, taddress =‘浪琴湾垃圾站’ where tname=‘张三’

–将性别为男的学生年龄加1
update tb_10 set tage=tage+1 where tsex=‘男’

–删除
–将学号为xxx的删除
delete from tb_10 where tid = 11
–删除所有的学生
delete from tb_10
–删除学生表
drop table tb_10

–注意,在企业中,执行类似的delete,update操作的时候请提前备份
–delete,truncate,drop
–delete 删除数据,可带条件,当前操作可逆
–truncate 删除数据,不能带条件,操作不可逆,快于delete
–drop 删除数据及表结构

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值