Wątek przeniesiony 2023-02-12 14:16 z C# i .NET przez Riddle.

Prośba o sprawdzenie zadania SQL na zaliczenie

0

zadania.sqlrequest.pdf

Ogromna prośba o sprawdzenie rozwiązania zadań i wskazanie uwag :)
W załącznikach polecenie i rozwiązanie

0

Sprawdziłem. Źle, źle, źle.
Uwagi: http://sqlfiddle.com/, sprawdź, czy to, co wpisałeś, w ogóle jest poprawne składniowo i popraw.

0

możesz powiedzieć coś więcej?

0
Patryk Blawat napisał(a):

możesz powiedzieć coś więcej?

W wyniku sprawdzenia doszedłem do wniosku, że pierwsze z rozwiązań jest złe, drugie z rozwiązań jest złe, a trzecie jest złe.
Ponieważ poprosiłeś o uwagi, zasugerowałem, abyś skorzystał z serwisu umieszczonego pod adresem http://sqlfiddle.com/ i tamże utworzył strukturę danych i wykonał swoje zapytania SQLowe. Dzięki temu mógłbyś poprawić je (bo w tej chwili mają błędy na poziomie składni). Następnie, po dopracowaniu składni, mógłbyś zająć się ich logiką.

0

Czy ktoś jest w stanie podpowiedzieć co należy zmienić w składni aby była prawidłowa?

2

w 1 przecinek
w 2 JOIN
w 3 HAVING

0
-- Zadanie 1
SELECT `Id_książki`, `Tytuł` FROM `Książki` 
WHERE(`Tytuł` LIKE '%a' AND `Język_oryginału`='niemiecki') OR `Id_gatunku`='12';
-- Zadanie 2
SELECT 
`Tytuł`.`Książki`,
`Id_gatunku`.`Książki`,
`Nazwisko`.`Autorzy`,
`Imię1`.`Autorzy`
FROM
`Autorzy`
INNER JOIN
`Książki`
ON
`Autorzy`.`Id_autora`=`Książki`.`Id_autora`
WHERE
`Autorzy`.`Data_urodzenia`='1980' AND `Autorzy`='C%';
-- Zadanie 3
SELECT `Id_autora`, COUNT(`Id_gatunku`) as  ile_książek_z_gatunku_o_identyfikatorze_3
FROM `Książki`
WHERE `Id_gatunku`='3'
HAVING COUNT (`Id_gatunku`)>5
ORDER BY `ile_książek_z_gatunku_o_identyfikatorze_3` ASC, `Id_autora` DESC;


Czy teraz będzie ok? Dziękuję z góry za pomoc :)

0

W 2 masz błąd, data_urodzenia jest polem date, więc przyrównanie do roku w postaci stringa nie jest prawidłowe, jak i przyrównanie do maski operatorem =

0

czy dodanie YEAR(Data_urodzenia) załatwi sprawę?

0

Tak, możesz też użyć between

0

-- Zadanie 1
SELECT `Id_książki`, `Tytuł` FROM `Książki` 
WHERE(`Tytuł` LIKE '%a' AND `Język_oryginału`='niemiecki') OR `Id_gatunku`='12';
-- Zadanie 2
SELECT 
`Tytuł`.`Książki`,
`Id_gatunku`.`Książki`,
`Nazwisko`.`Autorzy`,
`Imię1`.`Autorzy`
FROM
`Autorzy`
INNER JOIN
`Książki`
ON
`Autorzy`.`Id_autora`=`Książki`.`Id_autora`
WHERE
YEAR(`Autorzy`.`Data_urodzenia`)='1980' AND `Autorzy`='C%';
-- Zadanie 3
SELECT `Id_autora`, COUNT(`Id_gatunku`) as  ile_książek_z_gatunku_o_identyfikatorze_3
FROM `Książki`
WHERE `Id_gatunku`='3'
HAVING COUNT (`Id_gatunku`)>5
ORDER BY `ile_książek_z_gatunku_o_identyfikatorze_3` ASC, `Id_autora` DESC;


Teraz zadanie jest dopracowane?

1
Patryk Blawat napisał(a):

Teraz zadanie jest dopracowane?

Sprawdzałeś, czy te zapytania w ogóle się uruchamiają na jakiejkolwiek bazie? Na jakiej?
Jeśli nie masz dostępu w szkółce/na uczelni (choć zakładam, że powinno coś być, skoro to "kartkówka zaliczeniowa z Systemów baz danych"), to skorzystaj z "baz" online - link do przykładowej dostałeś.
Póki co wydaje się, że uparcie i wytrwale piszesz te zapytania na kartce/w notatniku, zamiast uruchamiać je na istniejącej bazie.
Nie rozumiem, po co. Baza parsuje zapytanie i najczęściej podpowie Ci, gdzie masz błąd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1