Database 与下面描述的问题相对应的以下SQL查询有什么问题?

Database 与下面描述的问题相对应的以下SQL查询有什么问题?,database,oracle,oracle11g,Database,Oracle,Oracle11g,为下面描述的属性创建具有适当数据类型的购物者表 列名称约束属性的描述如下所示-- Shopperid主键购物者的唯一id。例如2001年、2003年 ShopperName不能为购物者的空名称。不能超过20个字符。 性别应仅为购物者的“男性”或“女性”。不能超过6个字符。 MobileNoNotNull数字形式的购物者手机号码。不允许使用括号和连字符等字符。 购物者的地址。它不能超过50个字符。前纽约艾伦街 create table shopper(shopperid integer prima

为下面描述的属性创建具有适当数据类型的购物者表

列名称约束属性的描述如下所示--

Shopperid主键购物者的唯一id。例如2001年、2003年 ShopperName不能为购物者的空名称。不能超过20个字符。 性别应仅为购物者的“男性”或“女性”。不能超过6个字符。 MobileNoNotNull数字形式的购物者手机号码。不允许使用括号和连字符等字符。 购物者的地址。它不能超过50个字符。前纽约艾伦街

create table shopper(shopperid integer primary key, shoppername varchar2(20) not null, gender varchar2(6) check (gender in ('Male', 'Female')), mobileno number(10) not null, address varchar2(50));
但是我正在练习的门户网站给了我这个信息-- 错误:您的查询不符合要求。请检查数据类型


谁能帮我弄清楚我遗漏了什么?任何形式的帮助或建议都将不胜感激

唯一可能出错的是电话号码。目前,它允许这样做:

SQL> create table shopper
  2    (shopperid   integer primary key,
  3     shoppername varchar2(20) not null,
  4     gender      varchar2(6) check (gender in ('Male', 'Female')),
  5     mobileno    number(10) not null,
  6     address     varchar2(50)
  7    );

Table created.

SQL> insert into shopper (shopperid, shoppername, gender, mobileno, address) values
  2    (1, 'x', 'Male', 0.0013, 'y');

1 row created.

SQL>
0.0013是什么类型的手机号码?可能应该是整数。

创建表购物者 ShopperId整数主键, ShopperName VARCHAR220不为空, 性别字符6勾选“男”、“女”中的性别, MobileNo编号不为空, 地址:VARCHAR250


上面的语法对我很有用。

列性别的数据类型是问题所在,将VARCHAR26更改为CHAR6,这样它就可以正常工作了

create table shopper
     (shopperid   integer primary key,
      shoppername varchar2(20) not null,
      gender      char(6) check (gender in ('Male', 'Female')),
      mobileno    integer not null,
      address     varchar2(50)
     );
它将正常工作

创建表购物者 shopperid号主键, shopperName varchar20不为空, 性别特征6, Mobileno编号不为空, 地址:varchar50, 约束CHK_性别检查“男”、“女”中的性别 ;
这是正确的,但我也尝试过整数,但它引发了相同的错误。我用不同的组合检查了多次,但没有一个有效。这就是为什么我要向你们这些高手寻求帮助。好吧,语法并没有问题,否则表就不会被创建。我也不认为你们的任务有什么不对。就我而言,除了电话号码之外,你做得对。没问题;如果您发现了什么问题,请告诉我们。@forpas是的,我正在使用Oracle 11g Express Edition数据库。我试图添加该标签,但无法添加,因为它需要至少1500个声誉!CREATE表格末尾是否需要分号?与SQLPlus和SQLDeveloper不同的一些工具不喜欢终止分号,并且在找到分号时可能会产生误导性错误。@cdub不是,但问题在于我使用的数据类型。他们想要不同的东西。但区别在哪里,我自己无法找出。错误表明问题出在数据类型上,但实际问题可能是由于其他原因。您是否尝试过创建没有约束的表?如果仍然出现错误,那么创建一个只有一列且没有约束的表怎么样?这些都有用吗?您可以从尝试创建最基本的表开始,然后逐渐添加更多的列和约束,直到找到错误为止。@cdub这将不起作用,因为创建带有单个属性或不带约束的表时,仍然会说这些要求没有得到满足,因为它们只显示“祝贺您!”!您的查询工作正常。“在100%正确完成任务后。一个好的答案总是包括对它如何解决问题的解释,以便任何未来的读者可以从中学习。此答案与[另一个答案]非常相似,如上所述,不包含对问题的解释和答案。