access和sql server的sql语句有什么区别

2021-03-21 06:34:46 字数 5731 阅读 9007

1楼:千锋教育

vfp支持多用户同时使用数据库,属于小型数据库系统可用于设计网络数据库,但基本f/s结构的。

vfp与sql的区别:两者结合起来用来制作基于c/s结构的系统,sql用来做后端,在服务器上运行,管理数据库。

vfp用来做前端,在工作站上运行,处理用户请求,并向sql发出数据处理请求。

sql语句“*“的区别

2楼:

*这个符号,在sql语句中,一般可能有三种可能。

第一种,select *,这个星号在select关键字后边,替代了查询的具体字段,数据库会根据from后边的表名字,解析成表的所有字段。也可以写成select table.*,这样就会解析成table表的所有字段。

第二种,数字运算中的乘法符号,select 1*2 from ...,这个是两个数字相乘。

第三种,也是你的这种数据库特有的,外连接符号。 *= 表示左外连接。不同的数据库,这个外连接的符号是不同的。oracle使用(+),而sqlserver使用*

3楼:

*=/=*这是左联/右联

等同left join /right join

这是ms sql7.0的用法,在sql2000也可以用

4楼:匿名用户

*做运算符时是乘法运算

在select 后面时 列出表所有列

5楼:安徽新华电脑专修学院

* 表示表的所有字段

% 模糊查询通配符

vfp命令和sql语句有什么区别 20

6楼:匿名用户

vfp对表操作有自己的命令.

vfp还支持sql语句,相对于vfp自己的命令,更加简洁快速. 不过就是对新手比较难.

有时vfp自己的命令要好多行才能搞定, sql语句一句搞定.

7楼:匿名用户

vfp的命令 和 sql语句 是完全不同的两套操纵数据库的系统。

(1)vfp的程序 和 sql语句几乎可以实现相同的功能。如此可以看出,sql的功能更强。

(2)sql语句是结构化的,vfp的语句是非结构化的。

(3)原本研发的xbase数据库系统就是处理小型数据库的,开始并不支持sql,只是后来才加入的。

8楼:怀跃折冬卉

1】一般来说,sql是指结构化查询语言,它在所有数据库管理系统中都可以用,那么在vfp这个数据库管理系统中也能用。

2】你可能说的是另一个数据库管理系统sqlserver,那么它与vfp的区别是:

sqlserver是真正的中大型数据库,vfp是桌面数据库,使用方便、易学,但实际上牺牲了真正数据库的一些功能,如安全性;此外,vfp既是数据库又是编程语言(开发工具)。

sql server和oracle中sql语句一样吗?

9楼:千锋教育

oracle与sql server都遵循sql-92标准:

区别如下:

1.oracle中表名,字段名,存储过程名,变量名不能超过30个字符串长度。

2.oracle中不支持top 语法。使用whererownum < n 代替。但需要注意如果在top前有排序的操作,则需要先排序在利用rownum取得。

3.oracle中光标的使用与sqlserver中有挺大差别,主要是在循环控制方面不一致。

在oracle中如果某列是date类型,那么它默认的格式是yyyy-mm-dd,如果使用where coldate = ‘2005-06-08 17:14:57’就会出错,‘2005-06-08’可以。

如果此时需要精确比较时间(小时,分,秒),可以采用下列方法:to_date('2005-6-8 17:14:

57','yyyy-mm-dd hh24:mi:ss')。

由于oracle和sqlserver在datetime上对sql标准的拓展实现方式不同,因此不能用同一个sql实现。

4.oracle中的timestamp(时间戳)与sqlserver中的差别很大。sqlserver中的timestamp是二进制格式存储在数据库中,可以将dataset中的这个字段类型设定为base64binary类型。

oracle中的timestamp是时间格式存储的。因此,无法用同一个dataset既装载sqlserver的timestamp,有装载oracle的timestamp.由于在应用程序中很少用到这个值,因此可以不检索这个字段。

5.oracle中的timestamp不能像sqlserver在传入数据的时候自动填充,可以设定默认值systimestamp来实现类似功能。

6.oracle中没有boolean的字段类型,可以用intger或者char代替sqlserver中的bit类型。

7.oracle中会将””空字符串当多null处理,也就是说,当应用程序往数据库中插入一个空字符串时,实际数据库会尝试插入一个null。如果这个字段是notnull类型,那么就会出错,这种情况下可以用别的默认值代替空字符串。

当从sqlserver导入数据到oracle的时候,在notnull列上的空字符串会导致导出操作失败。此时可以在导出向导中手工修改sql脚本,将空字符串设定成一个特殊值。

8.oracle中不支持,select . . into创建新表,要用create table 表名as select 语句 ,创建新表。

9.在oracle中连接字符串用 ‘||’ 或concat(col1,col2)函数,不能使用‘+’。

统配符 ,[^] ,oracle好像也不支持。

10楼:匿名用户

sql语句本身就是一种工业标准,多数的sql语句是通用的(select,update,insert) 但是当中还有一些小的区别,比如oralce9以后支持的全外连写法 fullouter join on,一旦应用到pl/sql(带编程语句的sql)区别就大了.

因此数据库无关性(程序在所有的数据库都能顺利运行)也是编程的一个课题.

你说的desc用法是oralce特有数据字典用法.不是标准的sql语句

sql server 怎么捕捉sql语句

11楼:育知同创教育

sql server中sql语句执行错误直接会抛出异常,在应用中捕获异常即可。

实时监控sql错误:

查看 sql server 错误日志可以确保进程(例如,备份和还原操作、批处理命令或其他脚本和进程)成功完成。此功能可用于帮助检测任何当前或潜在的问题领域,包括自动恢复消息(尤其是在 sql server 实例已停止并重新启动时)、内核消息或其他服务器级错误消息。

使用 sql server management studio 或任何文本编辑器可以查看 sql server 错误日志。默认情况下,错误日志位于 program files\microsoft sql server\mssql.n\mssql\log\errorlog 和 errorlog.

n 文件中。

每当启动 sql server 实例时,将创建新的错误日志,虽然 sp_cycle_errorlog 系统存储过程可用于循环使用错误日志文件,而不必重新启动 sql server 实例。通常,sql server 保留前六个日志的备份,并指定最近日志备份的扩展名为 .1、下一个最近日志备份的扩展名为 .

2,依次类推。当前的错误日志没有扩展名。

12楼:匿名用户

如果在transact-sql中发生了错误,一般有两种捕捉错误的方法,一种是在客户端**(如c#、delphi等)中使用类似try...catch的语句进行捕捉;另外一种就是在transact-sql中利用transact-sql本身提供的错误捕捉机制进行捕捉。如果是因为transact-sql语句的执行而产生的错误,如键值冲突,使用第一种和第二种方法都可以捕捉,但是如果是逻辑错误,使用客户端**进行捕捉就不太方便。

因此,本文就如何使用transact-sql进行错误捕捉进行了讨论。

非致命错误(non-fatal error)的捕捉

通过执行transact-sql而产生的错误可分为两种:致命错误(fatal error)和非致命错误(non-fatal error)。在transact-sql中只可以捕捉非致命错误(如键值冲突),而无法捕捉致命错误(如语法错误)。

在transact-sql中可以通过系统变量@@error判断最近执行的一条语句是否成功执行。如果发生了错误,@@error的值大于0,否则值为0。下面举一个例子说明@@error的使用。

假设有一个表table1,在这个表中有两个字段f1,f2。其中f1是主键。

insertintotable1values(1,'aa')insertintotable1values(1,'bb')--这条语句将产生一个错误if@@error0print'键值冲突'  当执行第二条语句时发生键值冲突错误,@@error被赋为错误号2627,因此输出结果显示'键值冲突'。使用@@error系统变量时需要注意,@@error只记录最近一次执行的transact-sql语句所发生的错误,如果最近一次执行的transact-sql没有发生错误,@@error的值为0。因此,只能在**捉的那条transact-sql语句后使用@@error。

在sql server中,不仅可以捕捉系统提供的错误,还可以自定义错误。有两种方法可以定义错误信息。

1. 使用sp_addmessage系统存储过程添加错误信息,然后使用raiserror抛出错误。

sp_addmessage将错误号,错误级别、错误描述等信息添加到系统表中,然后使用raiserror根据相应的错误号抛出错误信息。用户自定义的信息应该从50001开始。 execsp_addmessage@msgnum=50001,

@severity=16,@msgtext='sql encounter an error(%s).',@lang='us_english'execsp_addmessage@msgnum=50001,

@severity=16,@msgtext='sql遇到了一个错误(%1!).'  如果使用的sql server版本是非英语版本,在添加本地错误信息时必须首先添加英文的错误信息。

错误描述可以象c语言中的printf的格式字符串一样使用参数,如%s、%d。但要注意的是在英文版的错误信息中要使用%s、%d等形式,而在本地化的错误信息中要使用%1!、%2!

等形式,在每个%?(1 <= ? <= n)后需要加一个!

,而且%?的数目必须和英文版的错误信息的参数一致。

在未插入本地化错误信息时,raiserror将使用英文版的错误信息。当插入本地化错误信息时,raiserror使用本地化的错误信息。

raiserror(50001,16,1,'测试')

输出的结果:

服务器: 消息50001

,级别16

,状态1

,行1sql遇到了一个错误(测试).

其中'测试'字符串通过%1传入本地化的错误描述字符串中。

2. 直接使用raiserror将错误抛出。

使用第一种方法虽然使transact-sql语句看上去更整洁(这种方法类似于在编程语言中使用常量定义错误信息,然后在不同的地方通过错误编号引用这些错误信息。),但是这样做却使错误信息和数据库的耦合度增加,因为如果将这些带有raiserror的transact-sql放到别的sql server数据库上执行,由于在其它的数据库中还未添加错误信息,因此会产生raiserror调用错误,除非使用sp_addmessage将所需的错误信息再加入到其它的数据库中。

基于上述原因,raiserror不仅可以根据错误**抛出错误信息,也可以直接通过错误描述格式字符串抛出错误信息。

oracle的sql语句中列级约束和表级约束的区别

1楼 匿名用户 列级约束是你通过 主键 或者 其他的约束 针对一列的条件进行约束 是否插入数据 行级约束 类似你用触发器 对一个表 的数据是否更新 做出的约束 oracle的表级约束和列级约束的区别是什么 2楼 滴哒 列级约束 从形式上看,在每列定义完后马上定义的约束,在逗号之前就定义好了。 car...

关于sql语句里面的a.xx,和b.xx分别代表什么意思

1楼 4终 a b代表from后面的查询结果作为临时表 a,b为临时表的名字 a kecheng和b kecheng代表查询结果集 临时表 中对应的字段。操作方法如下 1 打开sql server management studio,点击新建查询,创建一个查询。 2 创建一个临时表,其中id是自增字...

使用SQL语句删除没有学生选修的课程记录

1楼 匿名用户 这个我也答了 delete from 课程 where 课程号 not in select 课程号 from 选课 使用sql语句删除没有学生选修的课程记录 2楼 匿名用户 delete from 课程 where 课程号 not in select 课程号 from 选课 3楼 匿...