惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
V
V2EX
B
Blog RSS Feed
有赞技术团队
有赞技术团队
博客园 - Franky
美团技术团队
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
云风的 BLOG
云风的 BLOG
L
LangChain Blog
GbyAI
GbyAI
The Cloudflare Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
博客园 - 【当耐特】
The Register - Security
The Register - Security
大猫的无限游戏
大猫的无限游戏
D
Docker
Vercel News
Vercel News
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
博客园_首页
A
About on SuperTechFans
J
Java Code Geeks
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
Recent Announcements
Recent Announcements
G
Google Developers Blog
小众软件
小众软件
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
F
Full Disclosure
Jina AI
Jina AI
H
Help Net Security

博客园 - 王跃军

成本安全硬件(二):RFID on PN532 之WINDOWS 环境应用 C# 委托的三种调用示例(同步调用 异步调用 异步回调) 之 FUNC 版 vb中使用Xtreme Command Bars ActiveX Control 的IPrintView接口绘制图形_后记 vb中使用Xtreme Command Bars ActiveX Control 的IPrintView接口绘制图形 android开发专题系列-OPENGL android开发专题系列-Android开发指南 android开发专题系列-一个简单的游戏的设计 android网站汇集 android开发资料(DEVELOPER.ANDROID.COM/SDK)WORD版 可也extJs相媲美的js 控件集 DHTMLX 对ASP.NET 安全方面的一些理解 ANDROID 开发资源网站列表(2008年1月14日) [转]林西:企业信息化规划方法 [收藏]DIV+CSS布局积累 [转]可用表格样式表 DataSet 加载XML 数据效果 纯ajax式,多用户选择示例 asp.net全局异常处理 也nhibernate会遇到问题,还好找到原因了
[转]常用SQL 深入实例理解
王跃军 · 2007-04-23 · via 博客园 - 王跃军
 

1. UPDATE语句中使用子查询同时改变多行的值

UPDATE employee SET department=’Training’

WHERE department <> ‘Training’

AND sales < (SELECT AVG(sales) FROM employee

WHERE department <> ‘Training’)

2. 使用SELECT语句将一个表中的行插入另一表

INSERT INTO report

(customer_id,salesman_id,exchangemoney)

SELECT

customers. customer_id,salesman. salesman_id,money. exchangemoney

FROM

Customers,salesman,money

WHERE customers. customer_id=43 AND salesman_id=41

3. 快速删除表中所有的行

TRUNCATE TABLE employee

4. 使用UPDATE语句根据另一表中的值改变表的值

UPDATE employee SET status=’Key Manager’

WHERE employee_id IN

(SELECT salesperson_id FROM customer

 WHERE customer_number IN

   (SELECT customer_id FROM orders

GROUP BY customer_ID

HAVING SUM(order_total)>1000000))

5. 事务处理模型

BEGIN TRANSACTION

INSERT INTO trans_table VALUES (2,’sun’)

DELETE FROM trans_table WHERE row_number=4

DELETE FROM trans_table WHERE row_number=2

INSERT INTO trans_table VALUES (3,’fun’)

ROLLBACK

6. 多表查询

customer [cust_ID,name,address,salesrep]

employee [salesrep_ID,name]

SELECT cust_ID,customer.name,address,employee.name

FROM customer,employee

WHERE salesrep=salesrep_ID AND employee.name=’Alan’

7. UNION一次返回多个查询结果

SELECT ‘ABC’ AS ‘vendor’,item_no,item_desc,price FROM abc_product

UNION

SELECT ‘DEF’ AS ‘vendor’,item_no,item_desc,price FROM def_product

UNION

SELECT ‘GHI’ AS ‘vendor’,item_no,item_desc,price FROM ghi_product

ORDER BY item_no

列的数量相同,并且类型对应,不要内部使用ORDER BY

如果使用UNION ALL,则返回结果不会消除重复行

8. INTERSECT EXCEPTUNION的区别

UNION:通过将两个表中的行合并,并清除重复的行产生结果表

INTERSECT:创建的是一个表与另一个表重复的行组成的结果表

EXCEPT:创建的是一个表与另一个表非重复的行组成的结果表

9.      使用INNOT IN判式选择项

UPDATE invoice SET sales_tax=invoice_total*0.07

WHERE ship_to_state IN (‘NV’,’CA’,’UT’,’TX’)

判断一行中是否有一个列值处于在一系列值中,类似于用OR

10.              找出某列空值的行

SELECT * FROM employee WHERE manager=NULL   错误

SELECT * FROM employee WHERE manager IS NULL 正确

11.              理解WHERE子句中的ALL

SELECT * FROM titles

WHERE

(SELECT SUM(qty_sold) FROM sales WHERE sales.isbn=title.isbn)

ALL (SELECT SUM(qty_sold) FROM sales WHERE sales.isbn=title.isbn)

12.              理解WHERE子句中的SOMEANY

SELECT * FROM employee WHERE

sales>SOME (SELECT sales FROM employee WHERE office<>1)

只要有一个满足条件就可以

13.              理解WHERE子句中的UNIQUE

SELECT emp_ID,name FROM employee

WHERE UNIQUE

(SELECT salesperson FROM invoices WHERE invoice_date>=’2005-2-2’ AND invoice_date<=’2005-12-3’)

UNIQUE表示要么没有记录,要么只有一条记录。。。

14.              理解组合查询和GROUP BY

SELECT SUM(invoice_total) AS ‘Total Sales’, AVG(invoice_total) AS ‘Average Invoice’

FROM invoices

GROUP BY cust_ID

ORDER BY ‘Total Sales’

不加GROUP BY cust_ID是统计全部的总值和平均值,GROUP BY cust_ID是统计每个顾客帐号的总值和平均值

15.              理解WHERE子句和HAVING子句之间的差别

HAVING 应该紧跟在GROUP BY子句之后

SELECT state,SUM(income)  FROM customer

WHERE state IN (‘CA’,’NV’,’LA’)

GROUP BY state

HAVING SUM(income)<10000

16.              使用INNER JOIN选择一个表与另一表的行相关的所有行

SELECT * FROM table_a INNER JOIN table_b

ON(table_a.name= table_b.name)

Select * from table_a , table_b

Where table_a.name= table_b.name