SQL和db2create命令
我正在学习一个关于如何在linux环境中使用DB2的教程 我应该连接到数据库,创建一个表,在db2 shell下插入一些数据: db2连接到c3421m db2 db2=>在赋值时使用z_0.txt更新命令选项 db2=>使用v ON更新命令选项 db2=>CREATE TABLE BAND_2015//给出了我在这里遇到的错误 //这里是我陷入困境的地方,我应该创建一个表并在DB2shell下执行以下命令:createTableBand_2015 所给代码:SQL和db2create命令,sql,database,db2,Sql,Database,Db2,我正在学习一个关于如何在linux环境中使用DB2的教程 我应该连接到数据库,创建一个表,在db2 shell下插入一些数据: db2连接到c3421m db2 db2=>在赋值时使用z_0.txt更新命令选项 db2=>使用v ON更新命令选项 db2=>CREATE TABLE BAND_2015//给出了我在这里遇到的错误 //这里是我陷入困境的地方,我应该创建一个表并在DB2shell下执行以下命令:createTableBand_2015 所给代码: create table band
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?)。我对此一无所知,但我在其他编程语言方面有很多经验…在DB2命令行处理器中,默认情况下,命令和语句不能跨越多行,因此它将
CREATE TABLE BAND_2015
视为一个完整的语句,当然情况并非如此。在给您的代码中,这些反斜杠的出现是有原因的——它们向CLP指示语句在下一行继续
或者,您可以使用命令行选项
-t
启动CLP,该选项将指定分号(而不是新行)作为语句终止符。然后,您可以按原样键入语句,而不使用反斜杠,并用“;”终止字符终止语句。默认情况下,在回车中输入。但是,对于教程,应键入多行命令。对于这种情况,可以通过定义另一个终止符来更改终止符字符
分号
db2 -t
select *
from table;
用于at符号或任何其他字符
db2 -td@
select *
from table @
对于非字符:
db2
select * from table
如果您只是尝试一行命令,比如“创建表t1(c1整数非空主键)”,会发生什么情况?db2=>CREATETABLET1给出了这个错误->“DB21034E该命令作为SQL语句处理,因为它不是有效的命令行处理器命令。在SQL处理过程中,它返回:SQL0104N在“创建”之后发现一个意外的标记“表”。预期的标记可能包括:“表空间”。SQLSTATE=42601“您不必启动clp并从clp内部执行操作。另一种方法是直接从sh执行sql命令。即
db2“创建表band\u 2015(\band\u no integer not null主键,\band\u name varchar(25)not null,\band\u home varchar(25)不为空,\n带\u类型varchar(10)检查(带\u类型输入('concert'、'rock'、'jazz'、'military')),\b\u开始日期不为空,\n带\u联系varchar(10)不为空)“
您也可以将sql语句放在一个文件中,并作为db2-tf myfile.sql运行它们
好的,所以基本上我只需在终端中复制每一行,比如db2=>create table band_2015(\等等?实际上没关系,我现在找到了,非常感谢您提到反斜杠和terminate字符