Einführung
In diesem Projekt lernst du, wie du verschiedene Einschränkungen in einem Datenbank-Schema hinzufügen kannst, einschließlich Primärschlüssel, Fremdschlüssel, eindeutige Einschränkungen, Standardwerte und Prüf-Einschränkungen. Am Ende dieses Projekts wirst du einen besseren Überblick haben, wie du in einer relationalen Datenbank Datenintegritätsregeln entwirfst und durchsetzt.
👀 Vorschau

🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du einen zusammengesetzten Primärschlüssel auf der
salgrade-Tabelle erstellst - Wie du einen Fremdschlüssel auf dem
deptno-Feld in deremp-Tabelle angibst - Wie du eine eindeutige Einschränkung verwendest, um Duplikate im
ename-Feld in deremp-Tabelle zu vermeiden - Wie du einen Standardwert für das
comm-Feld in deremp-Tabelle setzt - Wie du eine Prüf-Einschränkung verwendest, um das Eintragen von Einstellungsdatum nach dem 28. Februar 2022 im
hiredate-Feld in deremp-Tabelle zu verhindern
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Die Wichtigkeit von Datenintegritätseinschränkungen in der Datenbank-Entwicklung zu verstehen
- Verschiedene Arten von Einschränkungen in einer MySQL-Datenbank umzusetzen
- Best Practices für die Aufrechterhaltung von Datenqualität und -konsistenz anzuwenden
- Probleme mit Datenbank-Einschränkungen zu beheben und zu debuggen
Starte den MySQL-Server und importiere die Datenbank
In diesem Schritt lernst du, wie du den MySQL-Dienst startest und die personnel.sql-Datenbank importierst. Folge den Schritten unten, um diesen Schritt abzuschließen:
Starte MySQL:
sudo /etc/init.d/mysql startImportiere die
personnel.sql-Datenbank in MySQL. Du kannst dies tun, indem du den folgenden Befehl in deinem Terminal ausführst:mysql -u root < /home/labex/project/personnel.sql
Dieser Befehl wird die personnel.sql-Datenbank mit dem Root-Benutzer in MySQL importieren.
Füge einen zusammengesetzten Primärschlüssel zur Tabelle 'salgrade' hinzu
In diesem Schritt lernst du, wie du einen zusammengesetzten Primärschlüssel zur salgrade-Tabelle hinzufügen kannst. Folge den Schritten unten, um diesen Schritt abzuschließen:
Melde dich am MySQL-Terminal an:
mysql -urootVerwende die
personnel-Datenbank:USE `personnel`;Füge einen zusammengesetzten Primärschlüssel zur
salgrade-Tabelle hinzu, wobei die Feldergrade,losalundhisalals zusammengesetzter Primärschlüssel verwendet werden:ALTER TABLE salgrade ADD PRIMARY KEY (grade, losal, hisal);
Dadurch wird ein zusammengesetzter Primärschlüssel auf der salgrade-Tabelle erstellt, der die Felder grade, losal und hisal verwendet.
Füge Einschränkungen zur Tabelle 'emp' hinzu
In diesem Schritt wirst du lernen:
- Wie du einen Fremdschlüssel auf dem 'deptno'-Feld in der 'emp'-Tabelle angibst, der auf das 'deptno'-Feld in der 'dept'-Tabelle verweist.
- Wie du eindeutige Einschränkungen verwendest, um die Duplizierung des 'name'-Felds in der 'emp'-Tabelle zu verhindern.
- Wie du die Standardwert-Einschränkung verwendest, um den Standardwert des 'comm'-Felds in der 'emp'-Tabelle auf 100 zu setzen.
- Wie du die Eingabe eines Einstellungsdatums nach dem 28. Februar 2022 im 'hiredate'-Feld der 'emp'-Tabelle mithilfe der Prüf-Einschränkung verhindern.
Folge den Schritten unten, um diesen Schritt abzuschließen.
Verwende die
personnel-Datenbank:USE `personnel`;Gib einen Fremdschlüssel auf dem
deptno-Feld in deremp-Tabelle an, der auf dasdeptno-Feld in derdept-Tabelle verweist:ALTER TABLE emp ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);Verwende eine eindeutige Einschränkung, um Duplikate im
ename-Feld in deremp-Tabelle zu verhindern:ALTER TABLE emp ADD UNIQUE (ename);Verwende eine Standardwert-Einschränkung, um den Standardwert des
comm-Felds in deremp-Tabelle auf 100 zu setzen:ALTER TABLE emp ALTER COLUMN comm SET DEFAULT 100;Verwende eine Prüf-Einschränkung, um die Eingabe von Einstellungsdatum nach dem 28. Februar 2022 im
hiredate-Feld in deremp-Tabelle zu verhindern:ALTER TABLE emp ADD CHECK (hiredate <= '2022-02-28');
Zeige die Tabellenstruktur an
In diesem Schritt wirst du Befehle verwenden, um die Struktur der Tabellen salgrade und emp anzuzeigen:
Zeige die Struktur der Tabelle
salgradean:desc salgrade;Zeige die Struktur der Tabelle
empan:desc emp;
Du solltest die folgende Ausgabe sehen:
MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Feld | Typ | Null | Schlüssel | Standardwert | Zusatz |
+-------+-------------+------+-----+---------+-------+
| grade | int(4) | Nein | PRI | NULL | |
| losal | double(7,2) | Nein | PRI | NULL | |
| hisal | double(7,2) | Nein | PRI | NULL | |
+-------+-------------+------+-----+---------+-------+
3 Zeilen in Satz (0,001 Sekunden)
MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Feld | Typ | Null | Schlüssel | Standardwert | Zusatz |
+----------+-------------+------+-----+---------+-------+
| empno | int(4) | Nein | PRI | NULL | |
| ename | varchar(20) | Ja | UNI | NULL | |
| job | varchar(20) | Ja | | NULL | |
| mgr | varchar(20) | Ja | | NULL | |
| hiredate | date | Ja | | NULL | |
| sal | double(7,2) | Ja | | NULL | |
| comm | double(7,2) | Ja | | 100,00 | |
| deptno | int(4) | Ja | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
8 Zeilen in Satz (0,001 Sekunden)
Herzlichen Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.



