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

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
a (David14 átnevezte a(z) Informatika 2 - SQL nyelv labor lapot a következő névre: Informatika 2 - Adatbázisok használata labor: 2013 aktualizálás)
(Nincs különbség)

A lap 2013. február 11., 20:40-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?

A where feltételben lehet egyedül vizsgálni, a következő módon:

where pelda is null

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