2021. november 23., kedd

2021-11-23. AB - Hajó megoldás

 /*1*/

  CREATE DATABASE hajo
DEFAULT CHARACTER SET UTF-8
COLLATE UTF8_hungarian_ci;
 /* 3.  Írassa ki a J1 hajójárat menetrendjét! Jelenjenek meg az indulási és érkezési állomások az időpontokkal együtt!*/
SELECT menetrend.honnan, menetrend.hova, menetrend.indul, menetrend.erkezik
FROM menetrend
  WHERE (jarat = "j1");

/*  4.  Listázza ki, hogy Balatonfüredről milyen állomások felé indulnak hajók
  11 óra 30 perc és 12 óra 30 perc között (beleértve a megadott időpontokat is)! (4. feladat:)*/
/*Egyik megoldás*/

SELECT menetrend.hova
FROM menetrend
WHERE ((honnan = "Balatonfüred") and (menetrend.indul between '11:30' AND '12:30'));

/*Másik megoldás*/

SELECT menetrend.hova
FROM menetrend
WHERE ((honnan = "Balatonfüred") and (menetrend.indul>= '11:30' AND menetrend.indul<= '12:30'));


/*5.  Listázza ki, hogy Siófokról milyen jelű járatok indulnak 9 óra után (beleértve a 9 órát is). (5. feladat:)*/

 SELECT menetrend.jarat, menetrend.indul
  from menetrend
  WHERE honnan="Siófok" and indul>9;

/*6.  Listázza ki indulási sorrendben az összes B-vel kezdődő jelű járatot, ami délután indul. (6. feladat:)*/
select menetrend.jarat, menetrend.indul
  from menetrend
  where jarat like 'b%' and indul>'12:00:00'
order by indul;

/*7.  Határozza meg lekérdezés segítségével, hogy naponta hány hajó érkezik a kikötőkbe!
  A lista az állomás nevéből és a kikötő hajók számából álljon, az utóbbi értéke szerint csökkenően!(7. feladat:)*/
  SELECT menetrend.hova, count(menetrend.azon)
    from menetrend
    group by hova
    order by 2 desc;

   
/*8.  Adja meg, hogy a legkésőbben érkező hajó hánykor ér Balatonföldvárra! (8. feladat:)*/

  /*Egyik megoldás*/
  SELECT menetrend.erkezik
    from menetrend
    where hova="Balatonföldvár"
    order by erkezik desc
    limit 1;

/*Másik megoldás*/
  SELECT max(menetrend.erkezik)  
    from menetrend
    where hova="Balatonföldvár";
   
/*9.  Az E2-es hajójáratnak mi a végállomása és hánykor érkezik oda? (9. feladat:)*/
  SELECT hova, erkezik
    from menetrend
    where jarat="e2"
        order by erkezik DESC
    limit 1;
Itt nem jó a max függvényes megoldás.

2021. november 22., hétfő

2021.11.22. AB Hajó feladat

 

5. Hajómenetrend 

A balatoni hajómenetrend rendelkezésünkre áll a forrásállományokban a szokott módon.

Az adatbázist a számítógépére telepített helyi SQL szerveren kell létrehoznia.

1.    Hozzon létre a lokális SQL szerveren hajo néven adatbázist! Az adatbázis alapértelmezett rendezési sorrendje a magyar szabályok szerinti legyen! Ha az Ön által választott SQL szervernél nem alapértelmezés az UTF-8 kódolás, akkor azt is állítsa be alapértelmezettnek az adatbázis létrehozásánál!

Tábla:

menetrend (azon, jarat, honnan, hova, indul, erkezik)

azon

Két állomás közötti út azonosítója (számláló), ez a kulcs

jarat

A hajóútvonalak azonosítója (szöveg)

honnan

A hajóút induló állomása (szöveg)

hova

A hajóút érkező állomása (szöveg)

indul

Indulási idő az állomásról (idő)

erkezik

Érkezési idő az állomásra (idő)

2.    A tabla.sql és az adatok.sql állományok tartalmazzák a táblákat létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat! Futassa a lokális SQL szerveren elsőként a tabla.sql, majd az adatok.sql parancsfájlt.

A feladatok megoldására elkészített SQL parancsokat a megoldasok.sql állományba illessze be a feladatok végén jelzett zárójelben lévő sor alá!

  1. Írassa ki a J1 hajójárat menetrendjét! Jelenjenek meg az indulási és érkezési állomások az időpontokkal együtt! (3. feladat:)
  2. Listázza ki, hogy Balatonfüredről milyen állomások felé indulnak hajók 11 óra 30 perc és 12 óra 30 perc között (beleértve a megadott időpontokat is)! (4. feladat:)
  3. Listázza ki, hogy Siófokról milyen jelű járatok indulnak 9 óra után (beleértve a 9 órát is). (5. feladat:)
  4. Listázza ki indulási sorrendben az összes B-vel kezdődő jelű járatot, ami délután indul. (6. feladat:)
  5. Határozza meg lekérdezés segítségével, hogy naponta hány hajó érkezik a kikötőkbe! A lista az állomás nevéből és a kikötő hajók számából álljon, az utóbbi értéke szerint csökkenően!(7. feladat:)
  6. Adja meg, hogy a legkésőbben érkező hajó hánykor ér Balatonföldvárra! (8. feladat:)
  7. Az E2-es hajójáratnak mi a végállomása és hánykor érkezik oda? (9. feladat:)

2021.11.22. AB - Hajó feladat forrás

 CREATE TABLE menetrend (

  `azon` int(3) NOT NULL,
  `jarat` varchar(3) DEFAULT NULL,
  `honnan` varchar(14) DEFAULT NULL,
  `hova` varchar(14) DEFAULT NULL,
  `indul` time DEFAULT NULL,
  `erkezik` time DEFAULT NULL,
  PRIMARY KEY (`azon`)
);
INSERT INTO `menetrend` (`azon`, `jarat`, `honnan`, `hova`, `indul`, `erkezik`) VALUES
(1, 'A1', 'Siófok', 'Balatonalmádi', '9:30:00', '10:30:00'),
(2, 'A2', 'Balatonalmádi', 'Alsóörs', '10:35:00', '11:10:00'),
(3, 'A2', 'Alsóörs', 'Csopak', '11:10:00', '11:40:00'),
(4, 'A2', 'Csopak', 'Siófok', '11:40:00', '12:20:00'),
(5, 'A3', 'Siófok', 'Csopak', '16:00:00', '16:45:00'),
(6, 'A3', 'Csopak', 'Alsóörs', '16:45:00', '17:15:00'),
(7, 'A3', 'Alsóörs', 'Balatonalmádi', '17:15:00', '17:45:00'),
(8, 'A4', 'Balatonalmádi', 'Siófok', '17:50:00', '18:50:00'),
(9, 'B1', 'Balatonboglár', 'Révfülöp', '8:50:00', '9:15:00'),
(10, 'B2', 'Révfülöp', 'Balatonboglár', '9:50:00', '10:15:00'),
(11, 'B3', 'Balatonboglár', 'Révfülöp', '10:30:00', '10:55:00'),
(12, 'B4', 'Révfülöp', 'Balatonboglár', '11:15:00', '11:40:00'),
(13, 'B5', 'Balatonboglár', 'Révfülöp', '14:30:00', '14:55:00'),
(14, 'B6', 'Révfülöp', 'Balatonboglár', '15:10:00', '15:35:00'),
(15, 'B7', 'Balatonboglár', 'Révfülöp', '17:30:00', '17:55:00'),
(16, 'B8', 'Révfülöp', 'Balatonboglár', '18:30:00', '18:55:00'),
(17, 'D1', 'Siófok', 'Balatonfüred', '10:00:00', '11:00:00'),
(18, 'D1', 'Balatonfüred', 'Tihany', '11:00:00', '11:20:00'),
(19, 'D2', 'Tihany', 'Balatonfüred', '11:30:00', '11:55:00'),
(20, 'D2', 'Balatonfüred', 'Siófok', '11:55:00', '12:45:00'),
(21, 'D3', 'Siófok', 'Balatonfüred', '13:00:00', '14:00:00'),
(22, 'D3', 'Balatonfüred', 'Tihany', '14:00:00', '14:20:00'),
(23, 'D4', 'Tihany', 'Balatonfüred', '16:30:00', '17:00:00'),
(24, 'D4', 'Balatonfüred', 'Siófok', '17:00:00', '17:50:00'),
(25, 'D5', 'Siófok', 'Balatonfüred', '18:00:00', '18:50:00'),
(26, 'D6', 'Balatonfüred', 'Siófok', '19:00:00', '19:50:00'),
(27, 'E1', 'Siófok', 'Balatonfüred', '9:00:00', '10:00:00'),
(28, 'E1', 'Balatonfüred', 'Tihany', '10:00:00', '10:20:00'),
(29, 'E2', 'Tihany', 'Balatonfüred', '10:30:00', '11:00:00'),
(30, 'E2', 'Balatonfüred', 'Siófok', '11:00:00', '11:50:00'),
(31, 'E3', 'Siófok', 'Balatonfüred', '12:00:00', '13:00:00'),
(32, 'E3', 'Balatonfüred', 'Tihany', '13:00:00', '13:20:00'),
(33, 'E4', 'Tihany', 'Balatonfüred', '14:30:00', '15:00:00'),
(34, 'E4', 'Balatonfüred', 'Siófok', '15:00:00', '15:50:00'),
(35, 'E5', 'Siófok', 'Balatonfüred', '16:00:00', '17:00:00'),
(36, 'E5', 'Balatonfüred', 'Tihany', '17:00:00', '17:20:00'),
(37, 'E6', 'Tihany', 'Balatonfüred', '17:30:00', '18:00:00'),
(38, 'E6', 'Balatonfüred', 'Siófok', '18:00:00', '18:50:00'),
(39, 'F1', 'Fonyód', 'Badacsony', '8:15:00', '8:45:00'),
(40, 'F10', 'Badacsony', 'Fonyód', '15:30:00', '16:00:00'),
(41, 'F11', 'Fonyód', 'Badacsony', '16:15:00', '16:45:00'),
(42, 'F12', 'Badacsony', 'Fonyód', '17:00:00', '17:30:00'),
(43, 'F13', 'Fonyód', 'Badacsony', '17:45:00', '18:15:00'),
(44, 'F14', 'Badacsony', 'Fonyód', '18:30:00', '19:00:00'),
(45, 'F2', 'Badacsony', 'Fonyód', '9:00:00', '9:30:00'),
(46, 'F3', 'Fonyód', 'Badacsony', '10:00:00', '10:30:00'),
(47, 'F4', 'Badacsony', 'Fonyód', '10:45:00', '11:15:00'),
(48, 'F5', 'Fonyód', 'Badacsony', '11:30:00', '12:00:00'),
(49, 'F6', 'Badacsony', 'Fonyód', '12:15:00', '12:45:00'),
(50, 'F7', 'Fonyód', 'Badacsony', '13:15:00', '13:45:00'),
(51, 'F8', 'Badacsony', 'Fonyód', '14:00:00', '14:30:00'),
(52, 'F9', 'Fonyód', 'Badacsony', '14:45:00', '15:15:00'),
(53, 'G1', 'Balatonföldvár', 'Balatonszemes', '9:10:00', '10:05:00'),
(54, 'G1', 'Balatonszemes', 'Balatonlelle', '10:05:00', '10:45:00'),
(55, 'G1', 'Balatonlelle', 'Balatonboglár', '10:45:00', '11:15:00'),
(56, 'G1', 'Balatonboglár', 'Badacsony', '11:15:00', '12:00:00'),
(57, 'G2', 'Badacsony', 'Balatonboglár', '16:00:00', '16:55:00'),
(58, 'G2', 'Balatonboglár', 'Balatonlelle', '16:55:00', '17:25:00'),
(59, 'G2', 'Balatonlelle', 'Balatonszemes', '17:25:00', '18:05:00'),
(60, 'G2', 'Balatonszemes', 'Balatonföldvár', '18:05:00', '18:50:00'),
(61, 'J1', 'Balatonkenese', 'Balatonalmádi', '9:45:00', '10:20:00'),
(62, 'J1', 'Balatonalmádi', 'Alsóörs', '10:20:00', '10:55:00'),
(63, 'J1', 'Alsóörs', 'Csopak', '10:55:00', '11:20:00'),
(64, 'J1', 'Csopak', 'Balatonfüred', '11:20:00', '11:45:00'),
(65, 'J1', 'Balatonfüred', 'Tihany', '11:45:00', '12:05:00'),
(66, 'J2', 'Tihany', 'Balatonfüred', '16:00:00', '16:30:00'),
(67, 'J2', 'Balatonfüred', 'Csopak', '16:30:00', '17:00:00'),
(68, 'J2', 'Csopak', 'Alsóörs', '17:00:00', '17:30:00'),
(69, 'J2', 'Alsóörs', 'Balatonalmádi', '17:30:00', '18:05:00'),
(70, 'J2', 'Balatonalmádi', 'Balatonkenese', '18:05:00', '18:35:00'),
(71, 'K1', 'Keszthely', 'Balatonmária', '10:00:00', '11:00:00'),
(72, 'K1', 'Balatonmária', 'Balatongyörök', '11:00:00', '11:30:00'),
(73, 'K1', 'Balatongyörök', 'Szigliget', '11:30:00', '12:15:00'),
(74, 'K1', 'Szigliget', 'Badacsony', '12:15:00', '12:45:00'),
(75, 'K2', 'Badacsony', 'Szigliget', '16:00:00', '16:35:00'),
(76, 'K2', 'Szigliget', 'Balatongyörök', '16:35:00', '17:20:00'),
(77, 'K2', 'Balatongyörök', 'Balatonmária', '17:20:00', '17:50:00'),
(78, 'K2', 'Balatonmária', 'Keszthely', '17:50:00', '18:40:00'),
(79, 'L1', 'Balatonföldvár', 'Tihanyrév', '8:45:00', '9:05:00'),
(80, 'L1', 'Tihanyrév', 'Tihany', '9:05:00', '9:30:00'),
(81, 'L1', 'Tihany', 'Balatonfüred', '9:30:00', '10:00:00'),
(82, 'L1', 'Balatonfüred', 'Siófok', '10:00:00', '10:50:00'),
(83, 'L2', 'Siófok', 'Tihany', '11:00:00', '11:50:00'),
(84, 'L3', 'Tihany', 'Balatonfüred', '13:00:00', '13:30:00'),
(85, 'L3', 'Balatonfüred', 'Siófok', '13:30:00', '14:20:00'),
(86, 'L4', 'Siófok', 'Balatonfüred', '15:00:00', '16:00:00'),
(87, 'L4', 'Balatonfüred', 'Tihany', '16:00:00', '16:30:00'),
(88, 'L4', 'Tihany', 'Tihanyrév', '16:30:00', '16:50:00'),
(89, 'L4', 'Tihanyrév', 'Balatonföldvár', '16:50:00', '17:05:00'),
(90, 'M1', 'Balatonföldvár', 'Tihanyrév', '10:30:00', '10:50:00'),
(91, 'M1', 'Tihanyrév', 'Tihany', '10:50:00', '11:05:00'),
(92, 'M2', 'Tihany', 'Tihanyrév', '12:15:00', '12:35:00'),
(93, 'M2', 'Tihanyrév', 'Balatonföldvár', '12:35:00', '12:50:00'),
(94, 'M3', 'Balatonföldvár', 'Tihanyrév', '13:05:00', '13:25:00'),
(95, 'M3', 'Tihanyrév', 'Tihany', '13:25:00', '13:40:00'),
(96, 'M4', 'Tihany', 'Tihanyrév', '14:30:00', '14:50:00'),
(97, 'M4', 'Tihanyrév', 'Balatonföldvár', '14:50:00', '15:05:00'),
(98, 'M5', 'Balatonföldvár', 'Tihanyrév', '15:20:00', '15:40:00'),
(99, 'M5', 'Tihanyrév', 'Tihany', '15:40:00', '15:55:00'),
(100, 'M6', 'Tihany', 'Tihanyrév', '17:30:00', '17:50:00'),
(101, 'M6', 'Tihanyrév', 'Balatonföldvár', '17:50:00', '18:05:00');




2021. november 18., csütörtök

2021. november 17., szerda

2021.11.17. AB

Házi feladat befejezni a feladatsort. A megoldás alapján ellenőrizd.

A Termék feladatsor megoldása

1.  Listázd ki a képernyőre a termék nevét, és árát a termék neve szerinti
növekvő sorrendben.
SELECT terméknév, termék_ár FROM termékek ORDER BY terméknév
2.  Listázd ki a képernyőre a termék nevét és a csoport nevét,
a második oszlop neve legyen: csoport.
SELECT terméknév, csoport_azonosító AS 'Csoport' FROM termékek
3.  Listázd ki a képernyőre az első kettő termék csoportnevét
és a termék nevét a csoport neve szerinti csökkenő sorrendben.
SELECT terméknév, csoport_azonosító  AS "Csoport"FROM termékek
ORDER BY csoport_azonosító DESC LIMIT 2
4.  Listázd ki a képernyőre azoknak a termékeknek a nevét,
amelyekben szerepel a "kártya".
SELECT terméknév FROM termékek WHERE terméknév LIKE '%kártya%'
5.  Írd ki a képernyőre, hogy hány darab termék tartozik
a 04-es csoportba (egyenlő a 04-gyel).
SELECT COUNT(terméknév) FROM termékcsoportok WHERE csoport_azonosító = '04'
6.  Írd ki a képernyőre a termékek átlag árát.
SELECT AVG(termék_ár) FROM termékek
7.  Listázd ki a képernyőre termékcsoportonként (a termék csoportneve jelenjen meg)
a maximális árat.
ezt pótoljuk


Továbbfejlesztés, ha már tudjuk a táblák összekapcsolását:
1.  Listázd ki a képernyőre a termék nevét, és árát a termék neve
 szerinti növekvő sorrendben.
SELECT terméknév, termék_ár FROM termékek ORDER BY terméknév ASC;
2.  Listázd ki a képernyőre a termék nevét és a csoport nevét,
 a második oszlop neve legyen: csoport.
SELECT termékek.terméknév, termékcsoportok.csoportnév AS 'Csoport'
 FROM termékek INNER JOIN termékcsoportok
  ON termékcsoportok.csoport_azonosító=termékek.csoport_azonosító;
3.  Listázd ki a képernyőre az első kettő termék csoportnevét
 és a termék nevét a csoport neve szerinti csökkenő sorrendben.
SELECT termékcsoportok.csoportnév, termékek.terméknév
FROM termékek INNER JOIN termékcsoportok
 ON termékcsoportok.csoport_azonosító=termékek.csoport_azonosító
  ORDER BY termékcsoportok.csoportnév DESC LIMIT 2;
4.  Listázd ki a képernyőre termékcsoportonként
 (a termék csoportneve jelenjen meg) a maximális árat.
SELECT csoportnév, MAX(termékek.termék_ár) AS 'A termék maximális ára',
  FROM termékek INNER JOIN termékcsoportok
  ON termékcsoportok.csoport_azonosító=termékek.csoport_azonosító
  group by csoportnév;

2021. november 15., hétfő

2021.11.15. AB

 Ma védőnői vizsgálatok voltak.

A Termék adatbázist együtt elkezdtük, itt folytatjuk.

2021. november 11., csütörtök

2021.11.11. AB

  Befejeztük az Áru adatbázist, elkezdtük a Terméket. Ezt be kell fejezni otthon, a megoldást az adatbázisos digifüzetbe feltölteni. A forrás a Teamsben van.

2021. november 9., kedd

2021.11.09. ISZ

 Latinovits folytatása. Van, aki kész, a hiányzók az elején tartanak.

(Az Energiacellát többen nem adták le Teamsen.)

2021.11.09. AB

 Eljutottunk a HAVING-ig ma.

Házi feladat mindenkinek otthon felvinni a minta adatbázist, feltölteni adatokkal, és az eddig tanult lekérdezéseket kipróbálni. Számonkérés várható.

A Group by-nál csak a legegyszerűbb alkalmazást kell tudni, a having-et nem kell egyelőre tudni használni.


SELECT * FROM `diakok`
SELECT * FROM `diakok` order by nev
SELECT * FROM `diakok` order by nev, szuletesi_ev
SELECT * FROM `diakok` order by nev desc, szuletesi_ev
SELECT * FROM `diakok` limit 1
SELECT * FROM `diakok` limit 3
SELECT * FROM `diakok` order by szuletesi_ev desc limit 1
SELECT * FROM `diakok`
SELECT * FROM diakok WHERE nev LIKE 'Horváth%' AND szuletesi_ev>=1990
SELECT * FROM diakok WHERE szuletesi_ev=1991 OR szuletesi_ev=1990
SELECT * FROM diakok WHERE szuletesi_hely IN ('Karcag''Kisvárda')
SELECT * FROM diakok WHERE szuletesi_hely not IN ('Karcag''Kisvárda')
SELECT * FROM diakok WHERE szuletesi_ev BETWEEN 1988 AND 1990
SELECT * FROM diakok WHERE szuletesi_ev > 1988 and szuletesi_ev <1990
SELECT * FROM diakok WHERE szuletesi_ev NOT BETWEEN 1988 AND 1990
SELECT nev AS Name, szuletesi_ev AS Birthdate FROM diakok
SELECT nev AS Name, (2021 - szuletesi_ev) AS Birthdate FROM diakok
SELECT nev AS Name, (2021 - szuletesi_ev) FROM diakok
SELECT nev AS Name, (2021 - szuletesi_ev) as 'A diák kora' FROM diakok
select count(*) from diakok
select count(nev) from diakok
select count(nev) as 'Sorok száma' from diakok
select min(szuletesi_ev) as 'Legkisebb születési év' from diakok
select max(szuletesi_ev) as 'Legnagyobb születési év' from diakok
select nev, max(szuletesi_ev) as 'Legnagyobb születési év' from diakok
SELECT * FROM `diakok` group by szuletesi_ev
SELECT szuletesi_ev FROM `diakok` group by szuletesi_ev

2021. november 8., hétfő

2021.11.08. AB

 A 13. oldal aljáig jutottunk el. A dolgozat a következő óra után lesz.

SELECT * FROM `diakok`
SELECT * FROM `diakok` order by nev
SELECT * FROM `diakok` order by nev, szuletesi_ev
SELECT * FROM `diakok` order by nev desc, szuletesi_ev
SELECT * FROM `diakok` limit 1
SELECT * FROM `diakok` limit 3
SELECT * FROM `diakok` order by szuletesi_ev desc limit 1
SELECT * FROM `diakok`
SELECT * FROM diakok WHERE nev LIKE 'Horváth%' AND szuletesi_ev>=1990
SELECT * FROM diakok WHERE szuletesi_ev=1991 OR szuletesi_ev=1990
SELECT * FROM diakok WHERE szuletesi_hely IN ('Karcag''Kisvárda')
SELECT * FROM diakok WHERE szuletesi_hely not IN ('Karcag''Kisvárda')
SELECT * FROM diakok WHERE szuletesi_ev BETWEEN 1988 AND 1990
SELECT * FROM diakok WHERE szuletesi_ev > 1988 and szuletesi_ev <1990
SELECT * FROM diakok WHERE szuletesi_ev NOT BETWEEN 1988 AND 1990
SELECT nev AS Name, szuletesi_ev AS Birthdate FROM diakok
SELECT nev AS Name, (2021 - szuletesi_ev) AS Birthdate FROM diakok
SELECT nev AS Name, (2021 - szuletesi_ev) FROM diakok
SELECT nev AS Name, (2021 - szuletesi_ev) as 'A diák kora' FROM diakok
select count(*) from diakok
select count(nev) from diakok
select count(nev) as 'Sorok száma' from diakok
select min(szuletesi_ev) as 'Legkisebb születési év' from diakok
select max(szuletesi_ev) as 'Legnagyobb születési év' from diakok
select nev, max(szuletesi_ev) as 'Legnagyobb születési év' from diakok