随笔分类 - SQL
摘要:主要介绍SQL涉及的几个高级数据处理特性:约束、索引和触发器 22.1 约束 约束(constraint):管理如何插入或处理数据库数据的规则。 表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效。 22.1.1 主键约束 主键用来保证一列中的值是唯一的,而且永不改动。 主键涉及的术语:
阅读全文
摘要:21.1 游标 在存储过程中使用游标可以对一个结果集进行移动遍历。 游标主要用于交互式应用,其中用户需要对数据集中的任意行进行浏览和修改。 21.2 使用游标 使用游标的四个步骤: 在声明游标后,可根据需要频繁地打开和关闭游标。在游标打开后, 可根据需要频繁地执行取操作。 21.2.1 创建游标 游
阅读全文
摘要:20.1 事物处理 事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行。 利用事务处理,可以保证一组操作不会中途停止,它们或者作为整体执行,或者完全不执行(除非明确指示)。如果没有错误发生,整组语句提交给(写到)
阅读全文
摘要:19.1 存储过程 存储过程可以看成是对一系列 SQL 操作的批处理。 使用存储过程的好处: 代码封装,保证了一定的安全性; 代码复用; 由于是预先编译,因此具有很高的性能。 包含 in、out 和 inout 三种参数。 19.2 执行存储过程 存储过程的执行比编写要频繁的多。MySQL称存储过程
阅读全文
摘要:18.1 视图 视图是虚拟的表,本身不包含数据,也就不能对其进行索引操作。 对视图的操作和对普通表的操作一样。 视图具有如下好处: 简化复杂的 SQL 操作,比如复杂的连接; 只使用实际表的一部分数据; 通过只给用户访问视图的权限,保证数据的安全性; 更改数据格式和表示。 18.2 使用视图 视图用
阅读全文
摘要:17.1 创建表 为了用程序创建表,可使用SQL的CREATE TABLE语句。 必须给出下列信息: 新表的名字,在关键字CREATE TABLE之后给出; 表列的名字和定义,用逗号分隔。 17.1.1 使用NULL值 每个表列或者是NULL列,或者是NOT NULL列,这种状态在创建时由 17.1
阅读全文
摘要:16.1 更新数据 基本的UPDATE语句由3部分组成,分别是: 要更新的表; 列名和它们的新值; 确定要更新行的过滤条件。 基本语法结构如下: SET命令用来将新值赋给被更新的列。 在更新多个列时,只需要使用单个SET命令,每个“列=值”对之间用逗号分隔(最后一列之后不用逗号)。 为了删除某个列的
阅读全文
摘要:哇,前面一直在大篇幅了解SELECT,毫无疑问它是SQL圈的大佬了。但是还有其它三种常见的SQL语句要学习,今天就聊一聊 INSERT插入语句。 插入有几种方式: 插入完整的行; 插入行的一部分; 插入多行; 插入某些查询的结果。 15.1 插入完整的行 其实,列名可以省略,但尽量不要这样做,因为可
阅读全文
摘要:14.1 组合查询 SQL允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并( union) 或复合查询(compound query)。 有两种基本情况,其中需要使用组合查询: 在单个查询中从不同的表返回类似结构的数据; 对单个表执行多个查询,按单个查
阅读全文
摘要:13.1 使用表别名 在之前的例子中,我们用的都是用的列别名,SQL还允许给表名起别名。 13.2 使用不同类型的联结 我们在上一章使用的只是称为内部联结或等值联结( equijoin) 的简单联结,现在来看3种其他联结,它们分别是自联结、自然联结和外部联结。 13.2.1 自联结 这里的自联结通俗
阅读全文
摘要:12.1 使用联结 联结是一种机制,用来在一条SELECT语句中关联表,因此称之为联结。使用特殊的语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行。 12.2 创建联结 创建联结的方法是:指定要联结的所有表以及关联它们的方式。 看这样一个例子: 输出的结果是: SELECT语句所指定的
阅读全文
摘要:11.1 利用子查询进行过滤 我们用一个例子来展示一下利用子查询进行过滤 现在有3个数据表:orders表 ,orderitems表 和customers表 。订单分别存储在前两个表中。 对于包含订单号、客户ID、 订单日期的每个订单, 在orders表中存储一行。 各订单的物品存储在相关的orde
阅读全文
摘要:10.1 创建分组 分组是在SELECT语句的GROUP BY子句中建立的。 例如: 输出结果是这个样子: 上面的SELECT语句指定了两个列, vend_id包含产品供应商的ID, num_prods为计算字段(用COUNT(*)函数建立)。 GROUP BY子句指示MySQL按vend_id排序
阅读全文
摘要:9.1 聚集函数 SQL聚集函数 下面说明一下各个函数的使用 9.1.1 AVG()函数 AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。 AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。 下面的例子使用AVG()返回products表中所有产品的平均价格:
阅读全文
摘要:与其他大多数计算机语言一样, SQL支持利用函数来处理数据。函数 一般是在数据上执行的,它给数据的转换和处理提供了方便。 8.1 文本处理函数 常见的文本处理函数 表中的SOUNDEX需要做进一步的解释。 SOUNDEX是一个将任何文 本串转换为描述其语音表示的字母数字模式的算法。 SOUNDEX考
阅读全文
摘要:7.1 计算字段 直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化 7.2 拼接字段 解决办法是把两个列拼接起来。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。 上述SELECT返回一个名字叫做vend_tit
阅读全文
摘要:6.1 LIKE操作符 通配符搜索只能用于文本字段(串)。 6.1.1 百分号(%)通配符 表示任意字段出现任意次数 例如: 表示检索以Fish开头的词。 表示匹配任何位置包含文本 been bag 的值。 表示检索以F开头以y结尾的词。 注意:通配符%不可以匹配NULL。 6.1.2 下划线( _
阅读全文
摘要:5.1 组合WHERE子句 ADD操作符 如果要增加多个过滤条件,每个条件之间都要加AND关键字。 OR操作符 用来表示检索任一给定条件的行 ADD和OR结合 ADD在求值的过程中优先级比OR更高。 当SQL看到上述WHERE子句时,会优先处理AND操作符。它的理解为:由BRS01制造的价格为10美
阅读全文
摘要:4.1 使用WHERE子句 从Products表中检索两列,返回prod_pride值为3.49的行。 注意:在同时使用ORDER BY 和 WHERE 子句时,应该让ORDER BY 位于WHERE 之后。 4.2 WHERE子句操作符 如何使用引号? 在WHERE子句中的条件,用单引号来限制字符
阅读全文
摘要:3.1 排序数据 使用ORDER BY 子句 注意:使用ORDER BY 子句时,应该保证它是SELECT语句中的最后一条子句。 3.2 按多个列排序 对于上面的例子,只有在多个行具有相同的prod_price值时,才对产品按prod_name排序。 3.3 按列位置排序 表示先按SELECT清单中
阅读全文
浙公网安备 33010602011771号