SQL必知必会
文章平均质量分 83
SQL 必知必会,必读经典书籍。
Roki Zhang
select before delete
展开
-
IDEA连接SqlServer数据库
IDEA连接SqlServer数据库原创 2024-04-03 16:52:59 · 504 阅读 · 0 评论 -
VS2019_连接 SqlServer 数据库
VS2019_连接 SqlServer 数据库原创 2024-02-29 17:44:55 · 658 阅读 · 0 评论 -
【SQL 必知必会】- 常用SQL语句速查
【SQL 必知必会】- 常用SQL语句速查原创 2023-04-23 11:18:39 · 434 阅读 · 0 评论 -
【SQL 必知必会】- 第一课 了解SQL
SQL(发音为字母S-Q-L 或sequel)是Structured Query Language(结构化查询语言)的缩写。SQL 是一种专门用来与数据库沟通的语言。与其他语言(如英语或Java、C、PHP 这样的编程语言)不一样,SQL中只有很少的词,这是有意而为的。设计SQL 的目的是很好地完成一项任务——提供一种从数据库中读写数据的简单有效的方法。原创 2023-04-03 17:24:16 · 421 阅读 · 0 评论 -
【SQL 必知必会】- 第二课 检索数据
请注意,SQL 语句不区分大小写,因此SELECT 与select 是相同的。不过,一定要认识到虽然SQL 是不区分大小写的,但是表名、列名和值可能有所不同(这有赖于具体的DBMS 及其如何配置)。乍一看,看不出来很大的区别,但是这两个 SQL 的查询结果是完全不同的,错误的 SQL 语句少则无法执行,多则可能会产生脏数据(在insert、update等的时候)。在自己未知该表具由哪些列,或者忘记具体列名的情况下可以获取提示,一般也可使用“别名 + 点”的方式获取提示,只要是DBMS一般都会有此功能。原创 2023-04-03 17:27:00 · 69 阅读 · 0 评论 -
【SQL 必知必会】- 第三课 排序检索数据
例如,你指定SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。换句话说,对于上述例子中的输出,仅在多个行具有相同的prod_price 值时才对产品按prod_name 进行排序。例如,如果要显示雇员名单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。下面的代码检索3 个列,并按其中两个列对结果进行排序——首先按价格,然后按名称排序。重要的是理解在按多个列排序时,排序的顺序完全按规定进行。原创 2023-04-03 17:31:15 · 543 阅读 · 0 评论 -
【SQL 必知必会】- 第四课 过滤数据
因为未知(unknown)有特殊的含义,数据库不知道它们是否匹配,所以在进行匹配过滤或非匹配过滤时,不会返回这些结果。此外,如果在客户端过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费。为此,SQL 的SELECT 语句为客户端应用检索出超过实际所需的数据,然后客户端代码对返回数据进行循环,提取出需要的行。例如,BETWEEN 操作符可用来检索价格在5 美元和10 美元之间的所有产品,或在指定的开始日期和结束日期之间的所有日期。在创建表时,表设计人员可以指定其中的列能否不包含值。原创 2023-04-03 17:32:28 · 572 阅读 · 0 评论 -
【SQL 必知必会】- 第五课 高级数据过滤
事实上,许多DBMS 在OR WHERE 子句的第一个条件得到满足的情况下,就不再计算第二个条件了(在第一个条件满足时,不管第二个条件是否满足,相应的行都将被检索出来)。例如,在与IN 操作符联合使用时,NOT 可以非常简单地找出与条件列表不匹配的行。任何时候使用具有AND 和OR 操作符的WHERE 子句,都应该使用圆括号明确地分组操作符。因为NOT 从不单独使用(它总是与其他操作符一起使用),所以它的语法与其他操作符有所不同。在实际的工作中,更加倾向于 的写法,逻辑更加的清晰明了,也更加简洁。原创 2023-04-03 17:31:28 · 551 阅读 · 0 评论 -
【SQL 必知必会】- 第六课 用通配符进行过滤
通配符本身实际上是SQL 的WHERE 子句中有特殊含义的字符,SQL 支持几种通配符。LIKE指示DBMS,后跟的搜索模式利用通配符匹配而不是简单的相等匹配进行比较。但这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。根据DBMS 的不同及其配置,搜索可以是区分大小写的。下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。通配符可在搜索模式中的任意位置使用,并且可以使用多个通配符。原创 2023-04-03 17:32:53 · 548 阅读 · 0 评论 -
【SQL 必知必会】- 第七课 创建计算字段
因此,别名最常见的使用是将多个单词的列名重命名为一个单词的名字。大多数DBMS 都支持RTRIM()(正如刚才所见,它去掉字符串右边的空格)、LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)。基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。别名有时也称为导出列(derived column),不管怎么叫,它们所代表的是相同的东西。在很多DBMS 中,AS 关键字是可选的,不过最好使用它,这被视为一条最佳实践。原创 2023-04-03 17:34:03 · 553 阅读 · 0 评论 -
【SQL 必知必会】- 第八课 使用函数处理数据
虽然所有类型的函数一般都可以在每个DBMS 中使用,但各个函数的名称和语法可能极其不同。如果你决定使用函数,应该保证做好代码注释,以便以后你(或其他人)能确切地知道所编写的SQL 代码的含义。应用程序一般不使用日期和时间的存储格式,因此日期和时间函数总是用来读取、统计和处理这些值。遗憾的是,它们很不一致,可移植性最差。Oracle的 to_char()函数用来提取日期的成分,to_number()用来将提取出的成分转换为数值。具有讽刺意味的是,在主要DBMS 的函数中,数值函数是最一致、最统一的函数。原创 2023-04-03 17:37:47 · 488 阅读 · 0 评论 -
【SQL 必知必会】- 第九课 汇总数据
虽然MAX()一般用来找出最大的数值或日期值,但许多(并非所有)DBMS 允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。虽然MIN()一般用来找出最小的数值或日期值,但许多(并非所有)DBMS 允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。如果指定列名,则COUNT()函数会忽略指定列的值为空的行,但如果COUNT()函数中用的是星号(*),则不忽略。MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。原创 2023-04-03 17:38:58 · 354 阅读 · 0 评论 -
【SQL 必知必会】- 第十课 分组数据
为此,可增加一条WHERE 子句,过滤出过去12 个月内下过的订单,然后再增加HAVING 子句过滤出具有两个以上订单的分组。在第4 课和第5 课中,我们学习了WHERE 子句的条件(包括通配符条件和带多个操作符的子句)。在某些情形下,我们需要满足一定条件,同时又要结果个数>1的数据,或者或需要个数≥2的数据,这种情况下使用 having 就很合适。简单来说就是,GROUP BY会对数据进行分组,但输出的结果不一定会按照升序/降序的方式输出,想要实现升序/降序,请配合使用 Order by子句。原创 2023-04-06 17:15:22 · 367 阅读 · 0 评论 -
【SQL 必知必会】- 第十一课 使用子查询
子查询中的WHERE 子句与前面使用的WHERE 子句稍有不同,因为它使用了完全限定列名, 而不只是列名( cust_id )。然后,这两个值以IN 操作符要求的逗号分隔的格式传递给外部查询的WHERE 子句。如上所示,把子查询分解为多行并进行适当的缩进,能极大地简化子查询的使用。还可以使用表别名的形式为栏位进行区分,例如给表1别名 a,给表2别名 b,使用 a.字段 = b.字段来区分字段名称。对于能嵌套的子查询的数目没有限制,SQL 还允许创建子查询(subquery),即嵌套在其他查询中的查询。原创 2023-04-07 11:15:48 · 417 阅读 · 0 评论 -
【SQL 必知必会】- 第十二课 联结表
要记住,在一条SELECT 语句中联结几个表时,相应的关系是在运行中构造的。在联结两个表时,实际要做的是将第一个表中的每一行与第二个表中的每一行配对。联结是利用SQL 的SELECT 能执行的最重要的操作,很好地理解联结及其语法是学习SQL 的极为重要的部分。联结的表越多,性能下降越厉害。笛卡尔积是非常不好的 SQL 结果,这会极大的消耗资源,并且无法筛选出合适的数据。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。使用特殊的语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行。原创 2023-04-10 14:14:54 · 362 阅读 · 0 评论 -
【SQL 必知必会】- 第十三课 创建高级联结
虽然这是完全合法的,但对Customers 的引用具有歧义性,因为DBMS 不知道你引用的是哪个Customers 表。标准的联结(前一课中介绍的内联结)返回所有数据,相同的列甚至多次出现。自然联结要求你只能选择那些唯一的列,一般通过对一个表使用通配符(SELECT *),而对其他表的列使用明确的子集来完成。事实上,我们迄今为止建立的每个内联结都是自然联结,很可能永远都不会用到不是自然联结的内联结。许多联结将一个表中的行与另一个表中的行相关联,但有时候需要包含没有关联行的那些行。原创 2023-04-11 14:02:43 · 402 阅读 · 0 评论 -
【SQL 必知必会】- 第十四课 组合查询
对于结果集,不存在用一种方式排序一部分,而又用另一种方式排序另一部分的情况,原创 2023-04-12 11:08:27 · 397 阅读 · 0 评论 -
【SQL 必知必会】- 第十五课 插入数据
这一课介绍如何利用SQL 的INSERT 语句将数据插入表中。原创 2023-04-13 10:17:55 · 2125 阅读 · 0 评论 -
【SQL 必知必会】- 第十六课 更新和删除数据
这一课介绍如何利用UPDATE 和DELETE 语句进一步操作表数据。 更新(修改)表中的数据,可以使用UPDATE 语句。有两种使用UPDATE的方式: 在使用UPDATE 时一定要细心。因为稍不注意,就会更新表中的所有行。 使用UPDATE 语句非常容易,甚至可以说太容易了。基本的UPDATE 语句由三部分组成,分别是: UPDATE 语句以WHERE 子句结束,它告诉DBMS 更新哪一行。没有WHERE子句,DBMS 将会更新表中的所有行,原创 2023-04-14 13:19:07 · 662 阅读 · 1 评论 -
【SQL 必知必会】- 第十七课 创建和操纵表
这一课讲授创建、更改和删除表的基本知识。原创 2023-04-17 15:29:59 · 623 阅读 · 0 评论 -
【SQL 必知必会】- 第十八课 使用视图
这一课将介绍什么是视图,它们怎样工作,何时使用它们;还将讲述如何利用视图简化前几课中执行的某些SQL 操作。原创 2023-04-18 15:55:55 · 686 阅读 · 0 评论 -
【SQL 必知必会】- 第十九课 使用存储过程
本课的内容主要是讲述【存储过程】,即常说的 procedure,在实际的工作中,国内的很多公司都会刻意避开这个方式(至少我了解的北京、上海、杭州等公司是如此的),并且本课的内容也是极其的枯燥,procedure 的语法我这都没有介绍,可以说很复杂,并且不那么容易理解。如果你同时会好几种语言,那么你一定感觉出来了,不同的语言之间存在细微的差异,甚至一个功能,每个语言的实现方式 / 名称都不同,语言的混杂会让你后续的工作 / 学习愈加艰难。建议不是工作需要,这节课可以跳过,或者只做了解。原创 2023-04-19 15:16:34 · 174 阅读 · 0 评论 -
【SQL 必知必会】- 第二十课 管理事务处理
事务是非常重要的一个概念,在工作中,几乎处处都能见到它的身影,对于保持数据的一致性起到了至关重要的作用,一定要对事务有非常深刻的了解,并学会应用,这会使你受益颇深。否则因为不是一个事务而导致出现的各种问题,会让你体会到什么叫做真正的痛苦,对于稍微大点的公司而言,几百上千张表是非常寻常的事情。原创 2023-04-20 13:50:42 · 170 阅读 · 0 评论 -
【SQL 必知必会】- 第二一课 使用游标
本课讲授了什么是游标,为什么使用游标。原创 2023-04-21 09:20:31 · 437 阅读 · 0 评论 -
【SQL 必知必会】- 第二二课 高级SQL 特性
本课讲授如何使用SQL 的一些高级特性。约束是实施引用完整性的重要部分,索引可改善数据检索的性能,触发器可以用来执行运行前后的处理,安全选项可用来管理数据访问。原创 2023-04-23 11:17:12 · 508 阅读 · 0 评论