Oracle(三)伪表与DML
--sql 分类
DDL 数据定义语言
create alter drop truncate
DML 数据操作语言
insert delete update select
TCL 事务控制语言
commit rollback
DCL 数据控制语言
grant revoke
--创建序列
create sequence sq_teacher_tno --序列的名称
start with 10 --开始的位置
increment by 1 --递增的序列值
maxvalue 9999999999 --设置最大值
--是否循环 cycle | nocycle
--是否保存到内存中 cache| nocache
--查询创建的序列信息
select * from user_sequences;
--查询序列的当前值
select SQ_TEACHER_TNO.Currval from dual;
--查询序列的下个值
select SQ_TEACHER_TNO.nextval from dual;
--使用序列新增数据
insert into teacher(tno,tname)
values(SQ_TEACHER_TNO.Nextval,'小黑2')
--dual确实是一个表,只有一个字段
select * from dual;
select 99*99 from dual;
select sysdate from dual;
select to_char(sysdate,'yyyy-MM-dd hh:mi:ss') from dual;
--sql标准 规定! select 语句中必须要有from ! 就是用dual来
--当作一个伪表!也就是查询的信息不存在任何一个表中的时候!
--导入sql 语句
01.cmd
02.sqlplus 用户名/密码
03.@ sql语句的地址
--01.查询老师的姓名和对应导师的姓名 自连接
select t1.tname as 老师姓名,t2.tname as 导师的姓名
from teacher t1,teacher t2
where t1.mgrno=t2.tno
--02. 查询老师姓名,部门名称和部门编号
select tname,dname,dept.deptno
from teacher,dept
where teacher.deptno=dept.deptno
--03.查询 姓 王 的老师信息 _代表一个字符 %
select * from teacher
where tname like '王%'
select * from teacher
where tname like '王_'
--04.查询陈老师和王老师的薪水和姓名
select tname,sal from teacher
where tname like '陈%' or tname like '王%'
--05.给所有姓王的老师 增加薪水
update teacher set sal=sal+20000
where tname like '王%'
--06.删除所有的teacher表中的数据 ! 表结构还在
delete from teacher
--07.删除表! 包含数据和表结构
drop table dept
--08.回忆外键约束 建立在从表中
alter table teacher add constraint fk_teacher_deptno
foreign key(deptno)
references dept(deptno)
--09.查询女姓老师的编号和姓名
select tno,tname from teacher
where gendar='女'
--10.查询薪水在10K-20k之间的老师编号,姓名 薪水
select tno,tname,sal from teacher
where sal between 10000 and 20000
--11.查询职位是 讲师或者研发的老师姓名 按照薪水的降序排列
select tname,sal,job from teacher
where job in('讲师','研发')
order by sal desc
--12.查询部门所有数据的insert语句
select 'insert into dept values('||deptno||','''||dname||''','''||loc||''');'
from dept