SQL 和 DB2 创建命令

Posted

技术标签:

【中文标题】SQL 和 DB2 创建命令【英文标题】:SQL and DB2 create command 【发布时间】:2015-01-07 14:28:27 【问题描述】:

我正在阅读有关如何在 linux 环境中使用 DB2 的教程。

我要连接数据库,创建表,在db2 shell下插入一些数据:

db2 连接到 c3421m

db2

db2 => 使用 z ON Assignment_0.txt 更新命令选项

db2 => 使用 v ON 更新命令选项

db2 => CREATE TABLE BAND_2015 // 给出错误我卡在这里

// 这是我卡住的地方,我应该创建一个表并在 DB2 shell 下执行以下命令:CREATE TABLE BAND_2015

给出的代码:

create table band_2015 ( \

band_no integer not null primary key, \
band_name varchar(25) not null, \
band_home varchar(25) not null, \
band_type varchar(10) check (band_type in (‘concert’,’rock’,’jazz’,’military’)), \
b_start_date date not null, \
band_contact varchar(10) not null )

那么如何创建这个表呢?我被告知将其复制到文本编辑器(我是否将其保存为 band_2015.sql ?)。我对此完全陌生,但我在其他编程语言方面有很多经验......

【问题讨论】:

如果你只尝试一个单行命令会发生什么,比如“create table t1 (c1 integer not null primary key)”? db2 => create table t1 给出此错误 -> “DB21034E 该命令被作为 SQL 语句处理,因为它不是有效的命令行处理器命令。在 SQL 处理期间它返回:SQL0104N 意外标记在“create”之后找到“table”。预期的标记可能包括:“TABLESPACE”。SQLSTATE=42601” 您不必启动 clp 并从其内部进行操作。另一种方法是直接从 sh 执行 sql 命令。 IE。 db2 "create table band_2015 ( \ band_no integer not null primary key, \ band_name varchar(25) not null, \ band_home varchar(25) not null, \ band_type varchar(10) check (band_type in ('concert','rock','jazz','military')), \ b_start_date date not null, \ band_contact varchar(10) not null )"你也可以把你的sql语句放在一个文件中,并以db2 -tf myfile.sql运行它们 【参考方案1】:

问题在于终止字符。默认情况下在回车(回车)中。但是,对于您的教程,您应该键入多行命令。对于这种情况,您可以通过定义另一个来更改终止符

分号

db2 -t

select *
from table;

用于 at 符号或任何其他字符。

db2 -td@

select *
from table @

对于没有字符:

db2

select * from table

【讨论】:

【参考方案2】:

在 DB2 命令行处理器中,默认情况下命令和语句不能跨越多行,所以它把CREATE TABLE BAND_2015 当作一个完整的语句,当然不是这样。在提供给您的代码中,出现这些反斜杠是有原因的——它们向 CLP 表明该语句在下一行继续。

或者,您可以使用命令行选项-t 启动CLP,它将指定分号而不是新行作为语句终止符。然后,您可以像以前一样键入语句,不带反斜杠,并用“;”终止它。

【讨论】:

好的,基本上我只是复制每一行,如 db2 => create table band_2015 ( \ 等等在终端? 其实没关系,我现在发现了,非常感谢您提到反斜杠和终止字符

以上是关于SQL 和 DB2 创建命令的主要内容,如果未能解决你的问题,请参考以下文章

DB2常用sql命令

db2常用命令

如何为新创建的用户运行db2look命令

Windows服务器DB2数据库建库过程演示,db2创建表空间分配权限

Windows服务器DB2数据库建库过程演示,db2创建表空间分配权限

求助各位大神,小弟初学IBM DB2,求助关于数据库创建问题,多谢!!