Sql 如何使用oracle数据库创建表

Sql 如何使用oracle数据库创建表,sql,oracle,oracle12c,Sql,Oracle,Oracle12c,晚上好,我是Oracle数据库的初学者,我想创建如下3个表,如果你能给我解释一下的话 我的数据库的体系结构: 根据您的ERD,您希望创建三个带有外键的表。下面是将创建它们的脚本 CREATE TABLE countries ( country_id NUMBER PRIMARY KEY, name_country VARCHAR2(30) ); CREATE TABLE cities ( city_id NUMBER PRIMARY KEY, name_city VARCHAR

晚上好,我是Oracle数据库的初学者,我想创建如下3个表,如果你能给我解释一下的话

我的数据库的体系结构:


根据您的ERD,您希望创建三个带有外键的表。下面是将创建它们的脚本

CREATE TABLE countries (
  country_id NUMBER PRIMARY KEY,
  name_country VARCHAR2(30)
);

CREATE TABLE cities (
  city_id NUMBER PRIMARY KEY,
  name_city VARCHAR2(30),
  country_id NUMBER,
  CONSTRAINT country_fk FOREIGN KEY (country_id)
    REFERENCES countries (country_id)
);

CREATE TABLE capital_cities (
  capital_city_id NUMBER PRIMARY KEY,
  area VARCHAR2(30),
  city_id NUMBER,
  CONSTRAINT city_fk FOREIGN KEY (city_id)
    REFERENCES cities (city_id)
);
一些解释:

  • 将表命名为复数,列命名为单数是一种很好的做法。这有助于提高可读性并创建语法衔接

  • 表应该有一个独立的主键。这有助于保持数据完整性,并使创建外键更容易

  • 我在定义列数据类型时做了一些假设。您可以更改它们以适合您的数据。最常见的Oracle数据类型是NUMBER、VARCHAR2和DATE

  • 我对表之间的关系做了一些假设。我不会称之为良好的规范化,但是您可以通过研究这个主题来了解更多关于数据库规范化的信息(这里涉及的范围太广了)

  • 使用对象表:

    创建类型country是对象(
    国家名称VARCHAR2(100)
    )不是最终的;
    创建乡村型城市(
    城市名称VARCHAR2(100)
    )不是最终的;
    创建城市下的国会大厦(
    区域VARCHAR2(100)
    );
    创建国家的表格国家;
    创建城市表格城市;
    创建国会大厦的表capitols;
    
    然后您可以像这样插入:

    插入国会大厦(国家名称、城市名称、地区)
    价值观(‘国家’、‘城市’、‘地区’);
    
    capitols
    表从其祖先类型继承了列


    谢谢您的回答,但我看不到任何继承,我指定要使用的数据库是oracle而不是MySQL服务器。语法是基于oracle的(我不知道它是否适用于MySQL)。数据库表之间没有继承(来自面向对象的定义)。Oracle数据库通常是关系数据库。对象关系映射是计算机科学中一个广泛的主题。我向您解释我想做什么。您可以看到
    首都
    表,它继承自
    城市
    表,因此我们必须在
    城市
    表中为
    控制
    表扩展
    它指的是
    城市
    table@sabaykebremso:此SQL脚本执行您要求的操作。这就是数据模型在关系数据库中的表示方式。您可能想看看的概念。