⑴ sql语句之间加上"分号",起什么作用
英文分号表示一个SQL语句的结尾。
单个SQL语句的情况下一般使不使用无所谓,执行多条SQL语句的情况下就应该使用,这样可以告诉数据库引擎提交的是多条SQL语句,以免报错。
⑵ db2中怎么根据条件执行sql
不能这样执行,只能将这些语句加到存储过程当中,但存储过程的语句是有限制的,例如上面的drop table 就不能运行。
⑶ sql语句分号的作用,sql不支持多句的意思
多句可以直接写在一起,不需要分号
分号是某种特定的编程软件所有的,并不是标准的SQL语法
比如MSSQL多句可以这样写
select * from A select * from B
直接接起来,不需要分号
⑷ DB2问题,程序运行时不定时出现以下sql报错问题!
sqlcode=-203,
sqlstate=42702
这是模糊列引用,造成,order
by
id
的id不能明确是a还是b表。一般查询不出就是不等于某值时没有数据,并不一定代表语句错误。在sql语句中不等于有两种用法,一种是"<>",一种是"!="(均不含引号)。
具体如下:
1、简介
结构化查询语言(structured
query
language)简称sql,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;sql
语句就是对数据库进行操作的一种语言。
2、sql语句
更新:update
table1
set
field1=value1
where
范围
查找:select
*
from
table1
where
field1
like
'%value1%'
(所有包含'value1'这个模式的字符串)
排序:select
*
from
table1
order
by
field1,field2
[desc]
求和:select
sum(field1)
as
sumvalue
from
table1
平均:select
avg(field1)
as
avgvalue
from
table1
最大:select
max(field1)
as
maxvalue
from
table1
最小:select
min(field1)
as
minvalue
from
table1[separator]
⑸ DB2数据库,执行sql为什么加上引号就执行不了,,,而且还要一条一条的执行
使用的是db2工具还是命令行?
如果是shell命令下,在连接数据库后可通过db2 "sql" 执行;
如果是db2命令下,可直接输入sql执行;
如果使用db2工具,一般可直接输入sql执行。
⑹ db2中sql语句问题
因为replace('01,02,03','''','')最后得到的还是一个字符串
原来是 where 机构 in ('‘’01,02,03'‘’)
现在变成了 where 机构 in (’01,02,03')
可以把要执行的 SQL语句 赋值一个字符串变量中,然后运行字符串
如:
DECLARE sql VARCHAR(255);
SET sql = 'SELECT field INTO V_A FROM ' || tablename;
PREPARE s1 FROM sql;
EXECUTE s1;
⑺ 如何在db2命令行运行sql必知必会例子
db2 => connect to dbName user xxx using password
db2 => sql语句
如果要执行一个sql脚本文件:
db2 => quit
c:\> db2 -tvf sql文件名
db2 -td@ -f filename
@是语句结束符。
E:\>db2 ? options
db2 [option ...] [db2-command | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
option:-a、-c、-e{c|s}、-finfile、-lhistfile、-n、-o、-p、-rreport、-s、-t、
-td;、-v、-w、-x 和 -zoutputfile。
选项 描述 缺省设置
------ ---------------------------------------- ---------------
-a 显示 SQLCA OFF
-c 自动落实 ON
-e 显示 SQLCODE/SQLSTATE OFF
-f 读取输入文件 OFF
-l 将命令记录到历史文件中 OFF
-n 除去换行字符 OFF
-o 显示输出 ON
-p 显示 db2 交互式提示符 ON
-r 将输出报告保存到文件 OFF
-s 在命令出错时停止执行 OFF
-t 设置语句终止字符 OFF
-v 回送当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
注意:
使用 DB2OPTIONS 环境变量定制选项缺省值。
紧跟选项字母后的减号(-)使该选项关闭。
使用 UPDATE COMMAND OPTIONS 更改选项设置(以交互式或
文件输入方式)。
只能提供nt环境下编写脚本的例子给你以供参考:
脚本样例:
db2 connect to yourdb user yourname using yourpassword
db2 insert into newuser(username,password,email) values('Amy','1234','[email protected]')
db2 insert into newuser(username,password,email) values('Judy','1234','[email protected]')
db2 commit
db2 disconnect yourdb
运行脚本: 运行db2cmd X:\XXX.bat
以下摘自本论坛的FAQ可参考:
"
在命令窗口中运行DB2脚本,可用 db2 -svtf 脚本文件名 来实现。
例如,脚本文件名为sample.sql,运行:db2 -svtf sample.sql
参数中:
s 代表遇到错误时中止运行脚本
v 代表输出结果到屏幕
t 指以;号作为每行的分隔符
f 指后面需跟脚本文件名 "---此摘录版权归斑竹非本人所有
具体在AS400如何编写脚本非常遗憾.
db2 -x select SERIALNO from tabname where clause
C:>db2 attach to db2164 user ccp
输入 ccp 的当前密码:
实例连接信息
实例服务器 = DB2/NT 8.2.0
授权标识 = CCP
本地实例别名 = DB2164
C:>db2 connect to dw164 user ccp
输入 ccp 的当前密码:
数据库连接信息
数据库服务器 = DB2/NT 8.2.0
SQL 授权标识 = CCP
本地数据库别名 = DW164
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
CUST_ID NOW_PRED_S LOAD_TIME
-------------------- -------------------- --------------------------
3094736. ZFS 2008-05-07-10.02.00.453000
3145886. ZFS 2008-05-07-10.02.00.453000
2 条记录已选择。
C:>db2 list command options
命令行处理器选项设置
后端进程等待时间(秒) (DB2BQTIME) = 1
连接至后端的重试次数 (DB2BQTRY) = 60
请求队列等待时间(秒) (DB2RQTIME) = 5
输入队列等待时间(秒) (DB2IQTIME) = 5
命令选项 (DB2OPTIONS) = +m
选项 描述 当前设置
------ ---------------------------------------- ---------------
-a 显示 SQLCA OFF
-c 自动落实 ON
-d 检索并显示 XML 声明 OFF
-e 显示 SQLCODE/SQLSTATE OFF
-f 读取输入文件 OFF
-i 显示 XML 数据并带有缩进 OFF
-l 将命令记录到历史记录文件中 OFF
-m 显示受影响的行数 OFF
-n 除去换行字符 OFF
-o 显示输出 ON
-p 显示交互式输入提示符 ON
-q 保留空格和换行符 OFF
-r 将输出保存到报告文件 OFF
-s 在命令出错时停止执行 OFF
-t 设置语句终止字符 OFF
-v 回传当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
C:>db2set DB2OPTIONS=-x
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
4654908. ZFS 2008-05-07-10.02.00.453000
3716687. ZFS 2008-05-07-10.02.00.453000
⑻ 如何用db2输入SQL命令
可以在命令编辑器或者Windows
的DB2
命令窗口或者
Linux
的shell
中执行SQL
脚本。在windows
的DB2
命令窗口或者
linux
的shell
中执行SQL语句,可以使用下面的命令执行script1.sql脚本:
db2
-t
-v
-f
script1.sql
-z
script1.log
或者:
db2
–tvf
script1.sql
–z
script1.log
在上面的命令中,
-t
表示语句使用默认的语句终结符——分号;
-v
表示使用冗长模式,这样
DB2
会显示每一条正在执行命令的信息;
-f
表示其后就是脚本文件;
-z
表示其后的信息记录文件用于记录屏幕的输出,方便以后的分析(这是可选的,但建议使用该选项)。
当使用了-t选项而没有标明语句终结符,则分号(;)会默认为语句的终结符。有时可能会出现使用另外的终结符的情况,例如用SQL
PL
编写的的脚本使用其它的符号而不是默认的分号,因为分号在SQL
PL
是用于定义数据库对象过程中的语句结束。