Access与SQL Server语法对比详解

需积分: 7 2 下载量 31 浏览量 更新于2024-09-08 收藏 76KB DOC 举报
"这篇文档详细对比了Access与SQL Server在语法上的差异,包括系统时间获取、连接字符串、字段类型转换、日期格式等方面。" 在数据库管理领域,Access和SQL Server都是常用的数据库系统,但它们在SQL语法上存在一些显著的区别。以下是针对这些差异的详细解释: 1. 系统时间获取: - Access使用`Date()`函数获取当前系统日期,而SQL Server使用`GETDATE()`函数。 2. 连接字符串: - 在Access中,字符串连接使用`&`运算符,例如 `string1 & string2`。 - SQL Server中,字符串连接通常使用`+`运算符,如 `string1 + string2`。 3. 截取字符串: - Access中的`Mid()`函数用于截取字符串,如 `Mid(string, start, length)`。 - SQL Server中,对应的函数是`SUBSTRING()`, 如 `SUBSTRING(string, start, length)`。 4. 大小写转换: - Access提供`LCase()`和`UCase()`函数将字符串转为小写和大写。 - SQL Server则有`LOWER()`和`UPPER()`函数实现相同功能。 5. 条件取值: - Access使用`IIF()`函数进行条件判断,如 `IIF(condition, true_value, false_value)`。 - SQL Server则采用`CASE WHEN ... THEN ... ELSE ... END`结构。 6. 字段类型转换: - Access通过`CStr()`, `CInt()`, `CDate()`等函数转换字段类型。 - SQL Server中,可以使用`CONVERT()`或`CAST()`函数进行转换。 7. SELECT, UPDATE语句的区别: - 单表操作时,Access和SQL Server的`SELECT`和`UPDATE`语句基本相同。 - 多表操作的`UPDATE`语句,SQL Server使用`FROM`子句,如 `UPDATE Table1 SET a.Name = b.Name FROM Table1 a, Table2 b WHERE a.ID = b.ID;` - Access的`UPDATE`语句不包含`FROM`子句,所有表都列在`UPDATE`关键字之后,如 `UPDATE Table1 a, Table2 b SET a.Name = b.Name WHERE a.ID = b.ID;` 8. DELETE语句: - SQL Server的`DELETE`语句格式为 `DELETE FROM <表名> WHERE ID > 1;` - Access的`DELETE`语句需要包含`*`,如 `DELETE * FROM <表名> WHERE ID > 1;` 9. AS后面计算字段的区别: - SQL Server中,`AS`后的字段不能直接参与计算,如 `SELECT SUM(num) AS sum_num, SUM(num) * num AS all_num FROM <表名>;` - Access允许`AS`后的字段参与计算,如 `SELECT SUM(num) AS sum_num, sum_num * num AS all_num FROM <表名>;` 10. 日期/时间字段和分隔符: - SQL Server使用单引号 `'` 包围日期,如 `WHERE RegDate = '2011-08-10'`。 - Access使用`#`号分隔日期,如 `WHERE 生日 = #2011-08-10#`。 了解这些差异有助于在从Access迁移至SQL Server,或者反之的过程中编写兼容的SQL语句,避免出现语法错误。