Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kilka pytań do bazy danych
Forum PHP.pl > Forum > Bazy danych
BoloBx
Czy mógłby ktoś zrobić kilka złożonych pytań do tej bazy danych?

Kod
CREATE TABLE bilet (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, typ VARCHAR(100), cena DECIMAL(5,2) NOT NULL);
CREATE TABLE kierowca (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, imie VARCHAR(20), nazwisko VARCHAR(50), adres VARCHAR(255));
CREATE TABLE autobusy (id INT NOT NULL PRIMARY KEY, miejsca_siedzace INT, miejsca_stojace INT, id_kierowcy INT NOT NULL);
CREATE TABLE miasto (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, nazwa VARCHAR(50), populacja INT, gestosc_zaludnienia INT, panstwo VARCHAR(50), prezydent VARCHAR(100));
CREATE TABLE kursy (id_kursu INT AUTO_INCREMENT NOT NULL PRIMARY KEY, id_autobusu INT NOT NULL);
CREATE TABLE zamowienie (id_klienta INT AUTO_INCREMENT NOT NULL PRIMARY KEY, id_kursu INT NOT NULL, id_biletu INT NOT NULL);
CREATE TABLE miasta_trasy (id_miasta INT  NOT NULL, id_trasy INT NOT NULL);
CREATE TABLE klient (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, imie VARCHAR(20), nazwisko VARCHAR(50), wiek INT NOT NULL, ZAWOD VARCHAR(20));
CREATE TABLE autobus_kierowca (id_autobusu INT AUTO_INCREMENT NOT NULL PRIMARY KEY, id_kierowcy INT NOT NULL);
CREATE TABLE trasy (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, opis VARCHAR(50));

INSERT INTO bilet (id, typ, cena) VALUES (1,'normalny', '26,70');
INSERT INTO bilet (id, typ, cena) VALUES (2,'ulgowy', '16,70');
INSERT INTO bilet (id, typ, cena) VALUES (3,'student', '18,50');
INSERT INTO bilet (id, typ, cena) VALUES (4,'emeryt', '12,30');
INSERT INTO bilet (id, typ, cena) VALUES (5,'niepelnosprawny', '14,00');

INSERT INTO kierowca (id, imie, nazwisko, adres) VALUES (1, 'Jan', 'Sacharczuk', 'ul. Jana Pawla II 10-113 Olsztyn');
INSERT INTO kierowca (id, imie, nazwisko, adres) VALUES (2, 'Stefan', 'Wichura', 'ul. Mazowiecka 112 09-111 Olsztyn');
INSERT INTO kierowca (id, imie, nazwisko, adres) VALUES (3, 'Andrzej', 'Korubski', 'ul. Mazowiecka 9 09-111 Olsztyn');
INSERT INTO kierowca (id, imie, nazwisko, adres) VALUES (4, 'Jaroslaw', 'Tatarski', 'ul. Targowa 16/2 09-112 Olsztyn');
INSERT INTO kierowca (id, imie, nazwisko, adres) VALUES (5, 'Konrad', 'Dziewiecin', 'ul. Dybowskiego 32 09-120 Olsztyn');
INSERT INTO kierowca (id, imie, nazwisko, adres) VALUES (6, 'Marek', 'Tatarski', 'ul.Targowa 16/2 09-112 Olsztyn');

INSERT INTO autobusy (id, miejsca_siedzace, miejsca_stojace, id_kierowcy) VALUES (1, 80, 20, 1);
INSERT INTO autobusy (id, miejsca_siedzace, miejsca_stojace, id_kierowcy) VALUES (2, 50, 8, 2);
INSERT INTO autobusy (id, miejsca_siedzace, miejsca_stojace, id_kierowcy) VALUES (3, 20, 2, 3);
INSERT INTO autobusy (id, miejsca_siedzace, miejsca_stojace, id_kierowcy) VALUES (4, 89, 20, 4);
INSERT INTO autobusy (id, miejsca_siedzace, miejsca_stojace, id_kierowcy) VALUES (5, 66, 6, 5);

INSERT INTO miasto (id, nazwa, populacja, gestosc_zaludnienia, panstwo, prezydent) VALUES (1, 'Olsztyn', 173831, 1968, 'Polska', 'Piotr Grzymowicz');
INSERT INTO miasto (id, nazwa, populacja, gestosc_zaludnienia, panstwo, prezydent) VALUES (2, 'Hamburg', 1746342, 2307, 'Niemcy', 'Olaf Scholz');
INSERT INTO miasto (id, nazwa, populacja, gestosc_zaludnienia, panstwo, prezydent) VALUES (3, 'Kolobrzeg', 46897, 1827, 'Polska', 'Janusz Gromek');
INSERT INTO miasto (id, nazwa, populacja, gestosc_zaludnienia, panstwo, prezydent) VALUES (4, 'Praga', 1249026, 2408, 'Czechy', 'Adriana Krnacova');
INSERT INTO miasto (id, nazwa, populacja, gestosc_zaludnienia, panstwo, prezydent) VALUES (5, 'Warszawa', 1735442, 3355, 'Polska', 'Hanna Gronkiewicz-Waltz');

INSERT INTO kursy (id_kursu, id_autobusu) VALUES (1,2);
INSERT INTO kursy (id_kursu, id_autobusu) VALUES (2,3);
INSERT INTO kursy (id_kursu, id_autobusu) VALUES (3,4);
INSERT INTO kursy (id_kursu, id_autobusu) VALUES (4,5);
INSERT INTO kursy (id_kursu, id_autobusu) VALUES (5,1);

INSERT INTO zamowienie (id_klienta, id_kursu, id_biletu) VALUES (1, 2, 3);
INSERT INTO zamowienie (id_klienta, id_kursu, id_biletu) VALUES (2, 3, 4);
INSERT INTO zamowienie (id_klienta, id_kursu, id_biletu) VALUES (3, 4, 5);
INSERT INTO zamowienie (id_klienta, id_kursu, id_biletu) VALUES (4, 5, 1);
INSERT INTO zamowienie (id_klienta, id_kursu, id_biletu) VALUES (5, 1, 2);

INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (1, 1);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (1, 4);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (1, 5);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (2, 3);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (2, 5);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (3, 1);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (4, 2);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (4, 5);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (5, 2);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (5, 3);
INSERT INTO miasta_trasy (id_miasta, id_trasy) VALUES (5, 4);

INSERT INTO klient (id, imie, nazwisko, wiek, zawod) VALUES (1, 'Jan', 'Kowalski', 20, 'student');
INSERT INTO klient (id, imie, nazwisko, wiek, zawod) VALUES (2, 'Adam', 'Nowak', 60, 'emeryt');
INSERT INTO klient (id, imie, nazwisko, wiek, zawod) VALUES (3, 'Zbigniew', 'Klon', 30, 'hydraulik');
INSERT INTO klient (id, imie, nazwisko, wiek, zawod) VALUES (4, 'Maciek', 'Pawloski', 14, 'uczen');
INSERT INTO klient (id, imie, nazwisko, wiek, zawod) VALUES (5, 'Andrzej', 'Nowaczyk', 27, 'prawnik');

INSERT INTO autobus_kierowca (id_autobusu, id_kierowcy) VALUES (1, 2);
INSERT INTO autobus_kierowca (id_autobusu, id_kierowcy) VALUES (2, 3);
INSERT INTO autobus_kierowca (id_autobusu, id_kierowcy) VALUES (3, 4);
INSERT INTO autobus_kierowca (id_autobusu, id_kierowcy) VALUES (4, 5);
INSERT INTO autobus_kierowca (id_autobusu, id_kierowcy) VALUES (5, 1);

INSERT INTO trasy (id, opis) VALUES ('1', 'Olsztyn-Kolobrzeg');
INSERT INTO trasy (id, opis) VALUES ('2', 'Praga-Warszawa');
INSERT INTO trasy (id, opis) VALUES ('3', 'Wasrszawa-Hamburg');
INSERT INTO trasy (id, opis) VALUES ('4', 'Olsztyn-Warszawa');
INSERT INTO trasy (id, opis) VALUES ('5', 'Praga-Hamburg');


Już kilka pytań mam zrobionych i w sumie nie wiem czy się nadają smile.gif
SELECT imie, nazwisko, wiek FROM klient WHERE wiek >= 20 ORDER BY nazwisko;
SELECT id, CONCAT(imie,' ',nazwisko), adres FROM kierowca WHERE imie like 'J%' ORDER BY imie;
SELECT CONCAT(imie,' ',nazwisko), zawod FROM klient WHERE nazwisko LIKE '%ski';
SELECT cena, typ FROM bilet WHERE cena < 17 ORDER BY cena;
SELECT id, nazwa FROM miasto WHERE nazwa LIKE '%G';
SELECT panstwo FROM miasto GROUP BY panstwo;

Z góry dziękuje za wszelką pomoc.
viking
Popracuj trochę ze złączeniami. Znajdź np. jakimi autobusami, do jakiego miasta jeździł dany kierowca.
BoloBx
Właśnie w tym problem że to jest poboczny przedmiot na studiach i nie bardzo było czasu się na nim skupiać i jestem zupełnie ciemny jeśli chodzi o te sprawy..
Skleiłem coś takiego:
SELECT imie,nazwisko FROM kierowca where opis=Olsztyn-Kolobrzeg from trasy;
SELECT id_kursu, id_autobusu FROM kursy and select id, opis FROM trasy WHERE id_kierowcy=2 FROM autobus_kierowca;
viking
A tabele wiele do wielu sam układałeś? Tam raczej chodziło o PK na obu kolumnach. Poza tym chodziło mi o zapytania typu:
  1. SELECT *
  2. FROM miasto m
  3. INNER JOIN miasta_trasy mt ON mt.id_miasta = m.id
  4. INNER JOIN trasy t ON mt.id_trasy = t.id;
BoloBx
Tabele układał ktoś inny, mi zostało zrobic 10 pytan ( niby złożonych) ale warunku typu INNER JOIN na zajeciach nie mieliśmy. Facet pokazywał nam przykładowe pytania no ale wiadomo że dla innych tabel, innych danych to ciężko jest teraz przekształcić te pytania dla tych tabel żeby były poprawne składniowo..
W każdym bądź razie dzięki za pomoc, postaram się coś skleić.
Pyton_000
nie pytania tylko zapytania.
ps. jaki kierunek?
BoloBx
Nie wiem czy mogę odpowiadać żebyś nie okazał się moim wykładowcą biggrin.gif
Geodezja i Kartografia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.