摘要:
我们书写执行一个功能的函数时,经常需要在其中写入与功能不是直接相关但很有必要的代 码,如日志记录,信息发送,安全和事务支持等,这些枝节性代码虽然是必要的,但它会带 来以下麻烦:枝节性代码游离在功能性代码之外,它下是函数的目的,这是对OO是一种破坏枝节性代码会造成功能性代码对其它类的依赖,加深类之间的... 阅读全文
摘要:
Spring中定义了5中不同的事务隔离级别:1. ISOLATION_DEFAULT(一般情况下使用这种配置既可) ; 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。 2. ISOLATION_READ_UNCOMMITTED (未提交)... 阅读全文
摘要:
read uncommited (读未提交) 最低级别,可读取未提交事物的数据,这会导致脏读,比如:某时刻会话a修改了一个数据,但还未提交,此时会话b,读取了该数据,这是,会话a回滚了事物,这就导致数据出现了不一致状态,这就是脏读!read commited (提交读) 避免了脏读,但会导致不... 阅读全文
摘要:
spring事物的传播属性(7种)REQUIRED(默认) 业务方法需要在一个容器里运行。如果方法运行时,已经处在一个事务中,那么加入到这个事务,否则自己新建一个新的事务。 存在事物,则使用当前事物;没有事物,创建新的事物NOT_SUPPORTED 声明方法不需要事务。如果方法没有关... 阅读全文
摘要:
连接查询通过连接运算符可以实现多个表查询。语法 FROM join_table join_type join_table [ON (join_condition)] 其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。join_... 阅读全文
摘要:
alias (别名) 在 SQL 上的用处。最常用到的别名有两种: 栏位别名及表格别名。简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中,每当我们有营业额总合时,栏位名都是 SUM(Sales)。 虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复... 阅读全文
摘要:
如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过 $1,500。在这个情况下,我们不能使用WHERE的指令。那要怎么办呢?很幸运地,SQL 有提供一个HAVING的指令,而我们就可以用这个指令来达到这个目标。HAVING子句通常是在一个 SQL 句子的最后。一个含有H... 阅读全文
摘要:
分组查询语法为:SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1";示范:算出每一间店 (Store_Name) 的营业额 (Sales)SELECT Store_Name, SUM(Sales) FROM Store_Information GRO... 阅读全文
摘要:
常用函数AVG (平均)COUNT (计数)MAX (最大值)MIN (最小值)SUM (总合)运用函数的语法是:SELECT "函数名"("栏位名") FROM "表格名";举例来说,若我们要由我们的示范表格中求出 Sales 栏位的总合,SELECT SUM(Sales) FROM Store_... 阅读全文
摘要:
经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending) 或是由大往小 (descending)。在这种情况下,我们就可以运用ORDER BY这个指令来达到我们的目的。ORDER BY的语法如下:SELECT "栏位名" FROM "表格名" [WHERE "条件"]OR... 阅读全文
摘要:
LIKE是另一个在WHERE子句中会用到的指令。基本上,LIKE能让我们依据一个套式 (pattern) 来找出我们要的资料。相对来说,在运用IN的时候,我们完全地知道我们需要的条件;在运用BETWEEN的时候,我们则是列出一个范围。LIKE的语法如下:SELECT "栏位名" FROM "表格名"... 阅读全文
摘要:
WHERE指令可以被用来由表格中有条件地选取资料。 这个条件可能是简单的 (像上一页的例子),也可能是复杂的。复杂条件是由二或多个简单条件透过AND或是OR的连接而成。一个 SQL 语句中可以有无限多个简单条件的存在。复杂条件的语法如下:SELECT "栏位名" FROM "表格名" WHERE "... 阅读全文
摘要:
查询表时不一定每一次都要将表格内的资料都完全抓出。在许多时候,我们会需要选择性地抓资料。就我们的例子来说,我们可能只要抓出营业额超过 $1,000 的资料。要做到这一点,需要用到WHERE这个指令。这个指令的语法如下:SELECT "栏位名" FROM "表格名" WHERE "条件";例如:若要由... 阅读全文
摘要:
DISTINCT 找出表格内的不同资料的值语法SELECT DISTINCT "栏位名" FROM "表格名";例如:要在以下的表格,Store_Information,找出所有不同的店名时,SELECT DISTINCT Store_Name FROM Store_Information;结果:... 阅读全文
摘要:
SELECT 将资料从数据库中的表格内选出指令SELECT "栏位名" FROM "表格名";例如:查询Store_Information表中所有的的Store_NameSELECT Store_Name FROM Store_Information; 阅读全文
摘要:
BETWEEN从一个范围 (range) 内抓出数据库中的值。BETWEEN这个子句的语法如下:SELECT "栏位名" FROM " 表格名" WHERE "栏位名" BETWEEN '值一' AND '值二';这将选出栏位值包含在值一及值二之间的每一笔资料。举例来说,若我们要由Store_Inf... 阅读全文
摘要:
IN、NOT IN这个指令可以让我们依照一或数个不连续 (discrete) 的值的限制之内抓出数据库中的值in和not inin:存在与...里面的not in:不存在与..里面的其指令语法SELECT "栏位名" FROM "表格名" WHERE "栏位名" IN ('值一', '值二', ..... 阅读全文
摘要:
当程序需要第k+1层中的某个数据时d,会首先在它的缓存k层中寻找。如果数据刚好在k层中,就称为缓存命中(cache hit)。 终端用户访问加速节点时,如果该节点有缓存住了要被访问的数据时就叫做命中,如果没有的话需要回原服务器取,就是没有命中。 取数据的过程与用户访问是同步进行的,所以即使是... 阅读全文
摘要:
In和Exists的区别 这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如IN快,因为这时候IN可能更多的使用结合算法。Select * from tableA Where e... 阅读全文
摘要:
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或FalseEXISTS 指定一个子查询,检测行的存在。实例:(一). 在子查询中使用 NULL 仍然返回结果集select * from TableIn where exists(select nu... 阅读全文