如何使用oracle数据库创建table
How to create table using oracle database
晚上好,我是 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。
我对你的表之间的关系做了一些假设。我不会称之为良好的规范化,但您可以通过研究该主题来了解有关数据库规范化的更多信息(它太广泛,无法在此处涵盖)。
使用对象 Table:
CREATE TYPE country IS OBJECT (
country_name VARCHAR2(100)
) NOT FINAL;
CREATE TYPE city UNDER country (
city_name VARCHAR2(100)
) NOT FINAL;
CREATE TYPE capitol UNDER city (
area VARCHAR2(100)
);
CREATE TABLE countries OF country;
CREATE TABLE cities OF city;
CREATE TABLE capitols OF capitol;
然后你可以这样插入:
INSERT INTO capitols ( country_name, city_name, area )
VALUES ( 'Country', 'City', 'Area' );
并且 capitols
table 继承了其祖先类型的列。
晚上好,我是 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。
我对你的表之间的关系做了一些假设。我不会称之为良好的规范化,但您可以通过研究该主题来了解有关数据库规范化的更多信息(它太广泛,无法在此处涵盖)。
使用对象 Table:
CREATE TYPE country IS OBJECT (
country_name VARCHAR2(100)
) NOT FINAL;
CREATE TYPE city UNDER country (
city_name VARCHAR2(100)
) NOT FINAL;
CREATE TYPE capitol UNDER city (
area VARCHAR2(100)
);
CREATE TABLE countries OF country;
CREATE TABLE cities OF city;
CREATE TABLE capitols OF capitol;
然后你可以这样插入:
INSERT INTO capitols ( country_name, city_name, area )
VALUES ( 'Country', 'City', 'Area' );
并且 capitols
table 继承了其祖先类型的列。