Mitarbeitertabelle in PostgreSQL erstellen

PostgreSQLBeginner
Jetzt üben

Einführung

In dieser Challenge entwerfen und erstellen Sie eine Tabelle namens employee_contacts in PostgreSQL, um Kontaktdaten von Mitarbeitern zu speichern. Dabei stellen Sie die Datenintegrität durch die Verwendung geeigneter Datentypen und Constraints sicher. Sie arbeiten in einer bereits vorbereiteten Umgebung, in der die Tabelle employees bereits vorhanden ist.

Ihre Aufgabe besteht darin, sich als Benutzer postgres über psql mit der PostgreSQL-Datenbank zu verbinden und anschließend SQL-Befehle direkt auszuführen, um die Tabelle employee_contacts anzulegen. Die Tabelle soll Spalten für contact_id (Primärschlüssel, automatisch inkrementierend), employee_id (Fremdschlüssel mit Bezug auf die Tabelle employees), phone_number (eindeutig) und email (darf nicht leer sein) enthalten.

Mitarbeitertabelle erstellen

Entwerfen Sie eine Tabelle zur Speicherung von Mitarbeiterkontaktdaten und gewährleisten Sie die Datenintegrität durch passende Datentypen und Einschränkungen (Constraints).

Die Tabelle employees wurde bereits für Sie erstellt. Falls Sie diese nicht sehen, können Sie sie mit folgendem Befehl anlegen:

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL
);

Aufgaben

  • Erstellen Sie eine Tabelle namens employee_contacts in PostgreSQL. Die Tabelle muss Spalten für contact_id (Primärschlüssel), employee_id (Fremdschlüssel auf die Tabelle employees), phone_number (eindeutig) und email (darf nicht NULL sein) enthalten.
  • Stellen Sie sicher, dass die Spalte employee_id korrekt auf die Spalte employee_id in der Tabelle employees verweist.

Anforderungen

  1. Die Spalte contact_id muss ein automatisch inkrementierender Primärschlüssel sein.
  2. Die Spalte phone_number muss eindeutige Werte enthalten (Unique).
  3. Die Spalte email darf keine NULL-Werte zulassen.
  4. Die Spalte employee_id muss als Fremdschlüssel auf die Tabelle employees definiert sein.
  5. Führen Sie die SQL-Befehle über psql aus.

Beispiele

Die Tabellen employees und employee_contacts sollten die folgende Struktur aufweisen:

Struktur der Tabellen employees und contacts
                                          Table "public.employees"
   Column    |         Type          | Collation | Nullable |                    Default
-------------+-----------------------+-----------+----------+------------------------------------------------
 employee_id | integer               |           | not null | nextval('employees_employee_id_seq'::regclass)
 first_name  | character varying(50) |           |          |
 last_name   | character varying(50) |           |          |
Indexes:
    "employees_pkey" PRIMARY KEY, btree (employee_id)
Referenced by:
    TABLE "employee_contacts" CONSTRAINT "employee_contacts_employee_id_fkey" FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
                                      Table "public.employee_contacts"
     Column     |          Type          | Collation | Nullable |                     Default
----------------+------------------------+-----------+----------+--------------------------------------------------
 contact_id     | integer                |           | not null | nextval('employee_contacts_contact_id_seq'::regclass)
 employee_id    | integer                |           |          |
 phone_number   | character varying(20)  |           |          |
 email          | character varying(100) |           | not null |
Indexes:
    "employee_contacts_pkey" PRIMARY KEY, btree (contact_id)
    "employee_contacts_phone_number_key" UNIQUE CONSTRAINT, btree (phone_number)
Foreign-key constraints:
    "employee_contacts_employee_id_fkey" FOREIGN KEY (employee_id) REFERENCES employees(employee_id)

Hinweise

  • Verwenden Sie die Anweisung CREATE TABLE, um die Tabelle zu erstellen.
  • Nutzen Sie den Datentyp SERIAL für die Spalte contact_id, um automatisch eindeutige Ganzzahlen zu generieren.
  • Verwenden Sie den Constraint PRIMARY KEY, um den Primärschlüssel festzulegen.
  • Nutzen Sie den Constraint UNIQUE, um sicherzustellen, dass die Spalte phone_number keine Duplikate enthält.
  • Verwenden Sie den Constraint NOT NULL, damit die Spalte email zwingend ausgefüllt werden muss.
  • Setzen Sie den Constraint FOREIGN KEY ein, um die Beziehung zwischen der Spalte employee_id in der Tabelle employee_contacts und der Spalte employee_id in der Tabelle employees herzustellen.
  • Denken Sie daran, sich mit sudo -u postgres psql an der PostgreSQL-Datenbank anzumelden, bevor Sie die SQL-Befehle eingeben.
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Challenge bestand die Aufgabe darin, eine PostgreSQL-Tabelle namens employee_contacts in einer vorgegebenen Umgebung zu erstellen. Dies umfasste den Entwurf der Tabellenstruktur mit Spalten für contact_id (Primärschlüssel, automatisch inkrementierend), employee_id (Fremdschlüssel mit Bezug auf die Tabelle employees), phone_number (eindeutig) und email (darf nicht NULL sein).

Zur Lösung war es notwendig, sich als Benutzer postgres via psql mit der Datenbank zu verbinden und die entsprechenden SQL-Befehle auszuführen, um die Tabelle und ihre Constraints zu definieren. Dadurch wurde die Datenintegrität und die korrekte Verknüpfung zwischen den Tabellen sichergestellt.