SQL基础语句总结(2)
来源:Asp之家 时间:2011-03-11 14:54:00
1.2打开其它数据源
/* OracleSvr为链接服务器名 ,本示例假定已经创建了一个名为 ORCLDB 的 Oracle 数据库别名。*/
EXEC sp_addlinkedserver 'OracleSvr', --链接服务器名OracleSvr,sysname类型
'MSDAORA', --provider_name数据源提供程序,此处为oracle
'ORCLDB' --数据源名称
GO
Select * from OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
如果有多个sql server实例:
SELECT *FROM [servername\instancename.]pubs.dbo.authors.
注意:一个对象的完整名称包括四个标识符:服务器名称、数据库名称、所有者名称和对象名称。其格式如下:
[ [ [ server. ] [ database ] .] [ owner_name ] .] object_name
中间的名称可以省略,但是.不可以省略。如:server…object_name
2.update
2.1多表更新
Update table1 set table1.field 1=table2.field2 from
table1,table2 /*猜测下连接方式全联接 FULL [OUTER] JOIN */
where table1.field3= table2 .filed3
知识:SQL Server的update语句中from后可跟多个表,Oracle则不支持该用法
Oracle 中:Update table1 set table1.field1=
(select table2.field2 from table2 where .field3= table2 .filed3)
3.insert
3.1 插入语句的规范问题
在sql server 2000,sql server 2005中
标准语句:insert into table(field) values (value)
提示:在access中不正确,原因sql语句不规范,因此在书写sql语句的过程中一定要按正规的语法来写。
4.delete
4.1标准删除
标准语句:delete from table where condition
提示:同insert
4.2其它删除
4.2.1 truncate
语法:truncate table table_name
删除表中所有行,不记录单个行删除操作,不记录日志,,所有速度比Delete快。
4.2.2 drop
语句: Drop table table_name
删除表及相关,有fk约束的不能删,先去年fk;系统表不能使用。
5.order by
功能:排序
技巧:order by newid() 随机排序
四. 动态SQL语句
4.1基本原则
4.1.1预编译问题
在EXECUTE执行之前,数据库不会编译 EXECUTE 语句内的语句,动态SQL语句就是放到存储过程中,它也不会预先编译。
4.1.2什么时候使用动态SQL语句
字段名,表名,数据库名作为变量时,必须用动态SQl语句
4.2.exec[ute]
4.2.1语法
exec (‘select * from table_name where name=’’’+@name+’’’’) --括号不能少
4.2.2传递参数
--假设存储过程test_sp中需要一个参数:类型nvarchar(50) 名称 @parm
Declare @parms nvarchar(50)
Set @parms=’测试变量’
Exec test_sp [@parm=]@parms –方括号内的可以省略
如果是批处理中的第一句,则可以省略Exec
4.2.3输出参数
declare @num int, @field int,
@sqls nvarchar(4000)
Set @field=1
set @sqls='select @a=count(*) from table_name where field=@field'
exec sp_executesql @sqls,N'@a int output,@field int',@num output ,@field
select @num
4.3.sp_executesql
语法:exec[ute] sp_executesql N’select * from table_name where field=@field’,N’@field int’,@field=1
使用sp_exexutesql比使用exec更有效率.
结束语:以上是SQL中常用的语句,及其执行时的顺序。不管是SQL Server系列,mysql,access,Oracle系列这些都基本相同。如果要在数据库方面做高深的研究,则多看一下其自带的帮助,多练习,多看一些数据库原理方面的书。(来源:风雨人生)