表的复杂查询

http://blog.csdn.net/jkhere/article/details/27113139


 1 ***一、表的复杂查询
2 1、连接查询
3 1.0连接的基本语法格式:
4 from TABLE1 join_type TABLE2 [on (join_condition)][where (query_condition)]
5 TABLE1:左表
6 TABLE2:右表
7 join_type:连接的类型。交叉、内连接、左外连接、右外连接
8 on:设置连接条件
9 where:对连接查询的结果进步一的筛选
10 1.1交叉连接
11 select * from CUSTOMER cross join ORDERS;
12 或者
13 select * from CUSTOMER,ORDERS;
14
15 select c.name,o.order_number from CUSTOMER c,ORDERS o;
16 1.2内连接:
17 隐式内连接:(不使用on关键字,使用where)
18 select * from CUSTOMER c,ORDERS o where c.id=o.customer_id;
19 显式内连接:(使用on关键字)
20 select * from CUSTOMER c inner join ORDERS o on c.id=o.customer_id;
21 1.3外连接:
22 左外连接:(返回符合连接条件的所有记录,同时还返回左表中其余的所有记录)
23 select * from CUSTOMER c left outer join ORDERS o on c.id=o.customer_id;
24 右外连接:(返回符合连接条件的所有记录,同时还返回右表中其余的所有记录)
25 select * from CUSTOMER c right outer join ORDERS o on c.id=o.customer_id;
26 2、子查询(嵌套查询)
27 查询“陈冠希”的所有订单信息
28 查询“陈冠希”的客户id select id from customer where name=‘陈冠希‘;
29 查询订单信息: select * from orders where customer_id=1;
30
31 子查询: select * from orders where customer_id=(select id from customer where name=‘陈冠希‘);
32 3、联合查询
33 SELECT * FROM orders WHERE price>200 UNION SELECT * FROM orders WHERE customer_id=1;
34 取两条语句的并集,并去除重复的记录。
35 4、报表查询(合计函数)(使用原来的test数据库)
36
37 统计一个班级共有多少学生?
38 select count(*) from student;
39 统计数学成绩大于90的学生有多少个?
40 select count(*) from student where math>=90;
41 统计总分大于250的人数有多少?
42 select count(*) from student where (chinese+math+english)>250;
43
44 统计一个班级数学总成绩?
45 select sum(math) from student;
46 统计一个班级语文、英语、数学各科的总成绩
47 select sum(chinese),sum(english),sum(math) from student;
48 统计一个班级语文、英语、数学的成绩总和
49 select sum(chinese+english+math) from student;
50 统计一个班级语文成绩平均分
51 select sum(chinese)/count(*) from student;
52 求一个班级数学平均分?
53 select avg(math) from student;
54 求一个班级总分平均分
55 select avg(chinese+english+math) from student;
56
57 Tips:如果要使用关键字作为表名,要使用`(Esc按键下面的)包围起来。
58 对订单表中商品归类后,显示每一类商品的总价
59 select product,sum(price) from orders group by product;
60 查询购买了几类商品,并且每类总价大于100的商品
61 select product,sum(price) from orders group by product having sum(price)>100;
62 二、MySQL的数据库的备份与恢复
63 数据库的备份:(不会备份数据库名)
64 shell>mysqldump -u root -psorry test>c:/test.sql
65 恢复数据库:(数据库名必须存在)
66 方式一:
67 shell>mysql -u root -psorry test<c:/test.sql
68
69 方式二:
70 mysql>USE test;
71 mysql>SOURCE c:/test.sql;


1         //根据老师的id查学生的基本信息:方式三种
2 // String sql = "select * from student where id in (select s_id from teacher_student where t_id=?)";//子查询
3 // String sql = "select s.* from student s,teacher_student ts where s.id=ts.s_id and ts.t_id=?";//隐式内连接
4 String sql = "select s.* from student s inner join teacher_student ts on s.id=ts.s_id where ts.t_id=?";;//显式内连接

表的复杂查询

时间: 2024-10-18 02:55:22

表的复杂查询的相关文章

Oracle EBS-SQL (SYS-7):表单个性化查询.sql

animation-timing-function animation-timing-function 规定动画的速度曲线.速度曲线定义动画从一套 CSS 样式变为另一套所用的时间.在平常的取值中,主要有以下几个: 值 描述 linear 动画从头到尾的速度是相同的. ease 默认.动画以低速开始,然后加快,在结束前变慢. ease-in 动画以低速开始. ease-out 动画以低速结束. ease-in-out 动画以低速开始和结束. cubic-bezier(n,n,n,n) 在 cub

sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询

执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 逻辑上看着挺对 但是报错: 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图.内联函数.派生表.子查询和公用表表达式中无效.   只要我们在嵌套子查询视图里面加入: top 100 percent 即可 select * from ( select top 100

sql语句去除重复记录(多表连接的查询)

--处理表重复记录(查询和删除) /****************************************************************************************************************************************************** 1.Num.Name相同的重复值记录,没有大小关系只保留一条 2.Name相同,ID有大小关系时,保留大或小其中一个记录 ********************

动态读取标准表高度尺寸查询

--模拟数据 --员工计件明细表 IF OBJECT_ID('tempdb..#emp')>0 DROP TABLE #emp SELECT * INTO #emp FROM ( SELECT '586' empcode ,'2014-10-21' opdate , 0.1 gaodu UNION ALL SELECT '586' empcode ,'2014-10-22' opdate , 2.9 gaodu UNION ALL SELECT '586' empcode ,'2014-10-2

多张表进行关联查询----&gt;删除某个数据的时候出现还有自己录的提示

多张表进行关联查询的时候,当某张表里面的一个字段在另外一张表有定义,就相当于一张表是另外一张表的子表:比如现在开发所遇到的一个问题: 这个是在删除sys_user表的里面的数据的时候出现的问题,因为sys_user(系统用户)里面含有user_id这个字段,而在另外一张表(就是sys_user的子表)里面(sys_user_role[系统用户角色表]:定义该系统用户功能菜单--->sys_user里面的user_name的功能)也有user_id; 当遇到这样的情况,解决思路就是: 1.查询出要

MyBatis 用户表记录数查询

搭建MyBatis开发环境,实现用户表记录数查询 1.在MyEclipse中创建工程,导入MyBatis的jar包 2.创建MyBatis配置文件mybatis-config.xml配置数据库信息 mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0

Excel工作表之SQL查询方法

[转载]Excel工作表之SQL查询方法 来源:http://blog.csdn.net/zhanghongju/article/details/8428458 近期在单位上做业务数据分析,发现还是Excel用的直接,筛选.求和.分类等等也是不亦乐乎,但是发现一些函数的效率与SQL还是有着较大差距,甚至是天壤之别,故作文一篇,提供Excel中的SQL查询使用方式. 查询的工作表可以是当前工作簿中的,也可以是其他工作簿中的.例如,图1所示的“网站数据.xlsx”工作簿中,Sheet1表格存储的是网

ORA-01219:数据库未打开:仅允许在固定表/视图中查询

好久没有登陆到Oracle的服务器了,把密码都忘记了.sql>conn sys/sys as sysdba;sql>alter user system identified by *;结果出现了ORA-01219:数据库未打开:仅允许在固定表/视图中查询--想要更改密码是遇到了错误?!sql>startup;ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭然后再sql>shutdown immediate;sql>startup;--错误依然:在执行

hibernate的基础学习--多表关联数据查询

Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN数据查询方式 1 public class TestOID_OGN { 2 3 /** 4 * 什么时候时候什么时候发送 5 */ 6 @Test 7 public void findUser() { 8 SessionFactory sf = H3Util.getSessionFactory();