Die nachfolgende Darstellung legt eine Installation des Datenbankmanagementsystems MySQL ab Version 4.1 auf einer Linux-Maschine zugrunde. Die gezeigten Aufrufe sollten sich jedoch, nach Anpassung der Pfadangaben und Parametersyntax auch auf die übrigen Plattformen (etwa: Microsoft Windows) übertragen lassen.
Laden Sie sich den Quellcode des Datenbankmanagementsystems
oder eine der verfügbaren vorübersetzten Binärdistributionen von der
Seite des Herstellers.
Achten Sie darauf, mindestens Version 4.1 zu beziehen!
Hinweis: Für den Praktikumsbetrieb genügt der Bezug des vorübersetzten Paketes völlig.
Darüber hinaus ist das DBMS bereits auf den zur Verfügung stehenden Maschinen vorinstalliert
und muß nicht mehr durch Sie bezogen werden. Dieser Schritt kann daher entfallen.
Installieren Sie MySQL gemäß der Angaben im Angaben im Installationshandbuch.
Hinweis: Auf den Praktikumsmaschinen ist das DBMS bereits vorinstalliert,
dieser Schritt kann daher entfallen.
Nachfolgend wird von einer Installation des DBMS in den Katalog /usr/local/mysql
ausgegangen, bzw.
von der entsprechenden Definition eines symbolischen Links. Sollten Sie MySQL an anderer Stelle
im Dateisystem installiert haben, so ändern sich die Pfade entsprechend.
Wir werden später Funktionalitäten (insbesondere die Mechanismen zur Erhaltung der referentiellen Integrität)
nutzen, die gesondert aktiviert werden müssen.
Modifizieren Sie hierfür die Datei
/etc/my.cnf
folgendermaßen:
Fügen Sie mit einem Texteditor (z.B. vi) im Abschnitt
[mysqld]
der Datei folgende Zeile ein:
innodb_data_file_path =
ibdata1:10M:autoextend
.
Sollte die Datei my.cnf
noch nicht im
Katalog /etc
existieren, so können Sie diese
durch kopieren und umbenennen der Datei
/usr/local/mysql/support-files/my-medium.cnf
erzeugen.
Notwendige Schritte:cp /usr/local/mysql/support-files/my-medium.cnf
/etc/my.cnf
Hinweis: Aufgrund des Kopiervorganges in den
nur für den Benutzer root
schreibberechtigten
Katalog /etc
muß der Kopiervorgang durch
diesen Benutzer erfolgen.
Der Benutzer root
startet MySQL durch
Ausführung des Befehls ./bin/mysqld_safe
--default-table-type=InnoDB
im Katalog
/usr/local/mysql
.
Danach steht das DBMS anderen Systembenutzern zur
Verfügung.
Hinweis: Im Praktikumsbetrieb ist das DBMS bereits gestartet und muß nicht mehr durch Sie erfolgen.
Melden Sie sich hierzu mir Ihrer persönlichen Benutzerkennung am System an!
Durch den Datenbankadministrator (standardmäßig als
root
benannt und durch kein Paßwort
gesichert.
Hinweis: Im Praktikumsbetrieb ist Ihre Datenbank bereits unter dem Namen Ihrer Praktikumsgruppe erzeugt und muß nicht mehr durch Sie erstellt werden, dieser Teilschritt kann daher entfallen.
Ausführen: mysqladmin -u root create
DBName
Achten Sie darauf, daß sich mysqladmin
im Pfad befindet!
Modifizieren Sie zunächst das Berechtigungsskript so, daß statt IHR_NAME Ihre Benutzerkennung dort eingetragen ist.
Führen Sie dieses Skript mittels mysql -u root
< grants.sql
aus.
Hinweis: Für das Praktikum wurde das Skript bereits für alle Mitglieder Ihrer Praktikumsgruppe zur Ausführung gebracht und muß daher nicht mehr durch Sie aufgerufen werden!
Laden Sie den Datenbankinhalt (Relationen und darin
abgelegte Beispieldaten) mit mysql Datenbankname
<
demo-db.sql
in Ihre Datenbank.
Hinweis: Ersetzen Sie Datenbankname durch den Namen Ihrer Praktikumsgruppe!
EMPLOYEE
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
| John | B | Smith | 123456789 | 1965-01-09 | 731 Fondren, Houston, TX | M | 30000.00 | 333445555 | 5 |
| Franklin | T | Wong | 333445555 | 1955-12-08 | 638 Voss, Houston, TX | M | 40000.00 | 888665555 | 5 |
| Joyce | A | English | 453453453 | 1972-07-31 | 5631 Rice, Houston, TX | F | 25000.00 | 333445555 | 5 |
| Ramesh | K | Narayan | 666884444 | 1962-09-15 | 975 Fire Oak, Humble, TX | M | 38000.00 | 333445555 | 5 |
| James | E | Borg | 888665555 | 1937-11-10 | 450 Stone, Houston, TX | M | 55000.00 | NULL | 1 |
| Jennifer | S | Wallace | 987654321 | 1941-06-20 | 291 Berry, Bellaire, TX | F | 43000.00 | 888665555 | 4 |
| Ahmad | V | Jabbar | 987987987 | 1969-03-29 | 980 Dallas, Houston, TX | M | 25000.00 | 987654321 | 4 |
| Alicia | J | Zelaya | 999887777 | 1968-07-19 | 3321 Castle, Spring, TX | F | 25000.00 | 987654321 | 4 |
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
DEPT_LOCATIONS
+---------+-----------+
| DNUMBER | DLOCATION |
+---------+-----------+
| 1 | Houston |
| 4 | Stafford |
| 5 | Bellaire |
| 5 | Houston |
| 5 | Sugarland |
+---------+-----------+
DEPARTMENT
+---------------+---------+-----------+--------------+
| DNAME | DNUMBER | MGRSSN | MGRSTARTDATE |
+---------------+---------+-----------+--------------+
| Headquarters | 1 | 888665555 | 1981-06-19 |
| Administation | 4 | 987654321 | 1995-01-01 |
| Research | 5 | 333445555 | 1988-05-22 |
+---------------+---------+-----------+--------------+
WORKS_ON
+-----------+-----+-------+
| ESSN | PNO | HOURS |
+-----------+-----+-------+
| 123456789 | 1 | 32.5 |
| 123456789 | 2 | 7.5 |
| 333445555 | 2 | 10.0 |
| 333445555 | 3 | 10.0 |
| 333445555 | 10 | 10.0 |
| 333445555 | 20 | 10.0 |
| 453453453 | 1 | 20.0 |
| 453453453 | 2 | 20.0 |
| 666884444 | 3 | 40.0 |
| 888665555 | 20 | NULL |
| 987654321 | 20 | 15.0 |
| 987654321 | 30 | 20.0 |
| 987987987 | 10 | 35.0 |
| 987987987 | 30 | 5.0 |
| 999887777 | 10 | 10.0 |
| 999887777 | 30 | 30.0 |
+-----------+-----+-------+
PROJECT
+-----------------+---------+-----------+------+
| PNAME | PNUMBER | PLOCATION | DNUM |
+-----------------+---------+-----------+------+
| ProductX | 1 | Bellaire | 5 |
| ProductY | 2 | Sugarland | 5 |
| ProductZ | 3 | Houston | 5 |
| Computerization | 10 | Stafford | 4 |
| Reorganization | 20 | Houston | 1 |
| Newbenefits | 30 | Stafford | 4 |
+-----------------+---------+-----------+------+
DEPENDENT
+-----------+----------------+------+------------+--------------+
| ESSN | DEPENDENT_NAME | SEX | BDATE | RELATIONSHIP |
+-----------+----------------+------+------------+--------------+
| 333445555 | Alice | F | 1986-04-05 | |
| 333445555 | Theodore | M | 1983-10-25 | SON |
| 333445555 | Joy | F | 1958-05-03 | SPOUSE |
| 987654321 | Abner | M | 1942-02-28 | SPOUSE |
| 123456789 | Michael | M | 1988-01-04 | SON |
| 123456789 | Alice | F | 1988-12-30 | |
| 123456789 | Elizabeth | F | 1967-05-05 | SPOUSE |
+-----------+----------------+------+------------+--------------+
Alle nachfolgend aufgeführten Anfragen werden in der
interaktiven MySQL-Clientumgebung unter der persönlichen
Systemkennung ausgeführt.
Die Clientumgebung wird mit mysql
Datenbankname
gestartet und fordert durch
den Prompt mysql>
zur Eingabe auf.
Beendet wird der Client das Kommando exit
.
Anfrage: DESCRIBE EMPLOYEE;
+----------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+-------+
| FNAME | varchar(10) | | | | |
| MINIT | char(1) | YES | | NULL | |
| LNAME | varchar(10) | | | | |
| SSN | int(9) | | PRI | 0 | |
| BDATE | date | YES | | NULL | |
| ADDRESS | varchar(20) | YES | | NULL | |
| SEX | enum('M','F') | YES | | NULL | |
| SALARY | double(7,2) unsigned | YES | | NULL | |
| SUPERSSN | int(9) | YES | MUL | NULL | |
| DNO | int(1) | YES | MUL | NULL | |
+----------+----------------------+------+-----+---------+-------+
EMPLOYEE
Anfrage:SELECT * FROM
EMPLOYEE;
Ausgabe:
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
| John | B | Smith | 123456789 | 1965-01-09 | 731 Fondren, Houston, TX | M | 30000.00 | 333445555 | 5 |
| Franklin | T | Wong | 333445555 | 1955-12-08 | 638 Voss, Houston, TX | M | 40000.00 | 888665555 | 5 |
| Joyce | A | English | 453453453 | 1972-07-31 | 5631 Rice, Houston, TX | F | 25000.00 | 333445555 | 5 |
| Ramesh | K | Narayan | 666884444 | 1962-09-15 | 975 Fire Oak, Humble, TX | M | 38000.00 | 333445555 | 5 |
| James | E | Borg | 888665555 | 1937-11-10 | 450 Stone, Houston, TX | M | 55000.00 | NULL | 1 |
| Jennifer | S | Wallace | 987654321 | 1941-06-20 | 291 Berry, Bellaire, TX | F | 43000.00 | 888665555 | 4 |
| Ahmad | V | Jabbar | 987987987 | 1969-03-29 | 980 Dallas, Houston, TX | M | 25000.00 | 987654321 | 4 |
| Alicia | J | Zelaya | 999887777 | 1968-07-19 | 3321 Castle, Spring, TX | F | 25000.00 | 987654321 | 4 |
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
DNAME
der Relation DEPARTMENT
Anfrage:SELECT DNAME FROM
DEPARTMENT;
Ausgabe:
+---------------+
| DNAME |
+---------------+
| Headquarters |
| Administation |
| Research |
+---------------+
Anfrage: SELECT BDATE, ADDRESS
FROM EMPLOYEE
WHERE FNAME='John' AND MINIT='B'AND LNAME='Smith';
Ausgabe:
+------------+----------------------+
| BDATE | ADDRESS |
+------------+----------------------+
| 1965-01-09 | 731 Fondren, Houston |
+------------+----------------------+
Anfrage: SELECT FNAME, DNAME
FROM EMPLOYEE, DEPARTMENT;
Die Anfrage liefert alle Werte des Attributs FNAME
in allen denkbaren Kombinationen mit allen Werten des Attributs DNAME
.
Ausgabe:
+----------+---------------+
| FNAME | DNAME |
+----------+---------------+
| John | Headquarters |
| Franklin | Headquarters |
| Joyce | Headquarters |
| Ramesh | Headquarters |
| James | Headquarters |
| Jennifer | Headquarters |
| Ahmad | Headquarters |
| Alicia | Headquarters |
| John | Administation |
| Franklin | Administation |
| Joyce | Administation |
| Ramesh | Administation |
| James | Administation |
| Jennifer | Administation |
| Ahmad | Administation |
| Alicia | Administation |
| John | Research |
| Franklin | Research |
| Joyce | Research |
| Ramesh | Research |
| James | Research |
| Jennifer | Research |
| Ahmad | Research |
| Alicia | Research |
+----------+---------------+
Anfrage: SELECT FNAME, LNAME, ADDRESS
FROM EMPLOYEE, DEPARTMENT
WHERE DNAME='Research' AND DNUMBER=DNO;
Die Anfrage liefert die Vornamen, Nachname und Adressen aller Mitarbeiter, die in der Research
-Abteilung arbeiten.
Ausgabe:
+----------+---------+----------------------+
| FNAME | LNAME | ADDRESS |
+----------+---------+----------------------+
| John | Smith | 731 Fondren, Houston |
| Franklin | Wong | 638 Voss, Houston, T |
| Joyce | English | 5631 Rice, Houston, |
| Ramesh | Narayan | 975 Fire Oak, Humble |
+----------+---------+----------------------+
Anfrage: SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATE
FROM PROJECT, DEPARTMENT, EMPLOYEE
WHERE DNUM=DNUMBER AND MGRSSN=SSN AND PLOCATION='Stafford';
Die Anfrage liefert Projekt-, Abteilungsnummer, Nachname, Adresse und Geburtsdatum aller Mitarbeiter die Abteilungen leiten, welche in Stafford
niedergelassen sind.
Ausgabe:
+---------+------+---------+----------------------+------------+
| PNUMBER | DNUM | LNAME | ADDRESS | BDATE |
+---------+------+---------+----------------------+------------+
| 10 | 4 | Wallace | 291 Berry, Bellaire, | 1941-06-20 |
| 30 | 4 | Wallace | 291 Berry, Bellaire, | 1941-06-20 |
+---------+------+---------+----------------------+------------+
Anfrage: SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME
FROM EMPLOYEE AS E, EMPLOYEE AS S
WHERE E.SUPERSSN=S.SSN;
Die Anfrage liefert Vor- und Nachnamen aller Mitarbeiter gemeinsam mit den Vor- und Nachnamen ihrer Vorgesetzten.
Ausgabe:
+----------+---------+----------+---------+
| FNAME | LNAME | FNAME | LNAME |
+----------+---------+----------+---------+
| John | Smith | Franklin | Wong |
| Franklin | Wong | James | Borg |
| Joyce | English | Franklin | Wong |
| Ramesh | Narayan | Franklin | Wong |
| Jennifer | Wallace | James | Borg |
| Ahmad | Jabbar | Jennifer | Wallace |
| Alicia | Zelaya | Jennifer | Wallace |
+----------+---------+----------+---------+
Anfrage: SELECT ALL SALARY
FROM EMPLOYEE;
Man beachte, diese Anfrage liefert dieselbe Ausgabe wie: SELECT SALARY
FROM EMPLOYEE;
Die Anfrage liefert alle Werte des Attributs SALARY
.
Ausgabe:
+----------+
| SALARY |
+----------+
| 30000.00 |
| 40000.00 |
| 25000.00 |
| 38000.00 |
| 55000.00 |
| 43000.00 |
| 25000.00 |
| 25000.00 |
+----------+
Anfrage: SELECT DISTINCT SALARY
FROM EMPLOYEE;
Die Anfrage liefert alle Werte des Attributs SALARY
, jedoch jeden einzelnen Wert nur genau einmal.
Ausgabe:
+----------+
| SALARY |
+----------+
| 30000.00 |
| 40000.00 |
| 25000.00 |
| 38000.00 |
| 55000.00 |
| 43000.00 |
+----------+
Anfrage: (SELECT DISTINCT PNUMBER
FROM PROJECT, DEPARTMENT, EMPLOYEE
WHERE DNUM=DNUMBER AND MGRSSN=SSN AND LNAME='Smith')
UNION
(SELECT DISTINCT PNUMBER
FROM PROJECT, WORKS_ON, EMPLOYEE
WHERE PNUMBER=PNO AND ESSN=SSN AND LNAME='Smith');
Die erste Anfrage liefert diejenigen Projektnummern, welche einem Projekt zugeordnet sind, daß der von Smith geleiteten Abteilung zugeordnet ist.
Die zweite Anfrage liefert alle Projekte an denen Smith mitarbeitet.
Ausgabe:
+---------+
| PNUMBER |
+---------+
| 1 |
| 2 |
+---------+
Anfrage: SELECT FNAME, LNAME
FROM EMPLOYEE
WHERE ADDRESS LIKE '%Houston, TX%';
Ausgabe:
Die Anfrage liefert die Vor- und Nachnamen aller Mitarbeiter die in Houston, TX wohnen, d.h. in deren Adresse dieser Teilausdruck auftritt.
+----------+---------+
| FNAME | LNAME |
+----------+---------+
| John | Smith |
| Franklin | Wong |
| Joyce | English |
| James | Borg |
| Ahmad | Jabbar |
+----------+---------+
Anfrage: SELECT FNAME, LNAME
FROM EMPLOYEE
WHERE BDATE LIKE '__5_______';
Die Anfrage liefert alle Mitarbeiter, die in den 50er Jahren geboren wurden.
Ausgabe:
+--------+---------+
| FNAME | LNAME |
+--------+---------+
| John | Smith |
| Ramesh | Narayan |
| Ahmad | Jabbar |
| Alicia | Zelaya |
+--------+---------+
Anfrage: SELECT FNAME, LNAME, 1.1*SALARY
FROM EMPLOYEE, WORKS_ON, PROJECT
WHERE SSN=ESSN AND PNO=PNUMBER AND PNAME='ProductX';
Ausgabe:
Zeigt die Höhe des Gehalts aller am ProductX beteiligten Mitarbeiter nach einer 10% Lohnerhöhung.
+-------+---------+------------+
| FNAME | LNAME | 1.1*SALARY |
+-------+---------+------------+
| John | Smith | 33000.00 |
| Joyce | English | 27500.00 |
+-------+---------+------------+
Anfrage: SELECT *
FROM EMPLOYEE
WHERE (SALARY BETWEEN 30000 AND 40000) AND DNO=5;
Ausgabe:
Die Anfrage liefert alle in der Relation EMPLOYEE
verfübaren Angaben zu denjenigen Mitarbeitern deren Gehalt zwischen 30000 und 40000 liegt und die in Abteilung 5 beschäftigt sind.
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
| John | B | Smith | 123456789 | 1965-01-09 | 731 Fondren, Houston, TX | M | 30000.00 | 333445555 | 5 |
| Franklin | T | Wong | 333445555 | 1955-12-08 | 638 Voss, Houston, TX | M | 40000.00 | 888665555 | 5 |
| Ramesh | K | Narayan | 666884444 | 1962-09-15 | 975 Fire Oak, Humble, TX | M | 38000.00 | 333445555 | 5 |
+----------+-------+---------+-----------+------------+--------------------------+------+----------+-----------+------+
Anfrage: SELECT DNAME, LNAME, FNAME, PNAME
FROM DEPARTMENT, EMPLOYEE, WORKS_ON, PROJECT
WHERE DNUMBER=DNO AND SSN=ESSN AND PNO=PNUMBER
ORDER BY DNAME, LNAME, FNAME;
Liefert die Abteilungsnamen sowie die Vor- und Nachnamen ihrer Leiter, gefolgt von den in den Abteilungen durchgeführten Projekten, aufsteigend sortiert nach Abteilungsname, dem Vor- sowie dem Nachnamen des Abteilungsleiters.
Ausgabe:
+---------------+---------+----------+-----------------+
| DNAME | LNAME | FNAME | PNAME |
+---------------+---------+----------+-----------------+
| Administation | Jabbar | Ahmad | Computerization |
| Administation | Jabbar | Ahmad | Newbenefits |
| Administation | Wallace | Jennifer | Reorganization |
| Administation | Wallace | Jennifer | Newbenefits |
| Administation | Zelaya | Alicia | Newbenefits |
| Administation | Zelaya | Alicia | Computerization |
| Headquarters | Borg | James | Reorganization |
| Research | English | Joyce | ProductY |
| Research | English | Joyce | ProductX |
| Research | Narayan | Ramesh | ProductZ |
| Research | Smith | John | ProductX |
| Research | Smith | John | ProductY |
| Research | Wong | Franklin | ProductY |
| Research | Wong | Franklin | Computerization |
| Research | Wong | Franklin | ProductZ |
| Research | Wong | Franklin | Reorganization |
+---------------+---------+----------+-----------------+
Anfrage: SELECT DNAME, LNAME, FNAME, PNAME
FROM DEPARTMENT, EMPLOYEE, WORKS_ON, PROJECT
WHERE DNUMBER=DNO AND SSN=ESSN AND PNO=PNUMBER
ORDER BY DNAME DESC, LNAME ASC, FNAME ASC;
Liefert die Abteilungsnamen sowie die Vor- und Nachnamen ihrer Leiter, gefolgt von den in den Abteilungen durchgeführten Projekten, absteigend sortiert nach Abteilungsname und aufsteigend sortiert nach dem Vor- sowie dem Nachnamen des Abteilungsleiters.
Ausgabe:
+---------------+---------+----------+-----------------+
| DNAME | LNAME | FNAME | PNAME |
+---------------+---------+----------+-----------------+
| Research | English | Joyce | ProductY |
| Research | English | Joyce | ProductX |
| Research | Narayan | Ramesh | ProductZ |
| Research | Smith | John | ProductX |
| Research | Smith | John | ProductY |
| Research | Wong | Franklin | ProductY |
| Research | Wong | Franklin | Computerization |
| Research | Wong | Franklin | ProductZ |
| Research | Wong | Franklin | Reorganization |
| Headquarters | Borg | James | Reorganization |
| Administation | Jabbar | Ahmad | Computerization |
| Administation | Jabbar | Ahmad | Newbenefits |
| Administation | Wallace | Jennifer | Reorganization |
| Administation | Wallace | Jennifer | Newbenefits |
| Administation | Zelaya | Alicia | Newbenefits |
| Administation | Zelaya | Alicia | Computerization |
+---------------+---------+----------+-----------------+
Service provided by Mario Jeckle
Generated: 2004-06-11T07:12:06+01:00
Feedback SiteMap
This page's original location: http://www.jeckle.de/vorlesung/datenbanken/MySQLStart.html
RDF description for this page