Head First SQL 第六章
来源:互联网 发布:淘宝店铺简介怎么写? 编辑:程序博客网 时间:2024/05/01 20:13
首先文章用影片分类的方式讲述了好分类和坏分类对于数据录入和查询的影响。
仅仅用 UPDATE 更新数据可能比较慢,这里要用一种超大型 UPDATE 方法。
那就是 CASE
UPDATE my_tableSET new_column =CASE WHEN column1 = somevalue1THEN newvalue1 WHEN column2 = somevalue2THEN newvalue2 ELSE newvalue3END;
比如上面,要更新 new_column列的数据,可以用这种方法。
=======================================================================================
这里如果符合多个分类则取第一个分类执行。这就是问题所在。
所以我们应该在 WHEN 语句中加入 AND
例如:
WHEN cartoon = 'T' AND rating = 'G' THEN 'family'
然后我们需要一种方法来组织一下 SELECT 出的数据。比如选出A 开头分类为family 的影片 P251
SELECT title, category FROM movie_table WHERE title LIKE 'A%' AND category = 'Family';
如果影片超级多,这是很麻烦的,所以我们要使用 ORDER BY 这个命令。
SELECT 的时候,根据某个列的排序(ORDER)所返回的查询结果:
SELECT title, categoryFROM movie_tableWHEREtitle Like 'A%'ANDcategory = 'family'ORDER BY title;
SELECT title, categoryFROM movie_tableWHEREcategory = 'family'ORDER BY title;去掉 'A%'就行了。
使用ORDER查询:
结果:
======================================================================================================
牢记:先后
NULL>数字>大写字母>小写字母
多列排序查询,优先第一列,第一列完了再排序第二列:
SELECT title, category, purchasedFROM movie_tableORDER BY category, purchased;
当然更多列也是可以的。
==================================================================
如果我们要反着来查询,比如先查Z开头的,那么在列名称后面加上关键字 DESC
DESC在 ORDER 里面不是 description 而是 descending(降序)
相应的,默认顺序是ASC(可以不写):P261
SELECT title, purchasedFROM movie_tableORDER BY title ASC, purchased DESC;
===============================================================
使用 SUM 为我们加总和。
我们要计算名为 Nicole 的人的饼干销量。
SELECT SUM(sales)FROM cookie_salesWHERE first_name = 'Nicole';
当然如果这里有很多人,一个一个算还是麻烦了点。
这里用 GROUP BY 来分组加总:
SELECT first_name, SUM(sales)FROM cookie_salesGROUP BY first_nameORDER BY SUM(sales)DESC;
AVG搭配GROUP BY计算平均数:
SELECT first_name, AVG(sales)FROM cookie_salesGROUP BY first_name;
MIN和MAX:
SELECT first_name, MAX(sales)
FROM cookie_sales
GROUP BY first_name;
SELECT first_name, MIN(sales)
FROM cookie_sales
GROUP BY first_name;
COUNT返回指定列中的行数,这里是销售天数:
SELECT COUNT(sale_date)FROM cookie_sales;这里实际上返回的是有记录的天数,应该和GROUP BY联合用:
SELECT first_name, COUNT(sale_data)FROM cookie_salesGROUP BY first_name;
===================================================================================
DISTINCT 选出与众不同的值:
SELECT DISTINCT sale_dateFROM cookie_salesORDER BY sale_date;
配合COUNT 返回销售天数最多的人:
SELECT COUNT(DISTINCT sale_date)FROM cookie_sales;
================================================================
如果结果很多,但是我们只想查询前一部分,那么使用LIMIT来限制数量:
SELECT first_name, SUM(sales)FROM cookie_salesGROUP BY first_nameORDER BY SUM(sales)DESCLIMIT 2;
这里只有两行。
如果我们只要第二名呢?
SELECT first_name, SUM(sales)FROM cookie_salesGROUP BY first_nameORDER BY SUM(sales)DESCLIMIT 1,1;
这里1,1指的是从第二条开始,只显示1条记录。注意所有编号是从0开始的,意思是0指的是第一条。
- Head First SQL 第六章
- head first python 第六章
- Head First SQL 第二章
- Head First SQL 第三章
- Head First SQL 第四章
- Head First SQL 第五章
- Head First SQL 第七章
- Head First SQL 第八章
- Head First SQL 第九章
- Head First SQL 第十章
- 【阅读】《Head First Javascript》第六章——函数
- 【Head First Python-第六章-定制数据对象】学习笔记
- Head first HTML&CSS ---[学习笔记第六章]
- 【PMP】Head First PMP 学习笔记 第六章 时间管理
- Python类的定义使用 《Head First Python》第六章
- 命令模式-《Head First 设计模式》第六章
- Java Head First 第六章 认识java的API
- Head First Python代码实践(第六章)有注释
- 图片噪声去除
- java利用poi添加多张图片到word
- 通话记录不现实位置信息
- Struts2-ResultType-3-动态结果集(dynamic_Results)
- python读conf配置文件--ConfigParser
- Head First SQL 第六章
- Java 求整型数组的逆序数
- POJ 1083 Moving Tables
- ConcurrentHashMap解析
- C# NPOI Excel固定模板写入数据
- 关于开源的XML Parser expat的介绍和使用心得
- Python到底能干什么
- Java经典算法(一)
- C++问题,对象包含与成员函数不兼容的类型限定符