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系列这些都基本相同。如果要在数据库方面做高深的研究,则多看一下其自带的帮助,多练习,多看一些数据库原理方面的书。(来源:风雨人生

标签:SQL数据库,SQL基础语句,基本句法,站长之家
0
投稿

猜你喜欢

  • django实现同一个ip十分钟内只能注册一次的实例

    2021-03-07 03:13:37
  • SQL Server SQL高级查询语句小结

    2024-01-27 00:58:52
  • 零基础写python爬虫之爬虫编写全记录

    2021-09-06 22:53:27
  • javascript同页面多次调用弹出层具体实例代码

    2024-04-10 14:02:31
  • 在查询分析器理启动或停止SQL Agent服务

    2009-01-08 16:20:00
  • SQL2000 事务回滚问题探讨

    2024-01-26 19:58:37
  • Perl中的控制结构学习笔记

    2023-05-17 20:08:18
  • MySQL日志维护策略汇总

    2024-01-26 18:11:53
  • 不知道这5种下划线的含义,你就不算真的会Python!

    2021-02-03 14:38:26
  • asp分段插入数据库

    2010-07-02 13:13:00
  • banner字体设计与应用

    2009-07-06 14:42:00
  • python 实现数组list 添加、修改、删除的方法

    2021-10-21 16:27:34
  • 从web到内网渗透的一次过程详解

    2023-05-20 21:23:08
  • Django模板标签{% for %}循环,获取制定条数据实例

    2023-02-25 02:27:59
  • python开发之文件操作用法实例

    2022-08-07 02:03:45
  • 使用springboot通过spi机制加载mysql驱动的过程

    2024-01-27 09:12:26
  • 如何编写一个高效的国税系统通讯录数据库?

    2009-11-07 18:53:00
  • 2020史上最全IDEA插件总结(推荐收藏)

    2023-11-13 07:13:41
  • javascript unicode与GBK2312(中文)编码转换方法

    2024-04-17 10:09:36
  • 基于Pyinstaller打包Python程序并压缩文件大小

    2023-11-10 06:41:05
  • asp之家 网络编程 m.aspxhome.com