程序博客网
程序博客网
热点推荐
推荐博客
编程语言
数据库
前端
程序博客网
>
淘宝心选怎么没有了
MySQL组合查询(转)
来源:互联网 发布:
淘宝心选怎么没有了
编辑:程序博客网 时间:2024/06/07 12:21
有的时候我们进行MySQL查询时的查找条可能并不在同一张表中,或者外部数据库中,这个时候我们就要用到组合查询。最近刚刚开始学习这个,慢慢发现 MySQL的功能真的很强大。除了组合查询,复合语句外,还有存储过程。存储过程看起来功能好像更强大,比MySQL函数要灵活的多。网上找了一些资料对自已算是一种入门学习吧。
组合查询
组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的
表格才能够得到结果的。
Select *
FROM table1,table2
Where table1.colum1=table2.column1
说明:
1.查询两个表格中其中 column1 值相同的资料。
2.当然两个表格相互比较的栏位,其资料形态必须相同。
3.一个复杂的查询其动用到的表格可能会很多个。
整合性的查询:
Select COUNT (*)
FROM table_name
Where column_name = xxx
说明:
查询符合条件的资料共有几笔。
Select SUM(column1)
FROM table_name
说明:
1.计算出总和,所选的栏位必须是可数的数字形态。
2.除此以外还有 AVG() 是计算平均、MAX()、MIN()计算最大最小值的整合性查询。
Select column1,AVG(column2)
FROM table_name
GROUP BY column1
HAVING AVG(column2) 〉 xxx
说明:
1.GROUP BY: 以column1 为一组计算 column2 的平均值必须和 AVG、SUM等整合性查询的关键字
一起使用。
2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制。
复合性的查询
Select *
FROM table_name1
Where EXISTS (
Select *
FROM table_name2
Where conditions )
说明:
1.Where 的 conditions 可以是另外一个的 query。
2.EXISTS 在此是指存在与否。
Select *
FROM table_name1
Where column1 IN (
Select column1
FROM table_name2
Where conditions )
说明:
1. IN 後面接的是一个集合,表示column1 存在集合里面。
2. Select 出来的资料形态必须符合 column1。
其他查询
Select *
FROM table_name1
Where column1 LIKE ’x%’
说明:LIKE 必须和後面的’x%’ 相呼应表示以 x为开头的字串。
Select *
FROM table_name1
Where column1 IN (’xxx’,’yyy’,..)
说明:IN 後面接的是一个集合,表示column1 存在集合里面。
Select *
FROM table_name1
Where column1 BETWEEN xx AND yy
说明:BETWEEN 表示 column1 的值介於 xx 和 yy 之间。
《SQL语句的基本语法》
Select语句的完整语法为:
Select[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[Where…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]
[WITH OWNERACCESS OPTION]
说明:
用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。
1 FROM子句
FROM子句指定了Select语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。
例:下列SQL语句返回所有有定单的客户:
Select orderID,Customer.customerID
FROM orders Customers
Where orders.CustomerID=Customers.CustomeersID
2 ALL、DISTINCT、DISTINCTROW、TOP谓词
(1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。
例:Select ALL FirstName,LastName
FROM Employees
(2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。
(3) DISTINCTROW 如果有重复的记录,只返回一个
(4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比)
例:返回5%定货额最大的定单
Select TOP 5 PERCENT*
FROM [ order Details]
orDER BY UnitPrice*Quantity*(1-Discount) DESC
3 用 AS 子句为字段取别名
如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。
例:返回FirstName字段取别名为NickName
Select FirstName AS NickName ,LastName ,City
FROM Employees
例:返回新的一列显示库存价值
Select ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS valueInStock
FROM Products
Where 子句指定查询条件
1 比较运算符
比较运算符 含义
= 等于
〉 大于
〈 小于
〉= 大于等于
〈= 小于等于
〈〉 不等于
!〉 不大于
!〈 不小于
例:返回96年1月的定单
Select orderID, CustomerID, orderDate
FROM orders
Where orderDate〉#1/1/96# AND orderDate〈#1/30/96#
注意:
Mcirosoft JET SQL 中,日期用‘#’定界。日期也可以用Datevalue()函数来代替。在比较字符型的数据时,要加上单引号’’,尾空格在比较中被忽略。
例:
Where orderDate〉#96-1-1#
也可以表示为:
Where orderDate〉Datevalue(‘1/1/96’)
使用 NOT 表达式求反。
例:查看96年1月1日以后的定单
Where Not orderDate〈=#1/1/96#
2 范围(BETWEEN 和 NOT BETWEEN)
BETWEEN …AND…运算符指定了要搜索的一个闭区间。
例:返回96年1月到96年2月的定单。
Where orderDate Between #1/1/96# And #2/1/96#
3 列表(IN ,NOT IN)
IN 运算符用来匹配列表中的任何一个值。IN子句可以代替用OR子句连接的一连串的条件。
例:要找出住在 London、Paris或Berlin的所有客户
Select CustomerID, CompanyName, ContactName, City
FROM Customers
Where City In(‘London’,’ Paris’,’ Berlin’)
4 模式匹配(LIKE)
LIKE运算符检验一个包含字符串数据的字段值是否匹配一指定模式。
LIKE运算符里使用的通配符
通配符 含义
? 任何一个单一的字符
* 任意长度的字符
# 0~9之间的单一数字
[字符列表] 在字符列表里的任一值
[!字符列表] 不在字符列表里的任一值
- 指定字符范围,两边的值分别为其上下限
例:返回邮政编码在(171)555-0000到(171)555-9999之间的客户
Select CustomerID ,CompanyName,City,Phone
FROM Customers
Where Phone Like ‘(171)555-####’
LIKE运算符的一些样式及含义
样式 含义 不符合
LIKE ‘A*’ A后跟任意长度的字符 Bc,c255
LIKE’5
’ 5*5 555
LIKE’5?5’ 5与5之间有任意一个字符 55,5wer5
LIKE’5##5’ 5235,5005 5kd5,5346
LIKE’[a-z]’ a-z间的任意一个字符 5,%
LIKE’[!0-9]’ 非0-9间的任意一个字符 0,1
LIKE’[[]’ 1,*
这里就列这么多吧,源文中还有一些别的东西:
http://blog.sina.com.cn/s/blog_59e7ac3c01012goh.html
阅读全文
0
0
MySQL组合查询(转)
MySQL组合查询(Union)
MYSQL学习笔记(十三)组合查询
Mysql组合查询例子
[MYSQL -17]组合查询
MySQL组合查询
MySQL--操作简记(联结表,组合查询(UNION))
MySQL基础(4)——子查询(嵌套查询)、联结表、组合查询
MySQL必知必会-14MySQL组合查询
组合查询(一)
组合查询(二)
组合查询(Union)
Mysql必知必会(笔记)【分组函数,子查询, 联结,高级联结,组合查询】
《MySQL必知必会学习笔记》组合查询
MYSQL必知必会读书笔记 第十七章 组合查询
MySQL组合查询与全文搜索.md
mysql组合查询(union和union all)
MySQL数据库——组合查询
Objective-C的Http请求(转)
不使用cocos2d库从texturepacker打包资源得到UIImage
UIImage类中的常用拉伸方法(转)
iOS下使用md5码(转)
mac os系统下搭建cocos2d-x的android开发环境(整理)
MySQL组合查询(转)
Richardson外推加速技术(含Romberg详细分析)的Matlab实现
VB,VBS,ASP都没有反余弦函数,解决方法:自己写
MySQL中的safe mode
erlang列表速构
erlang数字转字符串
Android 网络工具类NetworkUtils使用
反应社会心里的两个小故事
dota2模型导入到3dsmax(转)
淘宝心选怎么没有了
原创
粉丝
点击
热门IT博客
向量的斜对称矩阵
it chocolate
唐山百度网盘seo
macbook windows f1
php 设置时间
炉石盒子 mac怎么用
windows程序设计第6版
吴蚊米是怎样的人 知乎
java项目怎么重新编译
js md5
海尔区域网络专员
剑灵时崎狂三捏脸数据
latex矩阵方括号
淘宝买iphone6s
微淘互粉软件
linux将服务开机启动
淘宝淘宝联盟怎么用法
淘宝如何撤销快递投诉
租女朋友的软件
unity3d的web控件
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
新生儿夜啼怎么办
小儿2岁夜啼怎么办
奶块挖到岩浆层怎么办
小腿浮肿怎么办
孕妇浮肿怎么办
脸浮肿怎么办
腿浮肿怎么办
上腹部胀气怎么办
肚子好大怎么办
婚后不孕怎么办
注册表打不开怎么办
steam永久封号怎么办
行会成员封号怎么办
zlib.dll丢失怎么办
小孩经常流鼻血怎么办
宝宝罗圈腿怎么办
网页被篡改怎么办
邮币卡退市散户怎么办
宝宝积食鸡内金怎么办
米里面有黑虫怎么办
公众号重名怎么办
市政抢险车怎么办
小狗翻肠子怎么办
宝宝皮肤痒老抓怎么办
宝宝皮肤瘙痒怎么办
宝宝皮肤痒怎么办
余额宝限额怎么办
iphone7屏幕失灵怎么办
ipad屏幕闪烁怎么办
ipad丢失离线怎么办
忘记邮箱账号怎么办
忘记邮箱密码怎么办
百度账号不存在怎么办
忘记51账号怎么办
炒糖色发苦怎么办
炒糖色苦了怎么办
唱歌老是跑调怎么办
唱歌跑调怎么办软件
小宝宝睡觉鼻塞怎么办
游戏不支持win10怎么办
win10安装失败怎么办