Erstellung einer Mitarbeitertabelle in PostgreSQL

PostgreSQLPostgreSQLBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In dieser Aufgabe entwerfen und erstellen Sie eine employee_contacts-Tabelle in PostgreSQL, um die Kontaktdaten der Mitarbeiter zu speichern und die Datenintegrität durch geeignete Datentypen und Constraints (Einschränkungen) sicherzustellen. Sie arbeiten in einer vorkonfigurierten Umgebung, in der bereits eine employees-Tabelle vorhanden ist.

Ihre Aufgabe besteht darin, sich als Benutzer postgres mit psql mit der PostgreSQL-Datenbank zu verbinden und dann SQL-Befehle direkt auszuführen, um die employee_contacts-Tabelle zu erstellen. Die Tabelle soll Spalten für contact_id (Primärschlüssel, auto-inkrementierend), employee_id (Fremdschlüssel, der auf die employees-Tabelle verweist), phone_number (eindeutig/unique) und email (nicht null/not null) enthalten.

Erstellung der Mitarbeitertabelle (Create Employee Table)

Entwerfen Sie eine Tabelle zur Speicherung von Mitarbeiterkontaktdaten und stellen Sie die Datenintegrität durch geeignete Datentypen und Constraints (Einschränkungen) sicher.

Die Tabelle employees wurde für Sie erstellt. Wenn Sie sie nicht sehen, können Sie sie mit dem folgenden Befehl erstellen:

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 soll Spalten für contact_id (Primärschlüssel), employee_id (Fremdschlüssel, der auf die employees-Tabelle verweist), phone_number (eindeutig/unique) und email (nicht null/not null) 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 auto-inkrementierender Primärschlüssel sein.
  2. Die Spalte phone_number muss eindeutig sein.
  3. Die Spalte email darf keine NULL-Werte zulassen.
  4. Die Spalte employee_id muss ein Fremdschlüssel sein, der auf die Tabelle employees verweist.
  5. Führen Sie die SQL-Befehle mit psql aus.

Beispiele

Die Tabellen employees und employee_contacts sollten die folgende Struktur aufweisen:

Structure of employees and contacts tables
                                          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 CREATE TABLE-Anweisung, um die Tabelle zu erstellen.
  • Verwenden Sie den Datentyp SERIAL für die Spalte contact_id, um automatisch eindeutige Integer-Werte zu generieren.
  • Verwenden Sie den PRIMARY KEY-Constraint (Primärschlüssel-Einschränkung), um den Primärschlüssel zu definieren.
  • Verwenden Sie den UNIQUE-Constraint (Eindeutigkeits-Einschränkung), um sicherzustellen, dass die Spalte phone_number eindeutige Werte enthält.
  • Verwenden Sie den NOT NULL-Constraint (Nicht-Null-Einschränkung), um sicherzustellen, dass die Spalte email keine NULL-Werte enthält.
  • Verwenden Sie den FOREIGN KEY-Constraint (Fremdschlüssel-Einschränkung), um eine Fremdschlüsselbeziehung zwischen der Spalte employee_id in der Tabelle employee_contacts und der Spalte employee_id in der Tabelle employees zu erstellen.
  • Denken Sie daran, sich mit sudo -u postgres psql mit der PostgreSQL-Datenbank zu verbinden, bevor Sie die SQL-Befehle ausführen.
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Aufgabe besteht die Aufgabe darin, eine PostgreSQL-Tabelle namens employee_contacts innerhalb einer bestimmten Umgebung zu erstellen. Dies beinhaltet das Entwerfen der Tabellenstruktur mit Spalten für contact_id (Primärschlüssel, auto-inkrementierend), employee_id (Fremdschlüssel, der auf die employees-Tabelle verweist), phone_number (eindeutig/unique) und email (nicht null/not null).

Die Lösung erfordert die Verbindung zur PostgreSQL-Datenbank als Benutzer postgres mit psql und die anschließende Ausführung der erforderlichen SQL-Befehle, um die Tabelle und ihre Constraints (Einschränkungen) zu definieren und so die Datenintegrität und korrekte Beziehungen zwischen den Tabellen sicherzustellen.