提交 cc4ce4c2 编写于 作者: W wizardforcel

2019-10-26 20:54:19

上级 34d06af4
......@@ -78,7 +78,7 @@ mysql> SELECT @name;
## 运算符
_ 运算符 _ 用于构建表达式。 SQL 运算符与数学运算符非常相似。 有两种运算符。 二元和一元。 二元运算符使用两个操作数,一元运算符使用一个。 一个运算符可以有一个或两个操作数。 _ 操作数 _ 是运算符的输入(参数)之一。
运算符 用于构建表达式。 SQL 运算符与数学运算符非常相似。 有两种运算符。 二元和一元。 二元运算符使用两个操作数,一元运算符使用一个。 一个运算符可以有一个或两个操作数。 操作数 是运算符的输入(参数)之一。
我们有几种类型的运算符:
......@@ -292,7 +292,7 @@ mysql> SELECT 3 < 4, 3 <> 5, 4 <= 4, 5 != 5;
小数对人类是自然的。 二进制数是计算机固有的。 二进制,八进制,十进制或十六进制符号仅是相同数字的符号。 按位运算符使用二进制数的位。 我们有二进制逻辑运算符和移位运算符。
_ 按位,运算符 _ 在两个数字之间进行逐位比较。 仅当操作数中的两个对应位均为 1 时,位位置的结果才为 1。
按位,运算符 在两个数字之间进行逐位比较。 仅当操作数中的两个对应位均为 1 时,位位置的结果才为 1。
```
......@@ -314,7 +314,7 @@ mysql> SELECT 6 & 3, 3 & 6;
```
_ 按位或运算符 _ 在两个数字之间进行逐位比较。 如果操作数中的任何对应位为 1,则位位置的结果为 1。
按位或运算符 在两个数字之间进行逐位比较。 如果操作数中的任何对应位为 1,则位位置的结果为 1。
```
......@@ -336,7 +336,7 @@ mysql> SELECT 6 | 3, 3 | 6;
```
_ 按位移位运算符 _ 向右或向左移位。
按位移位运算符 向右或向左移位。
```
number << n : multiply number 2 to the nth power
......@@ -529,7 +529,7 @@ mysql> SELECT * FROM Cars WHERE Cost BETWEEN 20000 AND 55000;
## 优先顺序
_ 运算符优先级 _ 告诉我们首先评估哪个运算符。 优先级对于避免表达式中的歧义是必要的。
运算符优先级 告诉我们首先评估哪个运算符。 优先级对于避免表达式中的歧义是必要的。
以下表达式 28 或 40 的结果是什么?
......@@ -561,7 +561,7 @@ mysql> SELECT 3+5*5, (3+5)*5;
## 关联性
有时,优先级不能令人满意地确定表达式的结果。 还有另一个规则称为 _ 关联性 _。 运算符的关联性确定 _ 优先级与 _ 相同的运算符的评估顺序。__
有时,优先级不能令人满意地确定表达式的结果。 还有另一个规则称为 关联性。 运算符的关联性确定 优先级与 相同的运算符的评估顺序。
```
9 / 3 * 3
......
......@@ -18,13 +18,13 @@ SQLAlchemy 具有三种处理数据库数据的方式:
## SQLAlchemy 组件
SQLAlchemy 由几个组件组成。 _ 引擎 _ 是任何 SQLAlchemy 应用程序的起点。 该引擎是数据库及其 API 的抽象。 它与连接池和 Dialect 组件一起使用,以将 SQL 语句从 SQLAlchemy 传递到数据库。 使用`create_engine()`功能创建引擎。 它可以用于直接与数据库进行交互,也可以传递给 Session 对象以使用对象关系映射器。
SQLAlchemy 由几个组件组成。 引擎 是任何 SQLAlchemy 应用程序的起点。 该引擎是数据库及其 API 的抽象。 它与连接池和 Dialect 组件一起使用,以将 SQL 语句从 SQLAlchemy 传递到数据库。 使用`create_engine()`功能创建引擎。 它可以用于直接与数据库进行交互,也可以传递给 Session 对象以使用对象关系映射器。
_ 方言 _ 是 SQLAlchemy 用于与各种类型的 DBAPI 实现和数据库进行通信的系统。 所有方言都要求安装适当的 DBAPI 驱动程序。 SQLAlchemy 具有许多流行数据库系统的方言,包括 Firebird,Informix,Microsoft SQL Server,MySQL,Oracle,PostgreSQL,SQLite 或 Sybase。 从提供的连接字符串创建方言。
方言 是 SQLAlchemy 用于与各种类型的 DBAPI 实现和数据库进行通信的系统。 所有方言都要求安装适当的 DBAPI 驱动程序。 SQLAlchemy 具有许多流行数据库系统的方言,包括 Firebird,Informix,Microsoft SQL Server,MySQL,Oracle,PostgreSQL,SQLite 或 Sybase。 从提供的连接字符串创建方言。
_MetaData_ 由描述表和其他模式级对象的 Python 对象组成。 可以通过使用诸如 Table,Column 或 ForeignKey 之类的结构明确命名各种组件及其属性来表示数据库元数据。 SQLAlchemy 可以使用称为反射的过程轻松生成元数据。
在 ORM 内部,持久性操作的主要接口是 _ 会话 _。 会话建立与数据库的所有对话,并代表我们在其生命周期中已加载或与其关联的所有对象的容器。 它提供了获取查询对象的入口点,该对象使用 Session 对象的当前数据库连接将查询发送到数据库,将结果行填充到对象中,然后将这些对象存储在 Session 中。
在 ORM 内部,持久性操作的主要接口是 会话。 会话建立与数据库的所有对话,并代表我们在其生命周期中已加载或与其关联的所有对象的容器。 它提供了获取查询对象的入口点,该对象使用 Session 对象的当前数据库连接将查询发送到数据库,将结果行填充到对象中,然后将这些对象存储在 Session 中。
## 装置
......
......@@ -186,7 +186,7 @@ Authors
## 检查器
_ 检查器 _ 执行低级数据库模式检查。 使用`inspect()`方法创建一个检查器。
检查器 执行低级数据库模式检查。 使用`inspect()`方法创建一个检查器。
`schema_inspector.py`
......
......@@ -8,19 +8,19 @@
使用 Python 数据库 API 进行编程可为开发人员提供直接访问数据库的全部功能。 这种直接访问也有一些缺点。 它们在大型项目中尤其引人注目。 我们将两种语言混合在一起:SQL 和 Python。 结果是它使 SQL 语句更难测试和维护。 在典型的 Web 应用程序中,除了 Python 和 SQL(或任何其他服务器端编程语言)外,我们还具有 HTML,CSS,JavaScript。 Python 和 SQL 捆绑在一起使项目变得更加复杂。 在编程理论中,我们尝试将业务逻辑与数据访问以及表示分离。 因此,需要一种将 Python 代码与 SQL 代码分开的解决方案。
另一个问题是我们所谓的 _ 对象关系阻抗不匹配 _。 当关系数据库管理系统被以面向对象的编程语言或风格编写的程序使用时,通常会遇到一系列概念和技术难题。 在 Python 中,我们处理放置在对象内的数据。 在数据库系统中,数据存储在表中。 程序员需要在两种处理数据的方式之间进行转换。 这与我们应用程序的核心问题无关。
另一个问题是我们所谓的 对象关系阻抗不匹配。 当关系数据库管理系统被以面向对象的编程语言或风格编写的程序使用时,通常会遇到一系列概念和技术难题。 在 Python 中,我们处理放置在对象内的数据。 在数据库系统中,数据存储在表中。 程序员需要在两种处理数据的方式之间进行转换。 这与我们应用程序的核心问题无关。
解决方案之一是 _ 对象关系映射 _。 ORM 工具解决了上述问题。 有几种用于 Python 语言的 ORM 工具。 SQLAlchemy 是使用最广泛的方法之一。
解决方案之一是 对象关系映射。 ORM 工具解决了上述问题。 有几种用于 Python 语言的 ORM 工具。 SQLAlchemy 是使用最广泛的方法之一。
## SQLAlchemy ORM
SQLAlchemy 对象关系映射器将(a)用户定义的 Python 类映射到数据库表,(b)将表行映射到实例对象,并且(c)将列映射到实例属性。 SQLAlchemy ORM 建立在 SQLAlchemy 表达式语言之上。
使用 ORM 时,我们首先配置将要使用的数据库表。 然后,我们定义将要映射到它们的类。 现代 SQLAlchemy 使用 _ 声明式 _ 系统来执行这些任务。 将创建一个 _ 声明性基类 _,该基类维护类和表的目录。 使用`declarative_base()`函数创建一个声明性基类。
使用 ORM 时,我们首先配置将要使用的数据库表。 然后,我们定义将要映射到它们的类。 现代 SQLAlchemy 使用 声明式 系统来执行这些任务。 将创建一个 声明性基类,该基类维护类和表的目录。 使用`declarative_base()`函数创建一个声明性基类。
## 会话
完成配置后,我们创建一个会话。 _ 会话 _ 是 SQLAlchemy ORM 中持久性操作的主要接口。 它建立并维护我们的程序与数据库之间的所有对话。
完成配置后,我们创建一个会话。 会话 是 SQLAlchemy ORM 中持久性操作的主要接口。 它建立并维护我们的程序与数据库之间的所有对话。
## 建立表
......
......@@ -8,7 +8,7 @@
MongoDB 是 NoSQL 跨平台的面向文档的数据库。 它是可用的最受欢迎的数据库之一。 MongoDB 由 MongoDB Inc.开发,并作为免费和开源软件发布。
MongoDB 中的 _ 记录 _ 是一个文档,它是由字段和值对组成的数据结构。 MongoDB _ 文档 _ 与 JSON 对象相似。 字段的值可以包括其他文档,数组和文档数组。 MongoDB 将文档存储在 _ 集合 _ 中。 集合类似于关系数据库中的表,文档类似于行。
MongoDB 中的 记录 是一个文档,它是由字段和值对组成的数据结构。 MongoDB 文档 与 JSON 对象相似。 字段的值可以包括其他文档,数组和文档数组。 MongoDB 将文档存储在 集合 中。 集合类似于关系数据库中的表,文档类似于行。
## 安装 MongoDB
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/db/jdbctemplate/](http://zetcode.com/db/jdbctemplate/)
Spring JdbcTemplate 教程展示了如何使用 Spring 的 JdbcTemplate 处理数据。 我们是 MySQL 数据库。 我们创建使用 JdbcTemplate 的经典 Spring 和 Spring Boot 应用程序。 ZetCode 拥有用于 MySQL Java 的完整 _ 电子书 _,其中包含扩展的 JdbcTemplate 章节: [MySQL Java 编程电子书](/ebooks/mysqljava/)
Spring JdbcTemplate 教程展示了如何使用 Spring 的 JdbcTemplate 处理数据。 我们是 MySQL 数据库。 我们创建使用 JdbcTemplate 的经典 Spring 和 Spring Boot 应用程序。 ZetCode 拥有用于 MySQL Java 的完整 电子书,其中包含扩展的 JdbcTemplate 章节: [MySQL Java 编程电子书](/ebooks/mysqljava/)
[Tweet](https://twitter.com/share)
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/db/jdbi/](http://zetcode.com/db/jdbi/)
在本教程中,我们展示了如何使用 JDBI 处理数据。 我们选择 MySQL 作为数据库。 ZetCode 拥有用于 MySQL Java 的完整 _ 电子书 _,其中包含 JDBI 章节: [MySQL Java 编程电子书](/ebooks/mysqljava/)
在本教程中,我们展示了如何使用 JDBI 处理数据。 我们选择 MySQL 作为数据库。 ZetCode 拥有用于 MySQL Java 的完整 电子书,其中包含 JDBI 章节: [MySQL Java 编程电子书](/ebooks/mysqljava/)
[Tweet](https://twitter.com/share)
......
......@@ -6,7 +6,7 @@
[Tweet](https://twitter.com/share)
ZetCode 拥有用于 MySQL Java 的完整 _ 电子书 _,其中包含 MyBatis 章节: [MySQL Java 编程电子书](/ebooks/mysqljava/)
ZetCode 拥有用于 MySQL Java 的完整 电子书,其中包含 MyBatis 章节: [MySQL Java 编程电子书](/ebooks/mysqljava/)
## MyBatis
......
......@@ -4,7 +4,7 @@
在 MySQL 教程的这一部分中,我们将提到 MySQL 中的子查询。
_ 子查询 _ 是查询中的查询。 也称为内部查询或嵌套查询。 子查询可在允许表达式的任何地方使用。 它是一个用括号括起来的查询表达式。 子查询可以与`SELECT``INSERT``UPDATE``DELETE`语句一起使用。
子查询 是查询中的查询。 也称为内部查询或嵌套查询。 子查询可在允许表达式的任何地方使用。 它是一个用括号括起来的查询表达式。 子查询可以与`SELECT``INSERT``UPDATE``DELETE`语句一起使用。
有多种方法可以执行 SQL 任务。 许多子查询可以用 SQL 连接代替。 SQL 连接通常更快。
......
......@@ -4,7 +4,7 @@
在 MySQL 教程的这一部分中,我们将处理约束。
_ 约束 _ 放在列或表上。 它们限制了可以插入表中的数据。
约束 放在列或表上。 它们限制了可以插入表中的数据。
我们有以下限制:
......
......@@ -43,7 +43,7 @@ mysql> SELECT * FROM Reservations;
## 内连接
内连接是最常见的连接类型。 这也是默认的连接。 内连接仅从数据库表中选择具有匹配值的记录。 我们有 _ 内接头 _ 的三种类型:`INNER JOIN``NATURAL INNER JOIN``CROSS INNER JOIN``INNER`关键字可以省略。
内连接是最常见的连接类型。 这也是默认的连接。 内连接仅从数据库表中选择具有匹配值的记录。 我们有 内接头 的三种类型:`INNER JOIN``NATURAL INNER JOIN``CROSS INNER JOIN``INNER`关键字可以省略。
### 内连接
......@@ -117,7 +117,7 @@ SELECT Name, Day FROM Customers, Reservations;
## 外连接
_ 外部连接 _ 不需要两个连接表中的每个记录都具有匹配的记录。 外部连接有三种类型。 左外部连接,右外部连接和完全外部连接。 在创建教程时,MySQL 不支持完全外部连接。
外部连接 不需要两个连接表中的每个记录都具有匹配的记录。 外部连接有三种类型。 左外部连接,右外部连接和完全外部连接。 在创建教程时,MySQL 不支持完全外部连接。
如前所述,内连接是最常见的连接。 外部连接对于查找孤立记录可能很有用。 如果一个人没有预订,是顾客吗? 如果我们无法与客户匹配,预订是否有效?
......
......@@ -6,7 +6,7 @@
## 查看定义
_ 视图 _ 是来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
视图 是来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
视图是伪表。 它是一个存储查询,看起来像一个表。 它可以像表一样被引用。
......
......@@ -6,11 +6,11 @@
## 事务的定义
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
MySQL 支持多种存储引擎。 InnoDB 完全符合 ACID。 ACID 代表原子性,一致性,隔离性和耐久性。 可靠的事务必须支持所有这四个属性。
事务内的操作必须是 _ 原子 _。 这意味着所有操作都将成功或失败。 这是全有或全无的规则。 _ 一致性 _ 属性可确保事务完成后数据库处于一致状态。 数据有效,没有半完成的记录。 例如,没有没有付款记录的客户,或者没有客户的付款记录。 _ 隔离 _ 是其他操作无法访问在尚未完成的事务期间修改的数据的要求。 在并发事务的情况下会出现隔离问题。 如果没有隔离,则数据可能最终处于不一致状态。 _ 持久性 _ 是数据库系统针对任何类型的系统故障恢复已提交事务更新的能力。
事务内的操作必须是 原子。 这意味着所有操作都将成功或失败。 这是全有或全无的规则。 一致性 属性可确保事务完成后数据库处于一致状态。 数据有效,没有半完成的记录。 例如,没有没有付款记录的客户,或者没有客户的付款记录。 隔离 是其他操作无法访问在尚未完成的事务期间修改的数据的要求。 在并发事务的情况下会出现隔离问题。 如果没有隔离,则数据可能最终处于不一致状态。 持久性 是数据库系统针对任何类型的系统故障恢复已提交事务更新的能力。
## 隔离等级
......@@ -23,9 +23,9 @@ MySQL 提供了四个级别的事务隔离:
* 阅读已提交
* 阅读未提交
_ 可序列化的 _ 隔离级别中,所有事务都以完全隔离的方式发生。 所有事务都一个接一个地执行。 在 _ 中,可重复读取 _ 隔离级别语句无法读取已被其他事务修改但尚未提交的数据。 在当前事务完成之前,没有其他事务可以修改当前事务已读取的数据。 这是 InnoDB 的默认隔离级别。 在 _ 中,读取的已提交 _ 隔离级别的语句无法读取已被其他事务修改但未提交的数据。 语句等待直到被其他事务写锁定的数据行被解锁,然后才能获取自己的锁。 这样可以防止他们读取脏数据。 在 _ 读取未提交的 _ 隔离级别中,语句可以读取已被其他事务修改但尚未提交的行。
可序列化的 隔离级别中,所有事务都以完全隔离的方式发生。 所有事务都一个接一个地执行。 在 中,可重复读取 隔离级别语句无法读取已被其他事务修改但尚未提交的数据。 在当前事务完成之前,没有其他事务可以修改当前事务已读取的数据。 这是 InnoDB 的默认隔离级别。 在 中,读取的已提交 隔离级别的语句无法读取已被其他事务修改但未提交的数据。 语句等待直到被其他事务写锁定的数据行被解锁,然后才能获取自己的锁。 这样可以防止他们读取脏数据。 在 读取未提交的 隔离级别中,语句可以读取已被其他事务修改但尚未提交的行。
当事务未完全分离时,可能会遇到幻影读取,不可重复读取和脏读取的问题。 当事务重新执行返回返回满足搜索条件的行的集合的查询,并发现满足条件的行的集合由于另一个最近提交的事务而发生更改时,会发生 _ 幻像读取 _。 _ 不可重复读取 _ 是在事务重新读取其先前已读取的数据并发现该数据已被另一个事务修改后发生的。 自从初次阅读以来就实现了。 当事务从已被另一个事务修改但尚未提交的行中读取数据时,会发生 _ 脏读 _
当事务未完全分离时,可能会遇到幻影读取,不可重复读取和脏读取的问题。 当事务重新执行返回返回满足搜索条件的行的集合的查询,并发现满足条件的行的集合由于另一个最近提交的事务而发生更改时,会发生 幻像读取。 不可重复读取 是在事务重新读取其先前已读取的数据并发现该数据已被另一个事务修改后发生的。 自从初次阅读以来就实现了。 当事务从已被另一个事务修改但尚未提交的行中读取数据时,会发生 脏读
下表显示了所有隔离级别以及它们遇到的可能的问题。
......
......@@ -713,7 +713,7 @@ fout.write(data)
## MySQLdb 事务支持
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
对于支持事务的数据库,在创建游标时,Python 接口会静默启动事务。 `commit()`方法将提交使用该游标进行的更新,而`rollback()`方法将丢弃这些更新。 每种方法都会启动一个新事务。
......
......@@ -19,7 +19,7 @@ cpan[2]> install DBD::mysql
## MySQL 数据库
_MySQL_ 是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是非常流行的 _LAMP_ 平台的一部分,该平台由 Linux,Apache,MySQL 和 PHP 组成。 目前,MySQL 由 Oracle 拥有。 MySQL 数据库在最重要的 OS 平台上可用。 它运行在 BSD UNIX,LINUX,窗,S 或 Mac OS。 维基百科和 YouTube 使用 MySQL。 这些站点每天管理数百万个查询。 MySQL 有两个版本:MySQL 服务器系统和 MySQL 嵌入式系统。
_MySQL是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是非常流行的LAMP_ 平台的一部分,该平台由 Linux,Apache,MySQL 和 PHP 组成。 目前,MySQL 由 Oracle 拥有。 MySQL 数据库在最重要的 OS 平台上可用。 它运行在 BSD UNIX,LINUX,窗,S 或 Mac OS。 维基百科和 YouTube 使用 MySQL。 这些站点每天管理数百万个查询。 MySQL 有两个版本:MySQL 服务器系统和 MySQL 嵌入式系统。
MySQL 随附`mysql`命令行实用程序。 它可用于对数据库发出 SQL 命令。 现在,我们将使用`mysql`命令行工具创建一个新数据库。
......@@ -103,7 +103,7 @@ Bye
## Perl DBI
Perl _DBI_ (数据库接口)是用于 Perl 编程语言的数据库访问模块。 它定义了一组提供标准数据库接口的方法,变量和约定。 DBI 还负责驱动程序的动态加载,错误检查和处理,提供方法的默认实现以及许多其他非数据库特定的职责。 DBI 将方法调用分派到适当的数据库驱动程序。 _DBD_ (数据库驱动程序)是一个 Perl 模块,它转换特定数据库引擎的 DBI 方法。 数据库驱动程序由数据库供应商提供。
Perl _DBI(数据库接口)是用于 Perl 编程语言的数据库访问模块。 它定义了一组提供标准数据库接口的方法,变量和约定。 DBI 还负责驱动程序的动态加载,错误检查和处理,提供方法的默认实现以及许多其他非数据库特定的职责。 DBI 将方法调用分派到适当的数据库驱动程序。DBD_ (数据库驱动程序)是一个 Perl 模块,它转换特定数据库引擎的 DBI 方法。 数据库驱动程序由数据库供应商提供。
```
#!/usr/bin/perl
......
......@@ -181,7 +181,7 @@ $dbh->do("INSERT INTO Cars VALUES(2,'Mercedes',57127)");
```
这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 _ 自动提交模式 _,其中对表的所有更改均立即生效。
这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 自动提交模式,其中对表的所有更改均立即生效。
```
mysql> SELECT * FROM Cars;
......
......@@ -20,13 +20,13 @@ MariaDB 是 MySQL 的社区开发分支,旨在在 GNU GPL 下保持免费。
## 定义
_ 关系数据库 _ 是表中组织的数据的集合。 表之间存在关系。 这些表是正式描述的。 它们由行和列组成。 _SQL_ (结构化查询语言)是一种数据库计算机语言,旨在管理关系数据库管理系统中的数据。 _ 表 _ 是使用垂直列和水平行的模型组织的一组值。 列由其名称标识。 数据库系统的 _ 模式 _ 是用正式语言描述的结构。 它定义了表,字段,关系,视图,索引,过程,函数,队列,触发器和其他元素。
关系数据库 是表中组织的数据的集合。 表之间存在关系。 这些表是正式描述的。 它们由行和列组成。 _SQL(结构化查询语言)是一种数据库计算机语言,旨在管理关系数据库管理系统中的数据。 表 是使用垂直列和水平行的模型组织的一组值。 列由其名称标识。 数据库系统的 模式 _ 是用正式语言描述的结构。 它定义了表,字段,关系,视图,索引,过程,函数,队列,触发器和其他元素。
数据库 _ 行 _ 代表表中的单个隐式结构化数据项。 它也称为元组或记录。 _ 列 _ 是一组特定简单类型的数据值,该数据值对应于表的每一行。 列提供了构成行所依据的结构。 _ 字段 _ 是单个项目,存在于一行和一列之间的交点处。 _ 主键 _ 唯一标识表中的每个记录。 _ 外键 _ 是两个表之间的引用约束。 外键标识一个(引用)表中的一列或一组列,该列或表引用另一(引用)表中的一列或一组列。
数据库 行 代表表中的单个隐式结构化数据项。 它也称为元组或记录。 列 是一组特定简单类型的数据值,该数据值对应于表的每一行。 列提供了构成行所依据的结构。 字段 是单个项目,存在于一行和一列之间的交点处。 主键 唯一标识表中的每个记录。 外键 是两个表之间的引用约束。 外键标识一个(引用)表中的一列或一组列,该列或表引用另一(引用)表中的一列或一组列。
_ 触发器 _ 是响应于数据库中特定表上的某些事件而自动执行的过程代码。 _ 视图 _ 是对来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
触发器 是响应于数据库中特定表上的某些事件而自动执行的过程代码。 视图 是对来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 SQL _ 结果集 _ 是数据库中由`SELECT`语句返回的一组行。 它还包含有关查询的元信息,例如列名以及每列的类型和大小。 _ 索引 _ 是一种数据结构,可提高对数据库表的数据检索操作的速度。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 SQL 结果集 是数据库中由`SELECT`语句返回的一组行。 它还包含有关查询的元信息,例如列名以及每列的类型和大小。 索引 是一种数据结构,可提高对数据库表的数据检索操作的速度。
## 使用的表
......
......@@ -6,7 +6,7 @@
## 定义
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 在 _ 自动提交模式 _ 中,更改立即生效。 要处理事务,我们要么关闭自动提交模式,要么使用`begin_work()`方法启动事务。 事务以`commit()``rollback()`方法结束。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 在 自动提交模式 中,更改立即生效。 要处理事务,我们要么关闭自动提交模式,要么使用`begin_work()`方法启动事务。 事务以`commit()``rollback()`方法结束。
MySQL 数据库具有不同类型的存储引擎。 最常见的是 MyISAM 和 InnoDB 引擎。 在数据安全性和数据库速度之间需要权衡。 MyISAM 表的处理速度更快,并且不支持事务。 另一方面,InnoDB 表可以更安全地防止数据丢失。 他们支持事务。 它们处理较慢。
......
......@@ -1305,7 +1305,7 @@ if (!$r3) {
## 事务支持
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
MySQL 数据库具有不同类型的存储引擎。 最常见的是 MyISAM 和 InnoDB 引擎。 MyISAM 是默认的。 在数据安全性和数据库速度之间需要权衡。 MyISAM 表的处理速度更快,并且不支持事务。 另一方面,InnoDB 表可以更安全地防止数据丢失。 他们支持事务。 它们处理较慢。
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/db/mysqljava/](http://zetcode.com/db/mysqljava/)
这是 MySQL 数据库的 Java 教程。 它涵盖了使用 JDBC 进行 Java 中 MySQL 编程的基础。 ZetCode 拥有用于 MySQL Java 的完整 _ 电子书 _[MySQL Java 编程电子书](/ebooks/mysqljava/)
这是 MySQL 数据库的 Java 教程。 它涵盖了使用 JDBC 进行 Java 中 MySQL 编程的基础。 ZetCode 拥有用于 MySQL Java 的完整 电子书[MySQL Java 编程电子书](/ebooks/mysqljava/)
[Tweet](https://twitter.com/share)
......
......@@ -10,7 +10,7 @@
## MySQL & Ruby
_MySQL_ 是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是由 Linux,Apache,MySQL 和 PHP 组成的非常流行的 _LAMP_ 平台的一部分。 目前,MySQL 由 Oracle 拥有。 MySQL 数据库在最重要的 OS 平台上可用。 _Ruby_ 是一种动态的,反射性的,通用的面向对象的编程语言。 最近,它在 Web 编程中变得非常流行,这主要归功于 Ruby on Rails 框架的成功。
_MySQL是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是由 Linux,Apache,MySQL 和 PHP 组成的非常流行的LAMP平台的一部分。 目前,MySQL 由 Oracle 拥有。 MySQL 数据库在最重要的 OS 平台上可用。Ruby_ 是一种动态的,反射性的,通用的面向对象的编程语言。 最近,它在 Web 编程中变得非常流行,这主要归功于 Ruby on Rails 框架的成功。
## mysql 模块
......
......@@ -101,7 +101,7 @@ Bye
## 定义
_ADO.NET_ 是.NET 框架的重要组成部分。 该规范统一了对关系数据库,XML 文件和其他应用程序数据的访问。 _MySQL Connector / Net_ 是 MySQL 数据库 ADO.NET 规范的实现。 它是用 C# 语言编写的驱动程序,可用于所有.NET 语言。
_ADO.NET是.NET 框架的重要组成部分。 该规范统一了对关系数据库,XML 文件和其他应用程序数据的访问。MySQL Connector / Net_ 是 MySQL 数据库 ADO.NET 规范的实现。 它是用 C# 语言编写的驱动程序,可用于所有.NET 语言。
`Connection``Command``DataReader``DataSet``DataProvider`是.NET 数据提供程序模型的核心元素。 `Connection`创建到特定数据源的连接。 `Command`对象针对数据源执行一条 SQL 语句。 `DataReader`从数据源读取数据流。 `DataSet`对象用于脱机处理大量数据。 它是一种断开连接的数据表示形式,可以保存来自各种不同来源的数据。 `DataReader``DataSet`都用于处理数据。 它们在不同的情况下使用。 如果只需要读取查询结果,则`DataReader`是更好的选择。 如果需要更广泛的数据处理,或者要将 Winforms 控件绑定到数据库表,则首选`DataSet`
......@@ -890,7 +890,7 @@ $ dmcs -r:/usr/lib/cli/MySql.Data-6.1/MySql.Data.dll -r:System.Windows.Forms.dll
## 事务支持
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
MySQL 数据库具有不同类型的存储引擎。 最常见的是 MyISAM 和 InnoDB 引擎。 在数据安全性和数据库速度之间需要权衡。 MyISAM 表的处理速度更快,并且不支持事务。 另一方面,InnoDB 表可以更安全地防止数据丢失。 他们支持事务。 它们处理较慢。
......
......@@ -12,11 +12,11 @@ SQLite 实现了 SQL 的大多数 SQL-92 标准。 SQLite 引擎不是独立的
## 定义
_ 关系数据库 _ 是表中组织的数据的集合。 表之间存在关系。 这些表是正式描述的。 它们由行和列组成。 _SQL_ (结构化查询语言)是一种数据库计算机语言,旨在管理关系数据库管理系统中的数据。 _ 表 _ 是使用垂直列和水平行的模型组织的一组值。 列由其名称标识。 数据库系统的 _ 模式 _ 是用正式语言描述的结构。 它定义了表,字段,关系,视图,索引,过程,函数,队列,触发器和其他元素。 数据库 _ 行 _ 代表表中的单个隐式结构化数据项。 它也称为元组或记录。
关系数据库 是表中组织的数据的集合。 表之间存在关系。 这些表是正式描述的。 它们由行和列组成。 _SQL(结构化查询语言)是一种数据库计算机语言,旨在管理关系数据库管理系统中的数据。 表 是使用垂直列和水平行的模型组织的一组值。 列由其名称标识。 数据库系统的 模式 是用正式语言描述的结构。 它定义了表,字段,关系,视图,索引,过程,函数,队列,触发器和其他元素。 数据库 行 _ 代表表中的单个隐式结构化数据项。 它也称为元组或记录。
_ 列 _ 是一组特定简单类型的数据值,该数据值对应于表的每一行。 列提供了构成行所依据的结构。 _ 字段 _ 是单个项目,存在于一行和一列之间的交点处。 _ 主键 _ 唯一标识表中的每个记录。 _ 外键 _ 是两个表之间的引用约束。 外键标识一个(引用)表中的一列或一组列,该列或表引用另一(引用)表中的一列或一组列。 _ 触发器 _ 是响应于数据库中特定表上的某些事件而自动执行的过程代码。 _ 视图 _ 是对来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
列 是一组特定简单类型的数据值,该数据值对应于表的每一行。 列提供了构成行所依据的结构。 字段 是单个项目,存在于一行和一列之间的交点处。 主键 唯一标识表中的每个记录。 外键 是两个表之间的引用约束。 外键标识一个(引用)表中的一列或一组列,该列或表引用另一(引用)表中的一列或一组列。 触发器 是响应于数据库中特定表上的某些事件而自动执行的过程代码。 视图 是对来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 SQL _ 结果集 _ 是 SELECT 语句返回的数据库中的一组行。 它还包含有关查询的元信息,例如列名以及每列的类型和大小。 _ 索引 _ 是一种数据结构,可提高对数据库表的数据检索操作的速度。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 SQL 结果集 是 SELECT 语句返回的数据库中的一组行。 它还包含有关查询的元信息,例如列名以及每列的类型和大小。 索引 是一种数据结构,可提高对数据库表的数据检索操作的速度。
## 从源代码安装 SQLite
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/db/sqlite/tables/](http://zetcode.com/db/sqlite/tables/)
在 SQLite 教程的这一部分中,我们将介绍 SQLite 数据库的数据定义语言(DDL)。 _DDL_ 由定义数据库架构的 SQL 语句组成。 _ 模式 _ 是以正式语言描述的数据库结构。 在关系数据库中,模式定义表,视图,索引,关系和触发器。
在 SQLite 教程的这一部分中,我们将介绍 SQLite 数据库的数据定义语言(DDL)。 _DDL由定义数据库架构的 SQL 语句组成。 模式 _ 是以正式语言描述的数据库结构。 在关系数据库中,模式定义表,视图,索引,关系和触发器。
SQLite 支持以下三个 DDL 语句:
......
......@@ -37,7 +37,7 @@ X'345EDA2348587AEB'
## 运算符
_ 运算符 _ 用于构建表达式。 SQL 运算符与数学运算符非常相似。 SQLite 支持一元和二进制运算符。 二元运算符使用两个操作数,一元运算符使用一个。 一个运算符可以有一个或两个操作数。 _ 操作数 _ 是运算符的输入(参数)之一。
运算符 用于构建表达式。 SQL 运算符与数学运算符非常相似。 SQLite 支持一元和二进制运算符。 二元运算符使用两个操作数,一元运算符使用一个。 一个运算符可以有一个或两个操作数。 操作数 是运算符的输入(参数)之一。
SQLite 支持五种主要的运算符:
......@@ -210,7 +210,7 @@ sqlite> SELECT 3 < 4, 3 <> 5, 4 >= 4, 5 != 5;
小数对人类是自然的。 二进制数是计算机固有的。 二进制,八进制,十进制或十六进制符号仅是相同数字的符号。 按位运算符使用二进制数的位。 我们有二进制逻辑运算符和移位运算符。
_ 按位,运算符 _ 在两个数字之间进行逐位比较。 仅当操作数中的两个对应位均为 1 时,位位置的结果才为 1。
按位,运算符 在两个数字之间进行逐位比较。 仅当操作数中的两个对应位均为 1 时,位位置的结果才为 1。
```
00110
......@@ -229,7 +229,7 @@ sqlite> SELECT 3 & 6;
```
_ 按位或运算符 _ 在两个数字之间进行逐位比较。 如果操作数中的任何对应位为 1,则位位置的结果为 1。
按位或运算符 在两个数字之间进行逐位比较。 如果操作数中的任何对应位为 1,则位位置的结果为 1。
```
00110
......@@ -246,7 +246,7 @@ sqlite> SELECT 6 | 3;
```
_ 按位移位运算符 _ 向右或向左移位。
按位移位运算符 向右或向左移位。
```
number << n : multiply number 2 to the nth power
......@@ -286,7 +286,7 @@ sqlite> SELECT 6 << 1;
```
_ 按位取反运算符 _ 分别将 1 更改为 0,将 0 更改为 1。它也称为 tilda 运算符。
按位取反运算符 分别将 1 更改为 0,将 0 更改为 1。它也称为 tilda 运算符。
```
sqlite> SELECT ~7;
......@@ -567,7 +567,7 @@ sqlite> SELECT Val, CASE WHEN Val>0 THEN 'positive'
## 优先级
_ 运算符优先级 _ 的规则指定首先评估哪些运算符。 优先级对于避免表达式中的歧义是必要的。
运算符优先级 的规则指定首先评估哪些运算符。 优先级对于避免表达式中的歧义是必要的。
以下表达式 28 或 40 的结果是什么?
......
......@@ -4,7 +4,7 @@
在 SQLite 教程的这一部分中,我们将处理约束。
_ 约束 _ 被放置在列上。 它们限制了可以插入表中的数据。
约束 被放置在列上。 它们限制了可以插入表中的数据。
在 SQLite 中,我们具有以下约束:
......
......@@ -122,7 +122,7 @@ sqlite> SELECT Name, Day FROM Customers, Reservations;
## SQLite 外部连接
_ 外部连接 _ 不需要两个连接表中的每个记录都具有匹配的记录。 外部连接共有三种类型:左外部连接,右外部连接和完全外部连接。 SQLite 仅支持左外部连接。
外部连接 不需要两个连接表中的每个记录都具有匹配的记录。 外部连接共有三种类型:左外部连接,右外部连接和完全外部连接。 SQLite 仅支持左外部连接。
### 左外连接
......
......@@ -56,7 +56,7 @@ Cars Friends Names Reservations
## SQLite 触发器
_ 触发器 _ 是在发生指定的数据库事件时自动执行的数据库操作。
触发器 是在发生指定的数据库事件时自动执行的数据库操作。
在下面的示例中,我们将使用`Friends`表并创建一个新的`Log`表。
......@@ -125,7 +125,7 @@ Id OldName NewName Date
## SQLite 事务
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
在 SQLite 中,除`SELECT`以外的任何命令都将启动隐式事务。 手动事务以`BEGIN TRANSACTION`语句开始,并以`COMMIT``ROLLBACK`语句结束。
......
......@@ -1283,7 +1283,7 @@ SQLite 支持三种非标准事务级别:`DEFERRED`,`IMMEDIATE`和`EXCLUSIVE
### 自动提交
默认情况下,SQLite 版本 3 在 _ 自动提交模式 _ 下运行。 在自动提交模式下,对数据库的所有更改将在与当前数据库连接关联的所有操作完成后立即提交。 自动提交模式由`BEGIN`语句禁用,并由`COMMIT``ROLLBACK`重新启用。
默认情况下,SQLite 版本 3 在 自动提交模式 下运行。 在自动提交模式下,对数据库的所有更改将在与当前数据库连接关联的所有操作完成后立即提交。 自动提交模式由`BEGIN`语句禁用,并由`COMMIT``ROLLBACK`重新启用。
```
#include <sqlite3.h>
......@@ -1487,5 +1487,5 @@ Cars Images
[Tweet](https://twitter.com/share)
这是 SQLite C 教程。 ZetCode 拥有用于 SQLite Python 的完整 _ 电子书 _
这是 SQLite C 教程。 ZetCode 拥有用于 SQLite Python 的完整 电子书
[SQLite Python 电子书](/ebooks/sqlitepython/)
\ No newline at end of file
......@@ -1418,5 +1418,5 @@ Id Name
数据已成功提交到`friends`表。
这是 SQLite Python 教程。 ZetCode 拥有用于 SQLite Python 的完整 _ 电子书 _
这是 SQLite Python 教程。 ZetCode 拥有用于 SQLite Python 的完整 电子书
[SQLite Python 电子书](/ebooks/sqlitepython/)
\ No newline at end of file
......@@ -188,7 +188,7 @@ $dbh->do("INSERT INTO Cars VALUES(2,'Mercedes',57127)");
```
这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 _ 自动提交模式 _,其中对表的所有更改均立即生效。
这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 自动提交模式,其中对表的所有更改均立即生效。
```
sqlite> .mode column
......
......@@ -6,7 +6,7 @@
## 定义
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 在 _ 自动提交模式 _ 中,更改立即生效。 要处理事务,我们要么关闭自动提交模式,要么使用`begin_work()`方法启动事务。 事务以`commit()``rollback()`方法结束。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 在 自动提交模式 中,更改立即生效。 要处理事务,我们要么关闭自动提交模式,要么使用`begin_work()`方法启动事务。 事务以`commit()``rollback()`方法结束。
默认情况下,数据库连接处于自动提交模式。 `AutoCommit`数据库句柄属性用于设置或读取自动提交模式。
......
......@@ -272,7 +272,7 @@ mysql> SELECT Name, Population FROM city
```
上面的查询显示了表中人口最多的城市。 SQL 是称为 _ 子查询 _ 的特殊查询类型。 外部查询使用内部查询返回的数据。 内部查询以括号为界。
上面的查询显示了表中人口最多的城市。 SQL 是称为 子查询 的特殊查询类型。 外部查询使用内部查询返回的数据。 内部查询以括号为界。
```
mysql> SELECT Name, Population FROM city
......
......@@ -190,7 +190,7 @@ db.execute "INSERT INTO Cars VALUES(2,'Mercedes',57127)"
```
这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 _ 自动提交模式 _,其中对表的所有更改均立即生效。
这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 自动提交模式,其中对表的所有更改均立即生效。
```
sqlite> .mode column
......
......@@ -6,7 +6,7 @@
## 定义
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 在 _ 自动提交模式 _ 中,更改立即生效。 为了处理事务,我们使用`transaction`方法开始事务。 事务以`commit``rollback`方法结束。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 在 自动提交模式 中,更改立即生效。 为了处理事务,我们使用`transaction`方法开始事务。 事务以`commit``rollback`方法结束。
默认情况下,数据库连接处于自动提交模式。 请注意,默认模式取决于驱动程序。 在 SQLite Python 驱动程序中,默认情况下自动提交已关闭。
......
......@@ -6,7 +6,7 @@
存储引擎是软件模块,数据库管理系统使用该软件模块来创建,读取和更新数据库中的数据。 MySQL 中有两种类型的存储引擎:事务性和非事务性。
对于 MySQL 5.5 和更高版本,默认存储引擎为 _InnoDB_ 。 5.5 版之前的 MySQL 默认存储引擎为 _MyISAM_ 。 选择正确的存储引擎是一项重要的战略决策,它将影响未来的发展。 在本教程中,我们将使用 MyISAM,InnoDB,内存和 CSV 存储引擎。 如果您不熟悉 MySQL,并且正在研究 MySQL 数据库管理系统,则不必担心。 如果您要计划生产数据库,那么事情将变得更加复杂。
对于 MySQL 5.5 和更高版本,默认存储引擎为 _InnoDB。 5.5 版之前的 MySQL 默认存储引擎为MyISAM_ 。 选择正确的存储引擎是一项重要的战略决策,它将影响未来的发展。 在本教程中,我们将使用 MyISAM,InnoDB,内存和 CSV 存储引擎。 如果您不熟悉 MySQL,并且正在研究 MySQL 数据库管理系统,则不必担心。 如果您要计划生产数据库,那么事情将变得更加复杂。
## 存储引擎列表
......@@ -26,17 +26,17 @@ _InnoDB_ 是使用最广泛的具有事务支持的存储引擎。 它是符合
_MyISAM_ 是原始存储引擎。 这是一个快速的存储引擎。 它不支持事务。 MyISAM 提供表级锁定。 它主要用于 Web 和数据仓库。
_ 内存 _ 存储引擎在内存中创建表。 这是最快的引擎。 它提供表级锁定。 它不支持事务。 内存存储引擎非常适合创建临时表或快速查找。 重新启动数据库后,数据将丢失。
内存 存储引擎在内存中创建表。 这是最快的引擎。 它提供表级锁定。 它不支持事务。 内存存储引擎非常适合创建临时表或快速查找。 重新启动数据库后,数据将丢失。
_CSV_ 将数据存储在 CSV 文件中。 它提供了极大的灵活性,因为这种格式的数据很容易集成到其他应用程序中。
_ 合并 _ 对基础 MyISAM 表进行操作。 合并表有助于更轻松地管理大量数据。 它在逻辑上对一系列相同的 MyISAM 表进行分组,并将它们引用为一个对象。 适用于数据仓库环境。
合并 对基础 MyISAM 表进行操作。 合并表有助于更轻松地管理大量数据。 它在逻辑上对一系列相同的 MyISAM 表进行分组,并将它们引用为一个对象。 适用于数据仓库环境。
_ 存档 _ 存储引擎针对高速插入进行了优化。 插入时压缩数据。 它不支持事务。 它是存储和检索很少参考的历史,存档数据的理想选择。
存档 存储引擎针对高速插入进行了优化。 插入时压缩数据。 它不支持事务。 它是存储和检索很少参考的历史,存档数据的理想选择。
_Blackhole_ 存储引擎接受但不存储数据。 检索总是返回一个空集。 该功能可用于分布式数据库设计中,在该数据库中,数据将自动复制,但不会存储在本地。 该存储引擎可用于执行性能测试或其他测试。
_ 联合 _ 存储引擎提供了将 MySQL 服务器分离以从许多物理服务器创建一个逻辑数据库的能力。 本地服务器上的查询将在远程(联合)表上自动执行。 没有数据存储在本地表上。 这对分布式环境很有用。
联合 存储引擎提供了将 MySQL 服务器分离以从许多物理服务器创建一个逻辑数据库的能力。 本地服务器上的查询将在远程(联合)表上自动执行。 没有数据存储在本地表上。 这对分布式环境很有用。
```
mysql> SHOW ENGINES\G
......
......@@ -4,7 +4,7 @@
在本章中,我们将处理事务。 首先,我们提供一些基本定义。 然后,我们将有一些程序显示如何处理事务。
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
在 SQLite 中,除`SELECT`以外的任何命令都将启动隐式事务。 同样,在事务中,诸如`CREATE TABL` ...,`VACUUM``PRAGMA`之类的命令将在执行之前提交先前的更改。
......
......@@ -4,7 +4,7 @@
在本章中,我们将处理事务。 首先,我们提供一些基本定义。 然后,我们将有一些程序显示如何处理事务。
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
在 SQLite 中,除`SELECT`以外的任何命令都将启动隐式事务。 同样,在事务中,诸如`CREATE TABLE` ...,`VACUUM``PRAGMA`之类的命令将在执行之前提交先前的更改。
......
......@@ -375,7 +375,7 @@ mysql> SELECT YEAR(CURDATE()) AS 'Current year';
### 时间戳
_ 时间戳 _ 是一个字符序列,表示某个事件发生的日期和/或时间。 时间戳通常用于记录事件。 在 MySQL 中,我们有`TIMESTAMP`数据类型用于创建时间戳。 `TIMESTAMP`列可用于记录`INSERT``UPDATE`操作的日期和时间。 如果您自己没有给它一个值,它将自动设置为最近一次操作的日期和时间。 `TIMESTAMP`数据类型的范围为`1970-01-01 00:00:01` UTC 到`2038-01-19 03:14:07` UTC。
时间戳 是一个字符序列,表示某个事件发生的日期和/或时间。 时间戳通常用于记录事件。 在 MySQL 中,我们有`TIMESTAMP`数据类型用于创建时间戳。 `TIMESTAMP`列可用于记录`INSERT``UPDATE`操作的日期和时间。 如果您自己没有给它一个值,它将自动设置为最近一次操作的日期和时间。 `TIMESTAMP`数据类型的范围为`1970-01-01 00:00:01` UTC 到`2038-01-19 03:14:07` UTC。
下表总结了支持的`TIMESTAMP`格式。
......
......@@ -114,7 +114,7 @@ postgres=# \q
使用`psql`命令,为新用户添加密码。
PostgreSQL 通常在本地连接上使用 _ 信任 _ 或 _ 对等 _ 身份验证策略。 在 _ 信任​​_ 身份验证策略的情况下,PostgreSQL 假定可以连接到服务器的任何人都可以使用他们指定的任何数据库用户名(甚至超级用户名)访问数据库。 与数据库建立连接时,不需要密码。 (在数据库和用户列中所做的限制仍然适用。)信任身份验证对于单用户工作站上的本地连接是适当的,并且非常方便。 它通常不适用于多用户计算机。 如果使用 _ 对等 _ 身份验证策略,则数据库用户名必须与操作系统用户名匹配。
PostgreSQL 通常在本地连接上使用 信任 或 对等 身份验证策略。 在 信任​​_ 身份验证策略的情况下,PostgreSQL 假定可以连接到服务器的任何人都可以使用他们指定的任何数据库用户名(甚至超级用户名)访问数据库。 与数据库建立连接时,不需要密码。 (在数据库和用户列中所做的限制仍然适用。)信任身份验证对于单用户工作站上的本地连接是适当的,并且非常方便。 它通常不适用于多用户计算机。 如果使用 对等 _ 身份验证策略,则数据库用户名必须与操作系统用户名匹配。
```
$ sudo -u postgres createdb testdb --owner janbodnar
......@@ -954,7 +954,7 @@ price
### 表的清单
PostgreSQL 的 _ 信息模式 _ 由一组视图组成,这些视图包含有关当前数据库中定义的对象的信息。 `tables`视图包含当前数据库中定义的所有表和视图。
PostgreSQL 的 信息模式 由一组视图组成,这些视图包含有关当前数据库中定义的对象的信息。 `tables`视图包含当前数据库中定义的所有表和视图。
`list_tables.c`
......@@ -1039,9 +1039,9 @@ books
## 事务
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中的 SQL 语句可以全部提交给数据库,也可以全部回滚。 为了数据安全和完整性,将 SQL 语句放入事务中。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中的 SQL 语句可以全部提交给数据库,也可以全部回滚。 为了数据安全和完整性,将 SQL 语句放入事务中。
PostgreSQL 在 _ 自动提交 _ 模式下运行。 每个 SQL 语句都在一个事务中执行:每个单独的语句周围都包含一个隐式`BEGIN`和(如果成功)`COMMIT`
PostgreSQL 在 自动提交 模式下运行。 每个 SQL 语句都在一个事务中执行:每个单独的语句周围都包含一个隐式`BEGIN`和(如果成功)`COMMIT`
显式事务以`BEGIN`命令开始,以`COMMIT`命令结束。
......
......@@ -136,7 +136,7 @@ postgres=# \q
使用`psql`命令,为新用户添加密码。
PostgreSQL 通常在本地连接上使用 _ 信任 _ 或 _ 对等 _ 身份验证策略。 在 _ 信任​​_ 身份验证策略的情况下,PostgreSQL 假定可以连接到服务器的任何人都可以使用他们指定的任何数据库用户名(甚至超级用户名)访问数据库。 与数据库建立连接时,不需要密码。 (在数据库和用户列中所做的限制仍然适用。)信任身份验证对于单用户工作站上的本地连接是适当的,并且非常方便。 它通常不适用于多用户计算机。 如果使用 _ 对等 _ 身份验证策略,则数据库用户名必须与操作系统用户名匹配。
PostgreSQL 通常在本地连接上使用 信任 或 对等 身份验证策略。 在 信任​​_ 身份验证策略的情况下,PostgreSQL 假定可以连接到服务器的任何人都可以使用他们指定的任何数据库用户名(甚至超级用户名)访问数据库。 与数据库建立连接时,不需要密码。 (在数据库和用户列中所做的限制仍然适用。)信任身份验证对于单用户工作站上的本地连接是适当的,并且非常方便。 它通常不适用于多用户计算机。 如果使用 对等 _ 身份验证策略,则数据库用户名必须与操作系统用户名匹配。
```
$ sudo -u postgres createdb testdb --owner janbodnar
......@@ -747,7 +747,7 @@ price
### 表的清单
PostgreSQL 的 _ 信息模式 _ 由一组视图组成,这些视图包含有关当前数据库中定义的对象的信息。 `tables`视图包含当前数据库中定义的所有表和视图。
PostgreSQL 的 信息模式 由一组视图组成,这些视图包含有关当前数据库中定义的对象的信息。 `tables`视图包含当前数据库中定义的所有表和视图。
list_tables.rb
......@@ -811,9 +811,9 @@ cars
## 事务
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中的 SQL 语句可以全部提交给数据库,也可以全部回滚。 为了数据安全和完整性,将 SQL 语句放入事务中。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中的 SQL 语句可以全部提交给数据库,也可以全部回滚。 为了数据安全和完整性,将 SQL 语句放入事务中。
PostgreSQL 在 _ 自动提交 _ 模式下运行。 每个 SQL 语句都在一个事务中执行:每个单独的语句周围都包含一个隐式`BEGIN`和(如果成功)`COMMIT`
PostgreSQL 在 自动提交 模式下运行。 每个 SQL 语句都在一个事务中执行:每个单独的语句周围都包含一个隐式`BEGIN`和(如果成功)`COMMIT`
显式事务以`BEGIN`命令开始,以`COMMIT``ROLLBACK`命令结束。
......
......@@ -72,7 +72,7 @@ Shall the new role be allowed to create more new roles? (y/n) n
```
我们在 PostgreSQL 系统中创建了一个新角色。 我们允许它具有创建新数据库的能力。 _ 角色 _ 是数据库世界中的用户。 角色与操作系统用户是分开的。 我们创建了一个没有`-W`选项的新用户,例如 我们尚未指定密码。 这使我们能够使用该用户连接到数据库,而无需密码验证。 请注意,这仅适用于本地主机。
我们在 PostgreSQL 系统中创建了一个新角色。 我们允许它具有创建新数据库的能力。 角色 是数据库世界中的用户。 角色与操作系统用户是分开的。 我们创建了一个没有`-W`选项的新用户,例如 我们尚未指定密码。 这使我们能够使用该用户连接到数据库,而无需密码验证。 请注意,这仅适用于本地主机。
```
$ sudo -u postgres createdb testdb -O janbodnar
......
......@@ -4,7 +4,7 @@
在本章中,我们将处理事务。 首先,我们提供一些基本定义。 然后,我们将使用事务的示例程序。
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中的 SQL 语句可以全部提交给数据库,也可以全部回滚。 为了数据安全和完整性,将 SQL 语句放入事务中。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中的 SQL 语句可以全部提交给数据库,也可以全部回滚。 为了数据安全和完整性,将 SQL 语句放入事务中。
在 PostgreSQL PHP 中,每个 SQL 语句在执行后都会提交给数据库。 并非所有语言绑定都是如此。 例如,在 Python 的 psycopg2 模块中,默认情况下,必须使用`commit()`方法显式提交所有更改。
......
......@@ -1125,9 +1125,9 @@ fos.write(buf, 0, len);
## 事务支持
_ 事务 _ 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。
创建连接后,它处于 _ 自动提交 _ 模式。 这意味着每个单独的 SQL 语句都被视为事务,并在执行后立即自动提交。 对于所有 JDBC 驱动程序(包括 PostgreSQL 的驱动程序)都是如此。 要开始新的事务,我们关闭自动提交。
创建连接后,它处于 自动提交 模式。 这意味着每个单独的 SQL 语句都被视为事务,并在执行后立即自动提交。 对于所有 JDBC 驱动程序(包括 PostgreSQL 的驱动程序)都是如此。 要开始新的事务,我们关闭自动提交。
在直接 SQL 中,事务以`BEGIN TRANSACTION`语句开始,并以`END TRANSACTION``COMMIT`语句结束。 在 PostgreSQL 中,这些语句是`BEGIN``COMMIT`。 但是,在使用驱动程序时,将省略这些语句。 它们由驾驶员处理。 确切的细节是特定于驱动程序的。 例如,`psycopg2` Python 驱动程序在第一个 SQL 语句之后启动事务。 必须通过将 autocommit 属性设置为 True 来设置自动提交模式。 相反,默认情况下,JDBC 驱动程序处于自动提交模式。 并且要开始新事务,必须关闭自动提交。
......
......@@ -8,9 +8,9 @@ _Derby_ 是用 Java 编写的关系数据库管理系统。 它实现了 SQL-92
## 部署选项
Derby 可以两种模式运行:嵌入式或客户端服务器。 在 _ 嵌入式模式 _ 中,Derby 引擎在应用程序的 Java 虚拟机中运行。 该应用程序直接且排他地访问数据库。 没有其他应用程序可以同时访问数据库。 连接到数据库之前,无需设置 Derby 服务器。 当我们加载嵌入式驱动程序时,将启动 Derby 引擎。
Derby 可以两种模式运行:嵌入式或客户端服务器。 在 嵌入式模式 中,Derby 引擎在应用程序的 Java 虚拟机中运行。 该应用程序直接且排他地访问数据库。 没有其他应用程序可以同时访问数据库。 连接到数据库之前,无需设置 Derby 服务器。 当我们加载嵌入式驱动程序时,将启动 Derby 引擎。
_ 客户端-服务器 _ 模式下,Derby 提供跨网络的多用户连接。 Derby 引擎在服务器的 JVM 中运行。 其他应用程序可以从不同的 JVM 连接到数据库。 连接到数据库之前,我们必须启动数据库服务器。 这类似于其他 RDBMS,例如 Oracle 或 MySQL。
客户端-服务器 模式下,Derby 提供跨网络的多用户连接。 Derby 引擎在服务器的 JVM 中运行。 其他应用程序可以从不同的 JVM 连接到数据库。 连接到数据库之前,我们必须启动数据库服务器。 这类似于其他 RDBMS,例如 Oracle 或 MySQL。
## Derby 系统
......@@ -63,11 +63,11 @@ derbyLocale_hu.jar derbyLocale_zh_CN.jar
## Derby 模式
在数据库理论中,_ 模式 _ 是数据库的结构。 用正式语言(SQL)描述。 它是指数据的组织。 数据库模式的正式定义是一组公式,称为对数据库施加的完整性约束。
在数据库理论中,模式 是数据库的结构。 用正式语言(SQL)描述。 它是指数据的组织。 数据库模式的正式定义是一组公式,称为对数据库施加的完整性约束。
在 Derby 中,数据库模式的含义较窄。 它是用于对对象进行逻辑分组的容器。 它类似于 Java 包或 C ++名称空间。 Derby 数据库可能具有多个架构。 我们可以创建两个具有相同名称的表,前提是它们被放置在两个不同的模式中。 Derby 的默认架构为 APP。 如果我们不提供任何模式,则会将数据库对象分配给该默认模式。
使用`CREATE SCHEMA`语句在 Derby 中创建模式。 如果我们连接到数据库,则在连接 URL 中提供的用户名将成为连接的 _ 当前模式 _。 所有数据库对象都将在此架构内创建。 可以使用`SET SCHEMA`语句更改当前模式。 还有一个称为 SYS 的内置模式,用于隔离系统表。
使用`CREATE SCHEMA`语句在 Derby 中创建模式。 如果我们连接到数据库,则在连接 URL 中提供的用户名将成为连接的 当前模式。 所有数据库对象都将在此架构内创建。 可以使用`SET SCHEMA`语句更改当前模式。 还有一个称为 SYS 的内置模式,用于隔离系统表。
Derby 有一个名为`dblook`的工具,可以转储数据库及其架构。 该工具的输出是 DDL(数据定义语言)对数据库的形式化描述。
......
......@@ -4,7 +4,7 @@
在下一章中,我们将提到 Derby 的安全性选项。
我们将在本章中简要提及两个基本安全概念。 用户身份验证和用户授权。 _ 用户身份验证 _ 正在验证用户凭据,然后再授予对 Derby 系统的访问权限。 _ 用户授权 _ 是授予读取和/或写入 Derby 数据库权限的手段。
我们将在本章中简要提及两个基本安全概念。 用户身份验证和用户授权。 用户身份验证 正在验证用户凭据,然后再授予对 Derby 系统的访问权限。 用户授权 是授予读取和/或写入 Derby 数据库权限的手段。
此外,Derby 允许对磁盘上存储的数据库文件进行加密。 Derby 网络流量可以使用 SSL / TLS 加密协议进行加密。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册