阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 一般警察特種考試_三等_警察資訊管理人員:資料庫應用#101699
科目:公職◆資料庫應用
年份:110年
排序:0

題組內容

四、假設現有如下個人實聯制登記紀錄的關連式資料庫,請使用SQL 回答相關的子問題。
 Place(placeID, placeName, countyCity, district, address)PK:placeID
 Person(mobile, name, telecomProvider)PK:(mobile)
 EnterRecord(placeID, mobile, date, time
 PK:(placeID, mobile, date, time)
 FK:placeID ref. Place(placeID)
FK:mobile ref. Person(mobile)

申論題內容

 (一)使用 DDL 定義所有的資料表,定義中應適當表示 primary/foreign keys, 及 referential integration。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
以下是使用 SQL 的 DDL 語句來定義 Place、Person 和 EnterRecord 資料表,包括主鍵和外來鍵的定義以及參照完整性約束:
定義 Place 資料表

CREATE TABLE Place (
    placeID INT PRIMARY KEY,
    placeName VARCHAR(255) NOT NULL,
    countyCity VARCHAR(255) NOT NULL,
    district VARCHAR(255) NOT NULL,
    address VARCHAR(255) NOT NULL
);
定義 Person 資料表

CREATE TABLE Person (
    mobile VARCHAR(15) PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    telecomProvider VARCHAR(255) NOT NULL
);
定義 EnterRecord 資料表

CREATE TABLE EnterRecord (
    placeID INT,
    mobile VARCHAR(15),
    date DATE,
    time TIME,
    PRIMARY KEY (placeID, mobile, date, time),
    FOREIGN KEY (placeID) REFERENCES Place(placeID),
    FOREIGN KEY (mobile) REFERENCES Person(mobile)
);
綜合 SQL DDL 語句
以下是綜合的 SQL DDL 語句,定義所有資料表及其關聯:

CREATE TABLE Place (
    placeID INT PRIMARY KEY,
    placeName VARCHAR(255) NOT NULL,
    countyCity VARCHAR(255) NOT NULL,
    district VARCHAR(255) NOT NULL,
    address VARCHAR(255) NOT NULL
);
CREATE TABLE Person (
    mobile VARCHAR(15) PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    telecomProvider VARCHAR(255) NOT NULL
);
CREATE TABLE EnterRecord (
    placeID INT,
    mobile VARCHAR(15),
    date DATE,
    time TIME,
    PRIMARY KEY (placeID, mobile, date, time),
    FOREIGN KEY (placeID) REFERENCES Place(placeID),
    FOREIGN KEY (mobile) REFERENCES Person(mobile)
);
這些語句會創建 Place、Person 和 EnterRecord 資料表,並適當地設置主鍵和外來鍵約束以確保資料的一致性和參照完整性。