- 博客(11)
- 收藏
- 关注
原创 SQL必知必会(第四版)-11. 使用子查询
从上面三张表的结构可以看出,在OrderItems表中,产品ID对应订单号;在Customers表中,客户ID对应客户名。3. Customers,含有客户ID,客户名,客户地址,客户的城市,客户所在州,客户zip,客户所在国家,客户的联系人,客户email等客户信息。orders是一个计算字段,它是由圆括号中的子查询建立的。在此例中,该子查询执行了5次,因为检索出了5个顾客。它指定表名和列名(Orders.cust_id和Customers.cust_id)。:嵌套在其他查询中的查询。
2023-11-03 23:29:11
56
原创 SQL必知必会(第四版)-10. 分组数据(GROUP BY,HAVING)
这是因为,“GROUP BY vend_id, prod_price”分组会列出不同的prod_price,在这种情况下既满足具有两个以上产品和产品价格≥4,就需要prod_price正好相等。可以发现,第二个条件不是针对供应商的(是针对价格的),而我们的分组对象是供应商,所以第二个条件用WHERE实现,第一个条件用HAVING实现。(即,GROUP BY子句中出现的聚集函数,必须先在SELECT子句中定义好,有别名;可以看到,WHERE子句在这里不起作用,因为过滤是基于分组聚集值,而不是特定行的值。
2023-11-03 21:10:40
80
原创 SQL必知必会(第四版)-9. 汇总数据
虽然MAX()一般用来找出最大的数值或日期值,但许多(并非所有)DBMS允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,MAX()返回按该列排序后的最后一行。AVG()也可以用来确定特定列或行的平均值。AVG()函数只用于单个列,为了获得多个列的平均值,必须使用多个AVG()函数。DISTINCT不能用于COUNT(*),但指定列名,可以用于COUNT()。MAX()返回指定列中的最大值。下面的例子使用AVG()函数返回特定供应商提供。AVG()函数忽略列值为NULL的行。
2023-11-03 10:39:55
74
原创 SQL必知必会(第四版)-8.使用数据处理函数
因此,如果你决定使用函数,应该保证做好代码注释,以便以后你(或其他人)能确切地知道所编写的SQL代码的含义。与几乎所有DBMS都等同地支持SQL语句(如SELECT)不同,每一个DBMS都有特定的函数。可以看到,与SQL语句不一样,SQL函数不是可移植的。LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)日期和时间采用相应的数据类型存储在表中,每种DBMS都有自己的特殊形式。在主要DBMS的函数中,数值函数是最一致、最统一的函数。:所编写的代码可以在多个系统上运行。
2023-11-02 22:11:38
45
原创 SQL必知必会(第四版)-7.创建计算字段
与前几课介绍的列不同,计算字段并不实际存在于数据库表中。同时对拼接起来的字段进行命名,为vend_title,任何客户端应用都可以按名称引用这个列,就像它是一个实际的表列一样。:基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。种做法是合法的,但不建议这么去做。因此,别名最常见的使用是将多个单词的列名重命名为一个单词的名字。
2023-11-02 21:17:26
37
原创 SQL必知必会(第四版)-6.用通配符进行过滤(LIKE, %, _)
例如,如果某列有50个字符,而存储的文本为Fish bean bag toy(17个字符),则为填满该列需要在文本后附加33个空格。虽然最终的结果是相同的,但应该对此术语有所了解,以免在SQL文献或手册中遇到此术语时不知所云。3. 通配符也可以出现在搜索模式的中间,如:根据邮件地址的一部分来查找电子邮件,例如WHERE email LIKE b%@forta.com。根据DBMS的不同及其配置,搜索可以是区分大小写的。简单的解决办法是给搜索模式再增加一个%号:'F%y%'还匹配y之后的字符(或空格)。
2023-11-02 17:42:45
118
原创 SQL必知必会(第四版)-5.高级数据过滤(WHERE + AND, OR, IN, NOT)
当SQL看到上述WHERE子句时,它理解为:由供应商BRS01制造的价格为10美元以上的所有产品,以及由供应商DLL01制造的所有产品,而不管其价格如何。注意:任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。使用多个WHERE子句,这些子句有两种使用方式,即以AND子句或OR子句的方式使用。WHERE子句中的NOT操作符有且只有一个功能,那就是否定其后所跟的任何条件。WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。而实际上,它的输出如下。
2023-11-02 15:46:10
360
原创 SQL必知必会(第四版)-4.过滤数据(WHERE)
只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。WHERE子句在表名(FROM子句)之后给出,如下所示:在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。
2023-11-02 14:49:33
56
原创 SQL必知必会(第四版)-3.排序检索数据(ORDER BY)
你必须请求数据库管理员的帮助。子句(clause):SQL语句由子句构成,有些子句是必需的,有些则是可选的。ORDER BY 2,3表示先按prod_price,再按prod_name进行排序。prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序。下面的代码检索3个列,并按其中两个列对结果进行排序——首先按价格,然后按名称排序。为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
2023-11-02 10:15:17
54
原创 SQL必知必会(第四版)-2.检索数据(SELECT)
关键字(keyword):作为SQL组成部分的保留字。关键字不能用作表或列的名字。SELECT就是一个关键字。
2023-11-01 21:06:10
54
原创 SQL必知必会(第四版)-1.了解SQL
SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库沟通的语言。SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以学习此语言使你几乎能与所有数据库打交道。SQL简单易学。它的语句全都是由有很强描述性的英语单词组成,而且这些单词的数目不多。SQL虽然看上去很简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。SQL的扩展。
2023-11-01 17:36:46
58
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人