Access数据库和SQL Server数据库在实际应用中的区别
1个回答
展开全部
1.在Access数据库中简历查询语句的步骤
-->
打开你的MDB
-->
在数据库窗口中,点击“查询”,或在“视图”菜单中选择“数据库对象”->
“查询”
-->
点击数据库窗口中的“新建”按钮
-->
点击“确定”,关闭“显示表”窗口
-->
点击工具栏上的“SQL”,或在“视图”菜单中选择“SQL
视图”
-->
删掉所有的内容
-->
直接输入SQL语句即可
2.
Access
数据库,每次只能执行一条sql语句,如果想在Access数据库中一次执行多条Sql语句,则要使用事务进行控制
OldDbTransaction
3.
在SQL
Server中的for
xml
path语句无法再Access数据库中使用
4.
操作语句
select
access数据库在有多个表查询的时候,表之间的联合语句要使用圆括号括起来,如:
SELECT
*
FROM
(aa
LEFT
JOIN
bb
ON
aa.a=bb.a)
LEFT
JOIN
cc
ON(bb.a=cc.a
and
bb.b=cc.b)
另外,在多表连接时,不可以使用‘Full
Join’连接
update
update对于单表操作时基本一致。
但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句会有差别:
SQLSERVER中更新多表的UPDATE语句:
UPDATE
Table1
SET
a.Name
=
b.Name
FROM
Table1
a,
Table2
b
WHERE
a.ID
=
b.ID;
ACCESS中同样功能的SQL语句:
UPDATE
Table1
a,
Table2
b
SET
a.Name
=
b.Name
WHERE
a.ID
=
b.ID;
比较得出:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后,这点同mysql;
delete
SQLSERVER中:DELETE
from
Table1
WHERE
ID
>
1;
Access中:DELETE
*
from
Table1
WHERE
ID
>
1;
比较得出:SQLSERVER中,即只要把select语句里的select与delete的操作语法一致的,不需要*;
5、时间字段
A:要用#号分隔,或者转换为日期
SELECT
*
FROM
Books
WHERE
RegDate
=
#2007-5-1#
或
SELECT
*
FROM
Books
WHERE
RegDate
=
CDate(’2007-5-1′)
S:可以直接用''
SELECT
*
FROM
Books
WHERE
RegDate
=
‘2007-5-1′
O:To_Date
SELECT
*
FROM
Books
WHERE
RegDate=To_Date('2007-05-01','yyyy-mm-dd')
6.
Access数据库表中的主键要设置自动增长类型,当一个数据表中已经存在数据后,则不可以将字段设置为自动增长类型。
7.Access的查询中不能出现select
top
0
from
xxx
的情况
8.Access数据库的数据类型转换
CBool
Boolean
任何有效的字符串或数值表达式。
CByte
Byte
0
到
255。
CCur
Currency
-922,337,203,685,477.5808
到
922,337,203,685,477.5807。
CDate
Date
任何有效的日期表达式。
CDbl
Double
对于负值,-1.79769313486231E308
到
-4.94065645841247E-324;对于正值,4.94065645841247E-324
到
1.79769313486232E308。
CDec
Decimal
对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。对于具有
28
位小数的数字,值域范围是
+/-7.9228162514264337593543950335。可能的最小非零数字为
0.0000000000000000000000000001。
CInt
Integer
-32,768
到
32,767;小数部分被四舍五入。
CLng
Long
-2,147,483,648
到
2,147,483,647;小数部分被四舍五入。
CSng
Single
对于负值,-3.402823E38
到
-1.401298E-45;对于正值,1.401298E-45
到
3.402823E38。
CStr
String
CStr
的返回值取决于
expression
参数。
CVar
Variant
对于数字,与双精度型的值域范围相同。对于非数字值,与
String
的值域范围相同。
9
ACCESS
不识别!=
替换成<>
-->
打开你的MDB
-->
在数据库窗口中,点击“查询”,或在“视图”菜单中选择“数据库对象”->
“查询”
-->
点击数据库窗口中的“新建”按钮
-->
点击“确定”,关闭“显示表”窗口
-->
点击工具栏上的“SQL”,或在“视图”菜单中选择“SQL
视图”
-->
删掉所有的内容
-->
直接输入SQL语句即可
2.
Access
数据库,每次只能执行一条sql语句,如果想在Access数据库中一次执行多条Sql语句,则要使用事务进行控制
OldDbTransaction
3.
在SQL
Server中的for
xml
path语句无法再Access数据库中使用
4.
操作语句
select
access数据库在有多个表查询的时候,表之间的联合语句要使用圆括号括起来,如:
SELECT
*
FROM
(aa
LEFT
JOIN
bb
ON
aa.a=bb.a)
LEFT
JOIN
cc
ON(bb.a=cc.a
and
bb.b=cc.b)
另外,在多表连接时,不可以使用‘Full
Join’连接
update
update对于单表操作时基本一致。
但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句会有差别:
SQLSERVER中更新多表的UPDATE语句:
UPDATE
Table1
SET
a.Name
=
b.Name
FROM
Table1
a,
Table2
b
WHERE
a.ID
=
b.ID;
ACCESS中同样功能的SQL语句:
UPDATE
Table1
a,
Table2
b
SET
a.Name
=
b.Name
WHERE
a.ID
=
b.ID;
比较得出:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后,这点同mysql;
delete
SQLSERVER中:DELETE
from
Table1
WHERE
ID
>
1;
Access中:DELETE
*
from
Table1
WHERE
ID
>
1;
比较得出:SQLSERVER中,即只要把select语句里的select与delete的操作语法一致的,不需要*;
5、时间字段
A:要用#号分隔,或者转换为日期
SELECT
*
FROM
Books
WHERE
RegDate
=
#2007-5-1#
或
SELECT
*
FROM
Books
WHERE
RegDate
=
CDate(’2007-5-1′)
S:可以直接用''
SELECT
*
FROM
Books
WHERE
RegDate
=
‘2007-5-1′
O:To_Date
SELECT
*
FROM
Books
WHERE
RegDate=To_Date('2007-05-01','yyyy-mm-dd')
6.
Access数据库表中的主键要设置自动增长类型,当一个数据表中已经存在数据后,则不可以将字段设置为自动增长类型。
7.Access的查询中不能出现select
top
0
from
xxx
的情况
8.Access数据库的数据类型转换
CBool
Boolean
任何有效的字符串或数值表达式。
CByte
Byte
0
到
255。
CCur
Currency
-922,337,203,685,477.5808
到
922,337,203,685,477.5807。
CDate
Date
任何有效的日期表达式。
CDbl
Double
对于负值,-1.79769313486231E308
到
-4.94065645841247E-324;对于正值,4.94065645841247E-324
到
1.79769313486232E308。
CDec
Decimal
对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。对于具有
28
位小数的数字,值域范围是
+/-7.9228162514264337593543950335。可能的最小非零数字为
0.0000000000000000000000000001。
CInt
Integer
-32,768
到
32,767;小数部分被四舍五入。
CLng
Long
-2,147,483,648
到
2,147,483,647;小数部分被四舍五入。
CSng
Single
对于负值,-3.402823E38
到
-1.401298E-45;对于正值,1.401298E-45
到
3.402823E38。
CStr
String
CStr
的返回值取决于
expression
参数。
CVar
Variant
对于数字,与双精度型的值域范围相同。对于非数字值,与
String
的值域范围相同。
9
ACCESS
不识别!=
替换成<>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询