多表查询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. Centos7使用yum安装Mysql5.7.19的详细步骤(可用)

    Centos7的yum源中默认是没有mysql,因为现在已经用mariaDB代替mysql了. 首先我们下载mysql的repo源,我们可以去mysql官网找最新的repo源地址 地址: https: ...

  2. CF600E:Lomsat gelral(线段树合并)

    Description 一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和. Input 第一行一个$n$.第二行$n$个数字是$c[i]$.后面$n-1$ ...

  3. 2243. [SDOI2011]染色【树链剖分】

    Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如 ...

  4. Vue2.5开发去哪儿网App 从零基础入门到实战项目

    第1章 课程介绍本章主要介绍课程的知识大纲,学习前提,讲授方式及预期收获. 1-1 课程简介 试看第2章 Vue 起步本章将快速讲解部分 Vue 基础语法,通过 TodoList 功能的编写,在熟悉基 ...

  5. P1134 阶乘问题

    题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...

  6. ZOJ 2475 Benny's Compiler(dfs判断有向图给定点有没有参与构成环)

    B - Benny's Compiler Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu ...

  7. IE8 下处理select标签高度不居中

    IE8:          Chrome:   同样的代码可是在IE8下select的文字并不是垂直居中. 处理:给select的样式添加padding上下的内边距. 加line-height一点用都 ...

  8. sencha 2.3中自己定义PullRefreshFn给PullRefresh加入下拉刷新事件

    Sencha removed the refreshFn from the pullrefresh plugin in ST 2.2. Here is an user extension with g ...

  9. 【js】按下enter键禁止表单自动提交

    //enter键盘事件 document.onkeypress=function(){ if(event.keyCode==13){ return false; } }

  10. 更改KVM虚拟机root的密码

    今天在使用qemu-kvm安装一个虚拟机,因为已经有一个虚拟机的image文件(qcow2格式的),所以创建虚拟机很简单,直接通过以下命令从image启动就行了. qemu-kvm -cpu host ...