„Informatika 2 - Adatbázisok használata labor” változatai közötti eltérés

A VIK Wikiből
David14 (vitalap | szerkesztései)
David14 (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
12. sor: 12. sor:
'''Egy rekord beszúrása:'''
'''Egy rekord beszúrása:'''


''insert into táblanév (oszlopok listája)''
'''insert into''' ''táblanév (oszlopok listája)''


''values (értékek listája)''
'''values''' ''(értékek listája)''


Az oszlopok listája elhagyható, ekkor minden oszlopnak értéket kell adni.
Az oszlopok listája elhagyható, ekkor minden oszlopnak értéket kell adni.


'''Több rekord esetén:'''
'''Több rekord esetén:'''


''insert into táblanév (oszlopok listája)''
'''insert into''' ''táblanév (oszlopok listája)''


''select...''
'''select...'''


Itt a select egy lekérdezést hajt végre, és az általa lekérdezett összes sor beszúrásra kerül.
Itt a select egy lekérdezést hajt végre, és az általa lekérdezett összes sor beszúrásra kerül.
29. sor: 28. sor:
== Milyen szintaktikájú SQL utasítással lehet módosítani rekordokat? ==
== Milyen szintaktikájú SQL utasítással lehet módosítani rekordokat? ==


''update táblanév
'''update''' ''táblanév''


set oszlopnév=érték1, oszlopnév2=érték2...
'''set''' ''oszlopnév=érték1, oszlopnév2=érték2...''


where logikai feltétel''
'''where''' ''logikai feltétel''


A where rész elhagyható, ekkor a tábla összes rekordja módosításra kerül.
A where rész elhagyható, ekkor a tábla összes rekordja módosításra kerül.
39. sor: 38. sor:
== Milyen szintaktikájú SQL utasítással lehet törölni rekordokat? ==
== Milyen szintaktikájú SQL utasítással lehet törölni rekordokat? ==


''delete from táblanév
'''delete from''' ''táblanév''


where logikai feltétel''
'''where''' ''logikai feltétel''


A where után megadott logikai kifejezés teljesülése (=igaz) esetén az adott sor törlődik. A where elhagyható, ekkor a tábla összes sora törlődni fog.
A where után megadott logikai kifejezés teljesülése (=igaz) esetén az adott sor törlődik. A where elhagyható, ekkor a tábla összes sora törlődni fog.

A lap 2013. január 26., 01:36-kori változata

Ez az oldal az Informatika 2 című tárgy - SQL nyelv labor beugrókérdéseinek kidolgozását tartalmazza.

Jelenleg még elég hiányos a kidolgozás, továbbá évről évre kismértékben változhatnak beugrókérdések. A tanszéki honlapról mindig elérhető az aktuális mérési útmutató, mely az aktuális beugrókérdéseket tartalmazza.

Kérlek szerkesszétek, aktualizáljátok!


Milyen szintaktikájú SQL utasítással lehet létrehozni egy rekordot egy táblában?

Egy rekord beszúrása:

insert into táblanév (oszlopok listája)

values (értékek listája)

Az oszlopok listája elhagyható, ekkor minden oszlopnak értéket kell adni.

Több rekord esetén:

insert into táblanév (oszlopok listája)

select...

Itt a select egy lekérdezést hajt végre, és az általa lekérdezett összes sor beszúrásra kerül.

Milyen szintaktikájú SQL utasítással lehet módosítani rekordokat?

update táblanév

set oszlopnév=érték1, oszlopnév2=érték2...

where logikai feltétel

A where rész elhagyható, ekkor a tábla összes rekordja módosításra kerül.

Milyen szintaktikájú SQL utasítással lehet törölni rekordokat?

delete from táblanév

where logikai feltétel

A where után megadott logikai kifejezés teljesülése (=igaz) esetén az adott sor törlődik. A where elhagyható, ekkor a tábla összes sora törlődni fog.

Hogyan lehet vizsgálni egy kifejezés nullitását?

kifejezés is null <- csak így lehet, a kifejezés = null értéke akkor sem lesz igaz, ha a kifejezés értéke egyébként null, mivel ha valamit null-al hasonlítunk össze, az mindig false

pl: SELECT FROM tanszekek WHERE shortname is null

Ezt a külön nyelvi konstrukciót lehet a null-ság vizsgálatára használni.

Miképp működik a like operátor? Milyen joker karaktereket lehet használni?

kifejezés like string minta

String összehasonlító operátor, a kifejezésben keres a mintának megfelelően, és ha a minta illeszthető a kifejezésre, akkor az operátor igaz értékkel tér vissza. A mintaillesztés case sensitive, a használható joker karakterek:

_: egy betű helyettesítése

%: tetszőleges hosszúságú szöveg helyettesítése

dupla aposztróf: szimpla aposztróf, mivel, a szimpla aposztróf jel önmagában a stringhatároló karakter

pl.: select * from termek where nev like ’%er%’

azon termékek listája, amelyek neve tartalmazza az er karaktersorozatot

Hogyan működnek az oszlopfüggvények?

A lekérdezés eredményeként kapott rekordhalmazon lehet utólagos kalkulációt végezni velük:

  • sum: értékek összegzése
  • min: legkisebb érték megkeresése
  • max: legnagyobb érték
  • avg: átlag számítása
  • count: rekordok megszámolása

A kiszámítandó oszlopfüggvényeket a select listában kell megadni. Az adatbázis-kezelő szerver először lefuttatja a lekérdezést az oszlopfüggvények nélkül, majd az egyes rekordokat átadja az oszlopfüggvényeknek, az értékek kiszámítására. Az oszlopfüggvények a null értéket nem veszik figyelembe, kivéve a count(*) függvény.

Mire szolgál a having kulcsszó?

Ha az oszlopfüggvény eredményére teszünk megkötést, akkor ezt a where részben nem adhatjuk meg, mivel az kiértékelődik még az oszlopfüggvények kiszámítása előtt. Ezért ha az oszlopfüggvények kimenetére szeretnénk szűrni, akkor azt külön a having kulcsszó után lehet megadni.

Írja fel a select utasítás általános szintaktikáját!

	select [discint] oszloplista
	from táblalista
	[where logikai kifejezés]
	[group by oszloplista]
	[having logikai kifejezés]
	[order by oszloplista]

Mire szolgál az isnull függvény MS SQL Serveren?

Az isnull(kifejezés1,kifejezés2) Ha a kifejezés1 értéke nem null, akkor a kifejezés1-et adja vissza, ha null, akkor a kifejezés2-t. Néha van olyan, hogy egy változó értéke lehet, hogy null, és ha null, akkor lehet, hogy helyette valami mással szeretnék dolgozni.

Miképp lehet megadni két tábla outer joinját MS SQL Serveren?

A join művelet tulajdonsága, hogy a nem párosítható rekordokat nem tartalmazza az eredményhalmaz. A left outer join abban tér el ettől, hogy ha mondjuk az első táblának volt olyan sora, ami semmilyen módon nem került be a kiválasztott sorok közé, akkor nem kerül be, itt viszont bekerül, és a hozzá tartozó második táblabeli oszlopok értékei mind null-ok lesznek. A right outer join ugyanez, csak a két tábla szerepe felcserélve.

select *

from termek right outer join gyarto on gyartoid=gyarto.id

select *

from gyarto left outer join termek on gyartoid=gyarto.id