"足球论之数据库知识点罗列"

8 篇文章 0 订阅

一、何去除重复行
通过distinct这个字眼
比如select distinct deptno from emp;
二、数据升降序
order by sal desc ;根据降序
select * from emp order by sal asc; 根据薪水升序
三、内置函数
可以理解成Java中的方法,有一定的功能,oracle中函数必须有返回值
四、子查询(嵌套查询):查多次,多个select
五、连接查询
5.1内连接
select e.ename,e.sal,d.dname from dept d inner join emp e

on (d.deptno = e.deptno)
5.2外连接:左外、右外、全外
左外连接: 在内连接的基础上,保证左表的数据都有 (右表的字段用空补全)

select * from dept left outer join emp

on (dept.deptno = emp.deptno)
全外: 左外连接的结果 并上 右外连接的结果 full outer join
5.3交叉连接(笛卡尔积)
交叉连接
select ename,dname from emp,dept ;//1992sql
select ename,dname from dept cross join emp;//1999sql 4*14=56条
5.4自然连接
–相当于内连接
–(1) 以左右两表 相同名称的字段 作为连接条件 相当于加上 on (dept.deptno = emp.deptno)

–(2) 去掉重复的字段 名称相同 类型也相同

select * from dept natural join emp
5.5等值连接(内连接)
select ename,dname from emp,dept
where emp.deptno=dept.deptno;//1992sql 在where语句里直接写表链接条件的语句是sql1992标准
5.6非等值连接
select emp.ename,emp.sal,dept.dname,salgrade.grade from dept inner join emp

on(dept.deptno = emp.deptno) inner join salgrade

on (emp.sal between salgrade.losal and salgrade.hisal)
5.7自关联
SMITH这个人的名字 以及他的经理人的名字
select employee.ename,manager.ename from emp manager inner join emp employee

on(manager.empno=employee.mgr) where employee.ename=’SMITH’
六、视图
视图名一般以v createviewv credit_card
七、伪列 rownum
薪水最高的第六个人到第十个人 (三层嵌套)
select * from
(
select t.*,rownum r from
(select * from emp order by sal desc) t
) where r>=6 and r<=10
八、索引
在where group by order by子句中出现最频繁的列上创建索引
1.唯一性索引

而且主键和unique约束的字段自动加索引,加的是唯一性索引

2.非唯一性索引

其他的索引是非唯一性索引
索引的优缺点:
优点: 加速查询
Where
Group by
Order by
都会提高速度
缺点:
1.修改(往表里增加一条、删除一条..或者是更改信息)的时候效率低(因为不仅要插入记录,而且要同时维护索引)
2.另外索引占空间
九、序列
序列:oracle产生的不间断的一个唯一数字,用来作为主键
create sequence seq_article minvalue 0 start with 0 increment by 1
十、游标
游标是指向结果集的指针,类似迭代器Iterator
一开始指向结果集的第一条记录之前的记录,
每fetch一次往下移动一条记录,返回指针指向的当前记录,
十一、存储过程
预编译的sql语句,执行速度比pl/sql快

create or replace procedure p1(v_deptno in number)
is
cursor c(v_deptno emp.deptno%type) is
select ename,sal from emp where deptno=v_deptnob;
begin
for v_temp in c(v_deptno) loop
dbms_output.put_line(v_temp.ename);
end loop;
end;

begin
p1(10);
end;
存储过程和函数的区别(面试题)
1.存储过程没有返回值,函数必须有返回值的
2.存储过程是执行任务和操作的,而函数只是单单的执行复杂的计算
3.函数 可以用到 select 中,存储过程不能使用在select语句中
十一、函数
函数:类似于js函数 有一定的作用 区别: 必须有返回值

十二、触发器
理解为js中 事件处理函数 按钮.onclick = 事件处理函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值