数据库3复杂查询

 

简单查询:

 

一、投影

select * from 表名

select 列1,列2... from 表名

select distinct 列名 from 表名

 

二、筛选

select top 数字 列|* from 表名

(一)等值与不等值

select * from 表名 where 列名=值

select * from 表名 where 列名!=值

select * from 表名 where 列名>值

select * from 表名 where 列名<值

select * from 表名 where 列名>=值

select * from 表名 where 列名<=值

 

(二)多条件与范围

select * from 表名 where 条件1 and|or 条件2 ...

select * from 表名 where between ... and ...

select * from 表名 where 列 in (值列表)

(三)模糊查询 like % _

 

select * from 表名 where 列 like ‘%_....‘

 

 

三、排序

select * from 表名 where 条件 order by 列名 ASC|DESC,列名 ASC|DESC

 

 

四、分组:

统计函数(聚合函数)

count(), max(), min(), sum(), avg()

count()统计总行数

count(*)得到所有的行数

count(列)得到该列中所有非null个数。

select COUNT(*) from car where Brand=‘b003‘

max(列) 这一列的最大,min(列)这一列的最小

select min(price) from car

sum(列)这一列的和,avg(列)这一列的平均

select AVG(price) from car

group by ...having...

 

1.group by后面跟的是列名。

 

2.一旦使用group by分组了,则select和from中间就不能用*,只能包含两类东西一类是:group by 后面的列名,另一类是统计函数

select Oil,avg(price) from Car group by oil

对于统计函数生成的列,默认是无列名,可以通过下面的方法指定列名。

select Oil as 油耗,COUNT(*) as 数量,avg(price) 均价 from Car group by oil

having后面一般跟得是统计函数。它用来对分组后的数据进一步筛选。

复杂查询:

 

一、连接查询

 

把多个表的列合在一个界面视图中。

思想:1.生成笛卡尔积。2.对笛卡尔积进行筛选。3.选择列进行显示。

select 表1.列1,表1.列2,表2.列1,表2.列2…… from 表1,表2 where 表1.列=表2.列

select * from 表1

join 表2 on 表1.列=表2.列

join 表3 on 表2.列=表3.列

左连(left join),右连(right join),全连(full join)

 

二、联合查询

把多个表的行合在一个界面视图中。

用union把两个查询组合在一起。要求是这两个查询的列要一一对应。

 

三、子查询(嵌套查询)

 

(一)无关子查询:

至少是两层查询,在外层查询的里面再写查询。

里层查询为外层查询提供查询的中间内容。

(二)相关子查询:

时间: 2024-10-11 00:22:33

数据库3复杂查询的相关文章

SQL 数据库T-SQL语句查询

         SQL 数据库T-SQL语句查询 附加数据库的数据文件 查询表中种类是水果的出厂日期在201-04-01之后的 查询所有种类的总成本 以倒序的方式查询表中水果的成本 查询种类是蔬菜的并且价格在1-5之间 将product表中的名称,种类,出厂日期的数据保存在另一个名为product_new的表中,并查看 在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格. 在products表和sales表中查询销往海南的产品名称.种类.成本和销售价格. 查询年

前端学数据库之子查询

查询数据库,当查询条件比较复杂时,常常需要用到子查询.子查询(Subquery)是指出现在其他SQL语句内的SELECT子句.本文将详细介绍子查询 定义 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句 SELECT * FROM t1 WHERE col1 = (SELECT col2 FROM t2); 其中,SELECT * FROM t1,称为外层查询(Outer Query/Outer Statement),SELECT col2 FROM t2,称为子查询(Su

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

ADO数据库访问类查询、属性扩展

1 数据库访问类查询 (1)查询一条 有参数:查询这条信息的主键: 有返回值:返回值是一个实体类: dr.read();执行一遍,读取这行信息并放进users类型中. ///返回users实体类类型 public users chayi(string name) { users u = null; com.CommandText = "select *from users where [email protected]"; com.Parameters.Clear(); com.Par

【SSH项目实战05】完成数据库的级联查询和分页

上一节我们完成了EasyUI菜单的实现.这一节我们主要来写一下CategoryServiceImpl实现类,完成数据库的级联查询.一般项目从后往前做,先做service(我们没有抽取Dao,最后再抽取),做完了再做上面层. 在写之前,先看一下数据库中的表的情况: drop database if exists shop; /*创建数据库,并设置编码*/ create database shop default character set utf8; use shop; /*删除管理员表*/ dr

Android程序员必掌握的sqlite数据库连表查询

SQL查询的基本原理:两种情况介绍. 第一.   单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 第二.   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表:然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果. 第三.   多表连接查询:先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到所有的表都连

远程查询数据库和本地查询的结果不同?

今天遇到一个好奇怪的问题,远程查询数据库得到的记录中ip是111.111.172.14 而在本地查询却不是这个值 2 NULL 12312 20140531 111.111.172.14 Web  通过Ms sql客户端连接服务器后查询的 2 NULL 12312 20140531 123.151.172.14 Web 在服务器上查询的结果 特别奇怪的是 使用代理后通过Ms sql客户端连接服务器后查询的得到的就是123.151.172.14 远程查询数据库和本地查询的结果不同?,布布扣,bub

数据库sql联合查询mid类型的分页数据取不了全部的值错误

USE [Travel]GO/****** Object:  StoredProcedure [dbo].[NoticeGetPagedData]    Script Date: 06/13/2014 20:44:51 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[NoticeGetPagedData]@pageIndex int = 1,--页码@pageSize int =10,--页容量

ASP.NET操作ORACLE数据库之模糊查询

ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 1 //连接Oracle数据库的连接字符串 2 string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) 3 (HOST=localhost) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TestDB)))

分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

         分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse+jdbc+mysql的小程序. 连接的数据库名称为db_database11,属性如下: 1.创建名为com.pmf.bean的包,包中是名为Product的类,用于封装商品信息. 全部代码如下: package com.pmf.bean; /** * 商品 * */