Odpowiedz 
 
Ocena wątku:
  • 2 głosów - 5 średnio
  • 1
  • 2
  • 3
  • 4
  • 5
POMOC - Zadanie poprawkowe nr. 10 i 11 'pracownicy.sql' oraz zad. 6-9 "Firma"
06-10-2020, 05:45 PM (Ten post był ostatnio modyfikowany: 06-10-2020 06:03 PM przez Kasprzak.)
Post: #1
Query POMOC - Zadanie poprawkowe nr. 10 i 11 'pracownicy.sql' oraz zad. 6-9 "Firma"
Zadanie polega na poprawieniu skryptu tworzącego bazę, gdyż pochodzi on z innego serwera i jest napisany w innej wersji SQL (MS SQL z TSQL)
W zasadzie są dwa słowa kluczowe które nie są stosowane w języku mySQL (albo nie są interpretowane przez silnik miniserwera oraz bazy xampp tj. MariaDB) Aby znaleźć te słowa trzeba zajrzeć do specyfikacji mysql. Najpewniej jest to polecenie CONSTRAINT.
Rozwiązanie polega na usunięciu tego "powiązania" przez usunięcie w 2 linii (tabeli 'ZESPOLY') "CONSTRAINT PK_ZESP". oraz tak samo z tabeli 'ETATY'.
Ale mamy jeszcze problem z INT(6,2) - wpis zawiera nie jedną liczbę lecz dwie, oznacza to, że potrzebna będzie liczba z dwoma miejscami po przecinku czyli z dokumentacji wynika, że powinna być FLOAT. Zmieniamy więc te polecenia.
To nie wszystko. Pozostała tabela 'PRACOWNICY'. Musimy powiązać relacją wszystkie trzy tabelki. W związku z tym usuwamy jak powyżej 'CONSTRAINT PK...' następnie zakładamy klucze 'FOREIGN KEY' bo PRIMARY KEY już mamy.
Po przetworzeniu tej tabeli "PRACOWNICY" winna wyglądać ona następująco:

CREATE TABLE PRACOWNICY
(ID_PRAC INT(4) PRIMARY KEY,
NAZWISKO VARCHAR(15),
ETAT VARCHAR(10),
FOREIGN KEY (ETAT) REFERENCES ETATY(NAZWA),
ID_SZEFA INT(4)
FOREIGN KEY (ID_SZEFA) REFERENCES PRACOWNICY(ID_PRAC),
ZATRUDNIONY DATE,
PLACA_POD FLOAT(6,2) CHECK(PLACA_POD>100),
PLACA_DOD FLOAT(6,2),
ID_ZESP INT(4)
FOREIGN KEY (ID_ZESP) REFERENCES ZESPOLY(ID_ZESP));


Sposób wprowadzenia danych do tabel jest prawidłowy.
Czyli po w/w modyfikacji i zapisaniu zmian plik do zaimportowania bazy danych jest gotowy.
Zamieszczony jako załącznik obrazek pokazuje skrypt bazy danych po poprawieniu (widoczny tylko dla zalogowanych userów).
   
IMPORT BAZY NA MINI_SERWER
Po wprowadzeniu zmian w pliku pracownicy.sql pora na import bazy na mini_serwer:
mysql --user=root --password=root firma3x (nazwa bazy dla danej klasy trzeciej) < Z:\data\pracownicy.sql (pełna ścieżka dostępu do pliku b.d. pracownicy.sql)
UWAGA!
Powyższy przykład rozwiązania jest tylko wskazówką, jak powinno się postępować z różnymi plikami baz danych (nie musi być to kompletne rozwiązanie - gotowiec!).
Sprawdź w dokumentacji MYSQL poprawność w/w modyfikacji i zastosuj odpowiednie zmiany.
Jeżeli były by jeszcze jakieś problemy to proszę pisać w komentarzach pod tym wątkiem. Kwerendy można dopasowywać do własnych potrzeb.
Miłej zabawy.

ZAPRASZAM NA STRONĘ EDU KASPRZAK ON-LINE:
https://edukasprzak.blogspot.com
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości