2016-10-25 99 views
0

我是学习SQL的新手,一直在努力为任务创建表。这些是要求:使用Oracle在SQL中创建表11G

创建一个新表来跟踪库位置。

  • LIBRARY(lib_id,lib_name,lib_address,lib_city,lib_state,lib_zip)

  • LIB_ID是库ID - 它是一个自动生成的数字。 (您应该创建一个名为lib_id_seq的序列号,以1001开始并以1递增。)

  • LIB_ID是主键。
  • LIB_NAME,LIB_ADDRESS和LIB_CITY的长度介于1到35个字符之间。
  • LIB_STATE是2个字符 - 默认为TX。
  • LIB_ZIP是5个数字。检查以下邮政编码之一 - 75081,75080,75082,75079,75078

而这正是我写了这么远:

CREATE TABLE LIBRARY 
(
    LIB_ID INT(4), 
    LIB_ADDRESS VARCHAR(35), 
    LIB_CITY VARCHAR(35), 
    LIB_STATE VARCHAR(2) DEFAULT ‘TX’, 
    LIB_ZIP INT(5) CHECK (Frequency IN ('75078', ‘75079', '75080', '75081', ‘75082’)) 
    PRIMARY KEY(LIB_ID) 
); 

CREATE SEQUENCE LIB_ID_SEQ 
START WITH 1001 
INCREMENT BY 1; 

我不断收到错误,但我不确定我需要解决的问题。

+2

那么你标记的3个不同的数据库管理系统,为所有这些事情的语法会有所不同。当然,你说你正在犯错误。如果您分享错误消息,我们不必猜测。 –

+0

对不起,只需点击推荐的标签即可。这写在Oracle 11G –

+0

在[Oracle手册](https://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm)中,您是否找到语法“int(4)' ?。在SQL中'''和'''也是无效的。你需要使用一个简单的单引号''' –

回答

0

这适用于SQL Server。您需要相应地修改相关数据库的语法。

CREATE TABLE LIBRARY 

(
LIB_ID INTEGER PRIMARY KEY, 

LIB_ADDRESS VARCHAR(35), 

LIB_CITY VARCHAR(35), 

LIB_STATE VARCHAR(2) DEFAULT 'TX', 

LIB_ZIP INTEGER, 

CHECK(LIB_ZIP IN ('75078', '75079', '75080', '75081', '75082')) 

); 


CREATE SEQUENCE LIB_ID_SEQ 

START WITH 1001 

INCREMENT BY 1; 

要了解如何创建表格和约束,请在w3schools上查看此链接,因为您似乎是初学者。

http://www.w3schools.com/sql/sql_primarykey.asp 
1

对于Oracle(儿童测试不确定的,如果SO批准)...

  • 使用VARCHAR2而不是VARCHAR,而不是INT
  • 使用数字加约束语法(它们命名)
  • 调整撇号的(删除),而不是无论你在其中一些人有什么:P(这是一个数字字段不应该使用文本撇号!)
  • 个人我不会指定一个表库,因为这是一个reserved word
  • 我不会使用数字邮政编码,因为我们绝不会在邮政编码上做数学运算。

。 。

CREATE TABLE LIBRARY (
LIB_ID Number(4), 
LIB_ADDRESS VARCHAR2(35), 
LIB_CITY VARCHAR2(35), 
LIB_STATE VARCHAR2(2) DEFAULT 'TX', 
LIB_ZIP NUMBER(5), 
CONSTRAINT Lib_ZIP_CON CHECK (LIB_ZIP IN (75078, 75079, 75080, 75081, 75082)), 
CONSTRAINT LIB_ID_PK PRIMARY KEY(LIB_ID) 
); 

CREATE SEQUENCE LIB_ID_SEQ 
START WITH 1001 
INCREMENT BY 1; 

enter image description here

+0

我没有设置序列,但您可以看到TX是默认的,并且我没有第二个记录(这是由于邮政编码违反了检查约束。 – xQbert