task2基础查询与排序

2.1编写一条SQL语句,从 product (商品) 表中选取出“登记日期(regist_date )在2009年4月28日之后”的商品,查询结果要包含 product nameregist_date 两列。
答:


2.2请说出对product 表执行如下3条SELECT语句时的返回结果。
e64a9adaa0dfb3dbc2fe18f54dd36e6
3a693916ba2f77aef653e15ffcf0d2b
2.3:

2.4:

2.5:
SQL语句中,输入的语句顺序不对应该是先where后group by
sum只适用于数值型数据
b970b27c177340a5f010b6561c0d2b6 b970b27c177340a5f010b6561c0d2b6
2.6

2.7:
笔记:在学习第二章中,我认识到了select语句是用来选取必要数据的意思,通过该语句我可以查询到我想要查询的列名,where是条件语句,在用select查询中加入where(我需要的条件)可以选取指定的数据而不是所有的数据。例如:select name from product where name = 123;即在product表中查询name 是一个123的name数据。*代表所有列,汉字用双引号括起来,distinct可以删除重复行, 在语句中可以代指别名 如product——price as price 在语句中可以使用加减乘除来进行运算,表示否定可以加not 。and如果不加括号会比or优先运算,and是并且,or则是或者,如果条件比较复杂可以使用真值表,即在真(true)或假的(false)其中之一的值。and两侧都是真会显示真,除此之外都是假的,or是只要有一个不是假的就是真的,两侧都是假的才返回假,not就是假的是真的,真的是假的。null的真值既不是真也不是假。这种除真假以外的是不确定(unknown)。SQL以外的语言只是用真假两种真值,与通常逻辑运算成为二值逻辑,只有SQL中的逻辑称为三值逻辑。

聚合函数用于汇总,如:count: 计算行数 sum: 求和 avg: 求平均值 max: 求最大值 min:求取最小值。
max和min可以用于非数值类型的数据
使用聚会函数通过select语句进行,例如:select count() from product;
使用聚合函数删除重复着仍使用distinct,如:select count(distinct product——name) from product
count函数的结果根据参数不同而不同,count(
)会得到包含null的函数,count<列名>则不会。
聚会函数排除null的存在,count(*)是例外。
sum avg函数只适用于数值型数据,max和min几乎用于所有数据类型。
在count函数参数中使用distinct可以计算值的种类
group by可以用于分类汇总,将数据进行分类汇总处理
group by书写规则严格,按照select——from——where——group by进行书写,前三项进行数据的筛选,最后对筛选的数据进行处理。
where只能指定记录(行的)条件不能用来指定组,可以在group by后面加入having字句。
having字句用于对分组进行过滤,可以使用数字、聚合函数和GROUP BY中指定的列名(聚合键)
having用法和where类似,但是where是对列不能对于组,而having则是可以记录组的条件。
having的使用在group by后面。
order by是指在SQL中进行特定的排序,默认升序排列,降序是desc
select <列名> from<表> order by<排序一>
在order by 中可以使用别名,但是group by 不可以,因为其在使用having中运行顺序不同,其顺序为:from-where-group by-having-select-order by
group by在select前面所以不能知道别名的存在。
order by 在排序中存在null,其在升序中位于首列,降序中在末位,如果有其他的排序则需要进行特殊的处理,将null排在末行,not null升序排列,在数字或日期中可以在排序前加(-)minus 得到反向排序
对于字符型或字符型数字可以使用is null或isnull()进行运算,也可以使用coalesce函数。coalesce()asc
将null排首行,notnull倒序排列,数字和日期同上原理加入-(minus)字符型或字符型数字使用 is not null 或isnull()进行运算,同样可以使用coalesce函数,即coalesce()desc
在写语句时会注意到要细心一点,经常会因为速度快不细心导致打错的情况,也要多看题目细心一些不能少看或者漏看。在看教程的过程中,要动手操作更加加深语句的印象,在自己输入的时候会更熟练一些。今天的学习让我了解到更多的语句使用,比如查询条件不仅有where还有having,但是having针对组,where针对列。group by是对数据进行分类汇总处理,having在其后面进行筛选条件。order by是对数据进行排序,可以按照指定的顺序排序添加不同的函数也可以得到不一样的结果,例如增加is null可以将null排在末行,not null升序排列,还有coalesce函数也可以实现排序的需求。

浙ICP备19012682号