1.乘积连接: 源表、源数据交叉链接,结果集数量为源数据之间的乘积2.相等链接: 通过where关联几个数据源中的某一字段进行链接3.自链接 自己链接自己 SSF A a1, A a24.不等链接 between C and C25.外连接 select * from A,B where A.C1 (+)= B.C1
若不加“(+)”则只返回相互关联成功的数据,若加了 (+) 则返回所有结果,无法关联的数据集字段内容为空6.ALL select * from A where A.C > ALL(
select C fr...
上一篇的内容在这里 第二篇内容, 用户权限:创建用户,创建角色,使用grant 和 revoke 语句赋予和回收权限,创建数据库联接 创建用户:create user xxx identified by pass: xxx为 新创建用户的用户名,pass 为密码 在这里强调的是 oracle 12c版本 必须创建用户以C##开头,也可以更改,详见百度 ,哈哈 但是新创建的用户并没有create session 权限,见图,登陆被拒绝 授予用户权限 :grant 权限 to ...
查询出来的结果>1000条select vl.UNIT_CODEfrom VC_LEVEL vlwhere vl.UNIT_TYPE = 0and vl.VALID_STATUS = 1and vl.LEVEL_NO <= 3start with vl.ID_VC_LEVEL = 694connect by prior vl.ID_VC_LEVEL = vl.PARENT_ORG_ID);放进一个list<string> aa 里面 select doc.id_vc_doc_version_info, doc.doc_ver_code, doc.doc_ver_name, doc.org_code, doc.status from vc_doc_version_info doc where 1 = 1 an...
子查询其实就是指嵌入到其他语句中的select语句,也称其为嵌套查询。
值得注意的在DDL语句中应用子查询的时候子查询可以使用order by 子句。
但是在DML语句中的where子句,set子句中,子查询是不能使用order by子句的。简单例子:查询工作和SMITH一样的所有员工的信息(不包含SMITH)select ename ,sal from emp e where job =(select job from emp where ename = ‘SMITH‘)and e.ename <> ‘SMITH‘;子查询分类单行子查询只返回一条...
-- 子查询-- 单行子查询-- 筛选条件不明确, 需要执行一次查询并且查询结果只有一个数据-- select * from 表 where 字段 > ( select 字段 from 表 where 字段 < 值 )-- 多行子查询-- 子查询的结果只有一个字段,但该字段有n个值, 考虑使用多行子查询-- 关键字 -- any : 任意一个-- select * from 表 where 字段 > any ( 子查询 )-- all : 全部-- select * from 表 where 字段 > all ( 子查询 )-- in (not in) : 任意一个 ( 相当于any...
为何要用子查询SQL> --查询工资比SCOTT高的员工信息
SQL> --1. 知道SCOTT的工资
SQL> select sal from emp where ename=‘SCOTT‘; SAL
----------
3000 SQL> --2. 查询比3000高的员工
SQL> se...
背景:ORACLE查询当前资产状态,包含资产信息(表1),资产维修状态(表2),资产报废状态(表3)
如下:
资产信息:资产维修:资产报废:
<img alt="技术分享" src="http://www.mamicode.com/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAACCCAIAAAA7V8I8AAAdhklEQVR4nO2dO47jvpbGtakKvJuKDPQuCjeoiwsM4Ekm/+eFiQbwMnoDFfYGegeawGWZPC8eUpTMI38/NBpliY/Dh8hPJEVO//r3f/9l/Oe//mcGAAAAAKhngrYAAAAAQEegLQAAAADQk7K2+Prf/8M...
子查询:在一个查询的内部包括另外一个查询。普通子查询-- 查询出比7654工资还高的全部雇员的信息
select * from emp e where e.sal > (select sal from emp where empno = 7654);-- 查询出工资比7654高,同时与7788从事相同工作的全部雇员的信息
select * from emp e
where e.sal > (select sal from emp where empno = 7654)
and e.job = (select job from emp where empno = 7788);-- 查询出工资最低的雇员姓名、工作、工资
sele...
最近在加强oracle查询,在网上看到了一个不错的视频,把学习笔记和大家分享一下oracle 子查询的语法(即select语句的嵌套)子查询要注意的问题: 1.子查询语法中的小括号 2.子查询的书写风格 3.可以使用子查询的位置:where ,select ,having,from 4.不可以在主查询的group by 使用 5.from的子查询 6.主查询和子查询可以不是同一张表 7.一般不在子查询中使用排序,因为对主查询没有意义,但在top-N分析顺序,要排序 8.执行顺...
--连接查询的三种格式
select ename, deptno,dname from emp natural join dept;
select ename, deptno,dname from emp join dept using(deptno);
select emp.ename, emp.deptno,dept.dname from emp join dept on emp.deptno!=dept.deptno;--自连接,将一张表当成两张表来看待
select e.ename,m.ename from emp e join emp m on e.mgr= m.empno--外连接right outer join/Left outer join/full outer join
select ename,d.deptno,d...
一、子查询回顾子查询是嵌套在 SQL 语句中的另一个 SELECT 语句例:
1、查询工资大于148号员工工资的员工信息(只能为单列查询,否则报错)结果如下2、查询 Last_name 为 grant 的 manager 的信息结果如下二、多列子查询( 将返回多个结果用 in )
1、例:查询 employee_id 为 149 号或 176 号员工的 manager_id 和 department_id 相同的其他员工的 emloyee_id , manager_id , department_id。不成对比较方式:
employees 表中 emp...
)
UNION :将多个操作的结果合并到一个查询结果中,返回查询结果的并集,自己主动去掉反复的部分。
UNION ALL:将多个操作的结果合并到一个查询结果中,可是保留反复的内容。
INTERSECT: 返回多个操作结果中同样的部分。
MINUS:返回两个查询结果的差集,去掉反复的部分。
基本的语法格式为:SELECT * FROM table_name 1
[union , union all , intersect , minus]
SELECT * FROM table_name2注意:仅仅能有一个Order by 语句 ,而...
,.varchar2 把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节,VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;建议在oracle中使用varchar2Number(7,2) 数值类型整数位占5位,小数位占2位,一共7位。
Date 时间类型7.Scott用户下的表结构
8. sql
1.sql简介
结构化查询语言(Structured Query Language)简称SQL(发音:/??s kju? ??l/ "...
第一:查询部门名为‘ACCOUNTING‘或‘SALES‘的部门编号? select deptno from dept where dname in (‘ACCOUNTING‘,‘SALES‘);第二:查询部门号为10或30号的员工信息? select * from emp where deptno in (10,30);子查询:select *
from emp
where deptno in (
select deptno
from dept
where dname in (‘ACCOUNTING‘,‘SALES‘)
);查询工资比20号部门【任意any】一个员工工资【低<】的员工信息(多...
创建表
CREATE TABLE employee(
idNUMBER(4),
name VARCHAR2(20),
gender CHAR(1),
birth DATE,
salary NUMBER(6,2),
jobVARCHAR2(30),
deptno NUMBER(2)
);
--查看表结构
DESC employee;
--删除表
DROP TABLE employee;
数据库中字面量数字不需要用单引号,但是字符串需要单引号没有双引号
NOT NULL 和 DEFAULT 不能同时使用,DEFAULT不给值得时候才会赋值,给值的时候就用给的值
--设置非空和初始属性
CREATE TAB...