"足球论之数据库知识点罗列"
2017-11-04 20:24
399 查看
一、何去除重复行
通过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打头createviewvcredit_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 = 事件处理函数
通过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打头createviewvcredit_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 = 事件处理函数
相关文章推荐
- C语言中值得深入知识点----数组做函数参数、数组名a与&a区别、数组名a的"数据类型"
- json数据为null处理为""解决方案
- 解决content-type为"application/json"的post过来的数据在php端接受不到的问题
- "非规范"数据类型带来的问题
- 数据绑定时出现"这将导致集合中的两个绑定绑定到同一个属性"错误.
- 表数据拼接,表头和数据用"|"和"\n"分隔
- 采用一个自创的"验证框架"实现对数据实体的验证[编程篇]
- 参考美团的"机器学习中的数据清洗与特征处理综述"(转载)
- 打开数据库的数据表时显示"目录名称无效"
- "上海房价地图"热传:数据挺新 但不科学
- 在java中已经规定数据类型是长整形为什么数字后面还要加一个"l"啊?前面不是有long吗?
- 平台导出"导出全部数据到Excel中(显示列)"的问题
- "C陷阱和缺陷"中的几个知识点
- 关于【finder不能完成该操作 因为未能读取或写入"文件名"中的某些数据(错误代码-36)】快速解决办法
- 在vue.js中如何将后台管理系统中的"修改","删除"添加到每条数据的后面
- sql语句中----删除表数据的"三兄弟"
- sql语名查询"今天","昨天","本周","本月"数据方法!
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"
- MOSS 2007装好后不能使用"上载多个文档"功能及报"没有安装与windows sharepoint services 兼容的数据表组件"错误
- 获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据