多表查询sql语句

 1 --解锁SCOTT用户
2 alter user scott account unlock
3 --检索指定的列
4 select job,ename,empno from emp;
5 --带有表达是的select子句
6 select sal*(1+0.2),sal from emp;
7 --显示不重复的记录
8 select distinct job from emp;
9 --比较筛选 <> =
10 select empno,ename,sal from emp where sal>1000;
11 select empno,ename,JOB from emp;
12 select empno,ename,sal from emp where sal <>all(3000,950,800);
13 --特殊关键字筛选
14 --like 模糊查询
15 select empno,ename,job from emp where JOB like '%S';
16 --IN --varchar
17 select empno,ename,job from emp where job in('PRESIDENT','MANAGER','ANALYST');
18 --NOT IN
19 select empno,ename,job from emp where job not in('PRESIDENT','MANAGER','ANALYST') ;
20 --BETWEEN -numer ,inter
21 select empno,ename,sal from emp where sal between 2000 and 3000;
22 --NOT BETWEEN
23 select empno,ename,sal from emp where sal NOT between 2000 and 3000;
24 --IS NULL/ is not null
25 select * from emp where comm is NOT null;
26 --逻辑筛选
27 --and ,or,not 关系 于 -或 --非
28 select empno,ename,sal from emp where (sal>=2000 and sal<=3000 ;
29 select empno,ename,sal from emp where sal<2000 or sal>3000 ;
30 --分组查询
31 select deptno,job from emp group by deptno,job order by deptno ;
32 select deptno as 部门编号,avg(sal) as 平均工资 from emp group by deptno;
33 select deptno as 部门编号,avg(sal) as 平均工资 from emp group by deptno having avg(sal)>2000; --group by 子条件 having
34 --排序查询Order by; desc:逆序 asc默认
35 select deptno,empno,ename from emp order by deptno,EMPNO;
多表查询sql语句七种示例图
在创建关系型数据表时,根据数据库范式的要求,为了降低数据的冗余,提供数据维护的灵活性
将数据分成多个表进行存储,实际工作当中,需要多个表的信息,需要将多个表合并显示
 

多表查询sql语句 代码

 1 --内连接
2 select e.empno as 员工编号, e.ename as 员工名称, d.dname as 部门
3 from emp e inner join dept d on e.deptno=d.deptno;
4
5 --左外连接
6 insert into emp(empno,ename,job) values(9527,'EAST','SALESMAN');
7
8 select e.empno,e.ename,e.job,d.deptno,d.dname from emp e left join dept d
9 on e.deptno=d.deptno;
10 --右外连接
11 select e.empno,e.ename,e.job,d.deptno,d.dname from emp e right join dept d
12 on e.deptno=d.deptno;
13
14 --完全连接
15 select e.empno,e.ename,e.job,d.deptno,d.dname from emp e full join dept d
16 on e.deptno=d.deptno;
17
18 --自然连接(共有的属性,会去除重复列)
19 select empno,ename,job,dname from emp natural join dept where sal>2000;
20
21 事务如果不提交,会一直写入以下表空间;
22 redo(记录日志表空间) undo(记录日志备份表空间)
23 提交: commit 回滚: rollback
24
25 --右外连接过滤
26 select * from emp e right join dept d on e.deptno=d.deptno
27 where e.deptno is null;
28 --左外连接过滤
29 select * from emp e left join dept d on e.deptno=d.deptno
30 where d.deptno is null;
31 --全外连接过滤
32 select * from emp e full join dept d on e.deptno=d.deptno
33 where d.deptno is null or e.deptno is null;
34
35
36 /*自连接(self join)是SQL语句中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。
37 在emp中的每一个员工都有自己的mgr(经理),并且每一个经理自身也是公司的员工,自身也有自己的经理。*/
38 select em2.enname 管理者,em1.enname 下属员工 from emp em1 left join emp em2 on em1.mgr=em2.empno order by em1.mgr;
39
40 /*交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数*/
41 select count(*) from dept cross join emp;

ROWNUM伪列

 1 select rownum,empno,ename  from emp where deptno=20;
2 --返回emp表中前5个员工消息
3 select rownum seq,empno,ename,sal from emp where rownum<=5;
4
5 --查询emp表中2条到第5条的数据
6 select rownum seq,empno,ename,sal from emp where rownum>=2 and rownum<=5;
7
8 /*ROWNUM列值会被重置所致,比如在取第1行,where子条件不成立,第1行被丢弃,
9 但是取下一行时,ROWNUM会被重置为1,而不是2, 导致,ROWNUM永远无法取到正确的值
10 无法返回 任何行数据*/
11 select * from emp;
12 select seq,empno,ename,sal from (select rownum seq,empno,ename,sal from emp)
13 where seq>=2 and seq<=5
 
外键约束的作用 
外键是该表是另一个表之间联接的字段 外键必须为另一个表中的主键 外键的用途是确保数据的完整性。它通常包括以下几种: 实体完整性,确保每个实体是唯一的(通过主键来实施)
 
1 域完整性,确保属性值只从一套特定可选的集合里选择
2 关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值    


有外键约束的表CRUD操作

  1   增加数据:先插入外表,再插入主表
  2   删除数据:先删除主表再删除外表,
  3   有对应记录的值,不能修改当前列;

多表查询sql语句的更多相关文章

  1. phpmyadmin查看创建表的SQL语句

    本人菜鸟 发现创建表的SQL语句还不会 直接phpmyadmin解决的 查看见表的语句除了直接到处SQL格式文件 打开查看外 就是执行语句查询 语句:show create table 表名  貌似大 ...

  2. 查询sql语句所花时间

    --1:下面这种是SQL Server中比较简单的查询SQL语句执行时间方法,通过查询前的时间和查询后的时间差来计算的: declare @begin_date datetime declare @e ...

  3. 跨服务器查询sql语句样例

    若2个数据库在同一台机器上:insert into DataBase_A..Table1(col1,col2,col3----)select col11,col22,col33-- from Data ...

  4. Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。

    最近一个项目,使用微软的Entity Framework的ORM框架的项目,部署到现场后,出现了系统缓慢,多个客户端的内存溢出崩溃的问题. 打开了SQL Server Profiler(SQL Ser ...

  5. MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  6. 跨服务器查询sql语句样例(转)

    若2个数据库在同一台机器上: insert into DataBase_A..Table1(col1,col2,col3----) select col11,col22,col33-- from Da ...

  7. 创建数据库和表的SQL语句

    创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略 3 ( 4 /*--数据文件的具体描述--*/ 5 n ...

  8. 创建数据库和表的SQL语句【转】

    创建数据库和表的SQL语句 转至http://www.cnblogs.com/philanthr/archive/2011/08/09/2132398.html 创建数据库的SQL语句: 1 crea ...

  9. oracle 修改表的sql语句

    oracle 修改表的sql语句     1增加一个列:ALTER TABLE 表名 ADD(列名 数据类型);如:ALTER TABLE emp ADD(license varchar2(256)) ...

随机推荐

  1. Oracle中修改sysman和dbsnmp密码正确流程

    1.停止dbconsole $ emctl stop dbconsole 查看状态,确认dbconsole已经停止 $ emctl status dbconsole   2.修改sysman用户和db ...

  2. JavaScript设计模式—单例模式

    单例模式介绍 系统中被唯一使用的,一个类只有一个实例 单例模式的思路是: 一个类能返回一个对象的引用(并且永远是同一个)和一个获得该实例的方法(静态方法,通常使用 getInstance 名称). 那 ...

  3. 常用的npm命令

    npm ls -g 列出全局安装的所有模块 npm ls webpack -g 查看全局安装的模块版本信息 npm view webpack versions 查看npm服务器上的全部版本信息 npm ...

  4. 【洛谷】【线段树】P3353 在你窗外闪耀的星星

    [题目描述:] /* 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀 ...

  5. C# 通过word模板动态生成Word

    object oMissing = System.Reflection.Missing.Value; Word._Application oWord = new Word.Application(); ...

  6. linux shell基本知识 sleep命令

    在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时) sleep 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时

  7. PAT02-线性结构3 Reversing Linked List

    题目:https://pintia.cn/problem-sets/1010070491934568448/problems/1037889290772254722 先是看了牛客(https://ww ...

  8. display:inline、block、inline-block的区别(摘抄)

    display:inline.block.inline-block的区别 display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都 ...

  9. javascript中的属性注意事项

    1.函数原型prototype设置的对象是只读类型,所以不能修改(即栈只读).但是我们常常可以看到它被“修改‘’了.若对象中定义的属性和原型中属性一样,优先使用自定义属性. 例如代码: //原型 类似 ...

  10. WebGl 多缓冲区传递颜色和坐标(矩形)

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...