多表查询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. 在jupyter notebook中运行R语言

    要想在jupyter notebook中运行R语言其实非常简单,按顺序安装下面扩展包即可: install.package('repr','IRdisplay','evaluate','crayon' ...

  2. memcached/memcache安装

    memcached安装 查找memcached:        yum  search  memcached安装 memcached             yum  -y install memca ...

  3. 解决Mac外接显示器经常没反应

    问题描述 最近在使用绿联扩展坞的时候,发现连接显示器时,有时插上后可以正常使用,有时插上后显示器没反应. 解决办法 经过一段时间的尝试,发现这样操作可以避免出现这种问题: 关机的时候: 从转换器拔掉H ...

  4. 【转】tomcat搭建本地服务器 实现apk更新下载

    转自:http://www.kankanews.com/ICkengine/archives/121748.shtml 做apk的更新下载功能,测试的时候需要个服务器. 所以就选用 Apache To ...

  5. P1120 小木棍 [数据加强版]

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编 ...

  6. 带编译器的codeblocks下载地址

    曾下载过一个没有编译器的codeblocks,弄了很久才发现自己下载的版本没有编译器,所以将带编译器的codeblocks放在腾讯微盘中,方便自己也方便他人,这样就不用去官网下载了,官网有时候真的是有 ...

  7. bat设置windows计划任务

    设置定时任务 @echo off set NAME=dailybackup :: set DAY=MON,TUE,WED,THU,FRI,SAT,SUN set COMMAND=cscript.exe ...

  8. 【git3】git+Gogs+webStorm的使用

    Gogs:相比gitlab更轻量级,基于golang的搭建自助 Git 服务.使用Gogs轻松搭建可能比GitLab更好用的Git服务平台. 参考资料:http://blog.csdn.net/u01 ...

  9. javaScript真值和假值以及相等操作符

    真值和假值 相等操作符(==和===) 下面分析一下不同类型的值用相等操作符(==)比较后的结果 toNumber 对不同 类型返回的结果如下: toPrimitive 对不同类型返回的结果如下: = ...

  10. Linux学习笔记(第七章)

    目录相关操作 pwd -P 显示出实际工作目录,pwd 显示链接路径 mkdir -m 配置新建文件的权限 例:mkdir -m 711 testmkdir -p 建立多层目录,无需一层一层建立 rm ...