SQL学习
来源:互联网 发布:手机站点seo 编辑:程序博客网 时间:2024/04/26 04:45
连接总结:内连接要两个表所选的字段匹配上才行,任何一边不匹配都不行
左连接 就是把左边表全列出来,有匹配的就写上,没有匹配的空着
同理 有连接就是把右边的全列出来,有匹配的就写上,没有匹配的空着
全连接就是左右两个表都要列出来,有的写上,没有的空着
内连接加上左右连接正好是全连接
SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name
SQL COUNT(*) 语法
COUNT(*) 函数返回表中的记录数:
SELECT COUNT(*) FROM table_name
SQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name
实例 4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECT Company, OrderNumber FROM OrdersORDER BY Company DESC, OrderNumber ASC
结果:
Company OrderNumber W3School2356W3School6953IBM3532Apple4698注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
原始的表 (用在例子中的):
"Persons" 表:
Id_P LastName FirstName Address City 1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing"Orders" 表:
Id_O OrderNo Id_P 177895324467833224561424562153476465全连接(FULL JOIN)实例
现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsFULL JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName结果集:
LastName FirstName OrderNo AdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678BushGeorge 34764
右连接(RIGHT JOIN)实例
现在,我们希望列出所有的定单,以及定购它们的人 - 如果有的话。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsRIGHT JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName结果集:
LastName FirstName OrderNo AdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678 34764RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。
左连接(LEFT JOIN)实例
现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsLEFT JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName结果集:
LastName FirstName OrderNo AdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678BushGeorgeLEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
内连接(INNER JOIN)实例
现在,我们希望列出所有人的定购。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName结果集:
LastName FirstName OrderNo AdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行。
- 【SQL】SQL学习备注
- sql学习
- sql学习
- SQL学习
- sql学习
- sql学习
- 《 sql。。。。》学习。。。
- sql学习
- SQL学习
- sql学习
- SQL学习
- sql 学习
- SQL学习
- SQL学习
- SQL学习
- sql学习
- SQL学习
- sql学习
- 人生忠告十条
- 成年人必看的六个故事教你学会做人
- C++枚举
- 马云给员工的超牛演讲
- 烫烫烫烫烫的来源
- SQL学习
- 李开复建议在校大学生应该读的书 当你走进图书馆不知道看什么书的时候,就看看这个吧,很有帮助的!
- 学习sqlite - 笔记
- 马云给正在奋斗的人的精典语句
- 从Hadoop框架与MapReduce模式中谈海量数据处理(淘宝技术架构)
- 做人的基本原则(看完终身受益)
- Android GIS 在环保行业应用
- 浏览器及web widget
- Audio manager