oracle的增删改插和子查询

本文介绍了SQL语言的基础操作,包括查询、更新、插入和删除等关键技能,并通过具体实例展示了如何利用这些技能来解决实际问题,如筛选特定条件的数据、进行数据更新及执行复杂的子查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查询

select * from teacher(表名) t(别名) where tname like '陈%' or tname like '韩%';

2.更新

update teacher set deptno=40 where tno=1002

update teacher set sal=sal+2000 where tname like '陈%'

实例

--女性老师编号、姓名
--姓韩的女性老师编号、姓名、身份证号
--薪水在[10000,20000)之间老师列表
--岗位为讲师或者研发,按照薪水降序排序
--部门所有数据的INSERT语句
select tno,tname,gender from teacher where gender='女'
select tno,tname,gender from teacher where gender<>'男'
select tname,sal from teacher where sal>=10000 and sal<20000
select * from teacher where tno between 1006 and 1010 and tno<>1010
select * from teacher where job in ('讲师','研发') order by sal desc

(能用exist就不要用in)
3.增加数据
insert into dept(deptno,dname,loc) values(2,'aa','table')

(oracle中双引号引用的是关键字)
create table "table"(id number(4))

4.删除表空间,表名是关键字的表,只能用sql语句删除

drop table "abc"

select 'insert into dept values('||deptno||','''||dname||''''||','''||loc||''');' from dept;

--招生部门所有男老师姓名
--所有老师姓名、部门名称
--所有在招生部、人力部的老师列表
select * from teacher where deptno=
(select deptno from dept where dname='招生部') and gender='男'
select tname,(select dname from dept where deptno=teacher.deptno) 
部门名称 from teacher
select * from teacher where deptno in
(select deptno from dept where dname in('招生部','人力部'))
子查询
--exists all any
select * from teacher where exists
(select deptno from dept where deptno=teacher.deptno and dname in('招生部','人力部'))
--查询比所有营销专员工资高的老师
--查询比任一个营销专员工资高的老师

select * from teacher where sal>(select max(sal) from teacher where job='营销专员' );

select * from teacher where sal>(select min(sal) from teacher where job='营销专员' )
select min(sal) from teacher where job='营销专员' ;

是不是所有的子查询都可以独立运行(不能,当有隐式连接,连接另一个表)
当一个查询的结果是另一个查询的条件时,称之为子查询。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值