Ms sql szerver lekérdezések írása. SQL-lekérdezések végrehajtása a Management Studio-ban. Átlag számított mező hozzáadása
Táblázatkifejezések allekérdezéseknek nevezzük, amelyeket ott használunk, ahol egy tábla jelenléte várható. Kétféle táblázatkifejezés létezik:
származtatott táblázatok;
általánosított táblázatos kifejezések.
A táblázatkifejezések e két formáját a következő alfejezetek tárgyalják.
Származtatott táblázatok
Származtatott táblázat egy táblakifejezés, amely egy lekérdezés FROM záradékában található. A származtatott táblák olyan esetekben használhatók, amikor az oszlopálnevek használata nem lehetséges, mert az SQL fordító egy másik utasítást dolgoz fel, mielőtt az álnév ismertté válik. Az alábbi példa egy oszlopálnév használatára tett kísérletet mutat be olyan helyzetben, amikor egy másik záradék feldolgozása folyamatban van, mielőtt az alias ismertté válna:
HASZNÁLATA SampleDb; SELECT MONTH(EnterDate) mint belépési_hónap FROM Munkavégzés GROUP BY belépés_hónap;
A lekérdezés futtatása a következő hibaüzenetet produkálja:
207. üzenet, 16. szint, 1. állapot, 5. sor Érvénytelen oszlopnév: „enter_month”. (207. üzenet: 16. szint, 1. állapot, 5. sor Érvénytelen oszlopnév beírás_hónap)
A hiba oka az, hogy a GROUP BY záradék feldolgozása a SELECT utasítás megfelelő listájának feldolgozása előtt megtörténik, és az enter_month oszlop álneve ismeretlen a csoport feldolgozása során.
Ez a probléma megoldható egy származtatott tábla használatával, amely tartalmazza az előző lekérdezést (a GROUP BY záradék nélkül), mivel a FROM záradék a GROUP BY záradék előtt kerül végrehajtásra:
HASZNÁLATA SampleDb; SELECT belépési_hónap FROM (SELECT MONTH(EnterDate) mint belépési_hónap FROM Munkaidő) AS m GROUP BY belépési_hónap;
A lekérdezés eredménye a következő lesz:
Általában egy táblakifejezés bárhol elhelyezhető a SELECT utasításban, ahol a tábla neve megjelenhet. (A táblakifejezés eredménye mindig egy tábla, vagy speciális esetekben egy kifejezés.) Az alábbi példa egy táblakifejezés használatát mutatja be egy SELECT utasítás kijelölő listájában:
Ennek a lekérdezésnek az eredménye:
Általános táblázati kifejezések
Közös táblakifejezés (OTB) egy elnevezett táblakifejezés, amelyet a Transact-SQL nyelv támogat. A gyakori táblakifejezések a következő két típusú lekérdezésben használatosak:
nem rekurzív;
rekurzív.
Ezt a két típusú kérelmet a következő szakaszok tárgyalják.
OTB és nem rekurzív lekérdezések
Az OTB nem rekurzív formája a származtatott táblák és nézetek alternatívájaként használható. Általában az OTB-t az határozza meg záradékokkalés egy további lekérdezés, amely a WITH záradékban használt névre hivatkozik. A Transact-SQL-ben a WITH kulcsszó jelentése nem egyértelmű. A félreértések elkerülése érdekében a WITH utasítást megelőző utasítást pontosvesszővel kell zárni.
HASZNÁLATA AdventureWorks2012; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") AND Freight > (SELECT AVG(TotalDue) FROM Sales.WorderHeader2. ")/2,5;
A példában szereplő lekérdezés azokat a rendeléseket választja ki, amelyek teljes adója (TotalDue) nagyobb, mint az összes adó átlaga, és amelyek fuvardíja (Freight) meghaladja az átlagos adók 40%-át. Ennek a lekérdezésnek a fő tulajdonsága a hossza, mivel az allekérdezést kétszer kell megírni. Az egyik lehetséges módjai a lekérdezési konstrukció méretének csökkentése egy részlekérdezést tartalmazó nézet létrehozása. Ez a megoldás azonban kissé bonyolult, mert egy nézetet kell létrehozni, majd a lekérdezés végrehajtása után törölni kell. Jobb megközelítés lenne egy OTB létrehozása. Az alábbi példa a nem rekurzív OTB használatát mutatja be, amely lerövidíti a fenti lekérdezésdefiníciót:
HASZNÁLATA AdventureWorks2012; WITH price_calc(year_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT év_ár_2005.év) FROM_ár_2005. ) /2,5;
A WITH záradék szintaxisa a nem rekurzív lekérdezésekben a következő:
A cte_name paraméter az eredményül kapott táblát meghatározó OTB-nevet, a column_list paraméter pedig a táblakifejezés oszlopainak listáját jelöli. (A fenti példában az OTB neve price_calc, és egy oszlopa van, év_2005.) Az inner_query paraméter egy SELECT utasítást jelent, amely a megfelelő táblázatkifejezés eredményhalmazát adja meg. A definiált táblakifejezés ezután használható a külső_lekérdezésben. (A fenti példában a külső lekérdezés az OTB price_calc értéket és annak év_2005 oszlopát használja a duplán beágyazott lekérdezés egyszerűsítésére.)
OTB és rekurzív lekérdezések
Ez a rész fokozott összetettségű anyagokat mutat be. Ezért első olvasásakor ajánlatos kihagyni, és később visszatérni hozzá. Az OTB-k használhatók rekurziók megvalósítására, mivel az OTB-k tartalmazhatnak hivatkozásokat önmagukra. A rekurzív lekérdezések alapvető OTB szintaxisa így néz ki:
A cte_name és oszloplista paraméterek jelentése ugyanaz, mint az OTB-ben a nem rekurzív lekérdezéseknél. A WITH záradék törzse két, az operátor által kombinált lekérdezésből áll UNIÓ MINDEN. Az első lekérdezést csak egyszer hívják meg, és elkezdi felhalmozni a rekurzió eredményét. Az UNION ALL operátor első operandusa nem hivatkozik az OTB-re. Ezt a lekérdezést referencia lekérdezésnek vagy forrásnak nevezik.
A második lekérdezés hivatkozást tartalmaz az OTB-re, és annak rekurzív részét képviseli. Emiatt rekurzív tagnak nevezik. A rekurzív rész első hívásakor az OTB hivatkozás a referencialekérdezés eredményét jelenti. A rekurzív tag az első lekérdezés hívás eredményét használja. Ezt követően a rendszer újra meghívja a rekurzív részt. Egy rekurzív tag hívása leáll, amikor egy korábbi hívás üres eredményhalmazt ad vissza.
Az UNION ALL operátor egyesíti az aktuálisan felhalmozott sorokat, valamint az aktuális hívás által a rekurzív taghoz hozzáadott további sorokat. (Az UNION ALL operátor jelenléte azt jelenti, hogy az ismétlődő sorok nem kerülnek eltávolításra az eredményből.)
Végül az outer_query paraméter határozza meg azt a külső lekérdezést, amelyet az OTB használ a mindkét tag csatlakozására irányuló összes hívás lekéréséhez.
Az OTB rekurzív formájának bemutatásához az alábbi példában látható kóddal definiált és feltöltött Repülőgép táblát használjuk:
HASZNÁLATA SampleDb; TÁBLÁZAT LÉTREHOZÁSA Repülőgép(TartalmazóAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), MennyiségTartalmazott INT, Egységköltség DECIMAL(6,2)); INSERT INTO Repülőgép ÉRTÉKEK ("Airplane", "Fuselage", 1, 10); INSERT INTO Airplane VALUES ("Airplane", "Wings", 1, 11); INSERT INTO Airplane VALUES ("Airplane", "Tail", 1, 12); INSERT INTO Airplane VALUES ("törzs", "szalon", 1, 13); INSERT INTO Airplane VALUES ("Tüzér", "Cockpit", 1, 14); INSERT INTO Repülőgép ÉRTÉKEK ("Tüzér", "Orr",1, 15); INSERT INTO Airplane VALUES ("Cabin", NULL, 1,13); INSERT INTO Airplane VALUES ("Cockpit", NULL, 1, 14); INSERT INTO Airplane VALUES ("Orr", NULL, 1, 15); INSERT INTO Airplane VALUES ("Wings", NULL,2, 11); INSERT INTO Airplane VALUES ("Tail", NULL, 1, 12);
A Repülőgép táblázat négy oszlopból áll. A ContainingAssembly oszlop az összeállítást, a ContainedAssembly oszlop pedig a megfelelő összeállítást alkotó alkatrészeket (egyenként) azonosítja. Az alábbi ábra grafikusan szemlélteti egy lehetséges repülőgéptípust és alkatrészeit:
A Repülőgép táblázat a következő 11 sorból áll:
A következő példa a WITH záradékot használja egy lekérdezés meghatározására, amely kiszámítja az egyes buildek teljes költségét:
HASZNÁLATA SampleDb; Alkatrészlista(összeállítás1, mennyiség, költség) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM Repülőgép WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.contity) *DECl.mennyiség6 *DECl. ) FROM list_of_parts l, Repülőgép a WHERE l.assembly1 = a.ContainedAssembly) SELECT assembly1 "Alkatrész", mennyiség "Mennyiség", költség "Ár" FROM_of_parts;
A WITH záradék egy list_of_parts nevű OTB listát határoz meg, amely három oszlopból áll: összeállítás1, mennyiség és költség. A példában szereplő első SELECT utasítást csak egyszer hívjuk meg, hogy eltároljuk a rekurziós folyamat első lépésének eredményeit. A példa utolsó sorában található SELECT utasítás a következő eredményt jeleníti meg.
Az SQL vagy Structured Query Language egy nyelv, amelyet a relációs adatbázisrendszerben (RDBMS) lévő adatok kezelésére használnak. Ez a cikk az általánosan használt SQL parancsok, amelyet minden programozónak ismernie kell. Ez az anyag ideális azok számára, akik állásinterjú előtt szeretnék felfrissíteni SQL-ismereteiket. Ehhez nézze meg a cikkben szereplő példákat, és ne feledje, hogy párban tanulmányozta az adatbázisokat.
Vegye figyelembe, hogy egyes adatbázisrendszerek pontosvesszőt igényelnek minden utasítás végén. A pontosvessző az szabványos mutató minden SQL utasítás végén. A példák MySQL-t használnak, ezért pontosvessző szükséges.
Adatbázis létrehozása a példákhoz
Hozzon létre egy adatbázist a csapatok működésének bemutatására. A munkához két fájlt kell letöltenie: DLL.sql és InsertStatements.sql. Ezután nyisson meg egy terminált, és jelentkezzen be a MySQL konzolba a következő paranccsal (a cikk feltételezi, hogy a MySQL már telepítve van a rendszeren):
Mysql -u root -p
Ezután adja meg jelszavát.
Futtassa a következő parancsot. Nevezzük az adatbázist egyetemnek:
ADATBÁZIS LÉTREHOZÁSA egyetem; USE egyetem; FORRÁS Előfordulhat, hogy korlátozásokat kell létrehoznia a táblázat egyes oszlopaiban. Táblázat létrehozásakor a következő korlátozásokat állíthatja be: Egynél több elsődleges kulcsot is megadhat. Ebben az esetben egy összetett elsődleges kulcsot kap. Hozzon létre egy "oktató" táblázatot: TÁBLÁZAT LÉTREHOZÁSA oktató (ID CHAR(5), név VARCHAR(20) NOT NULL, részlegnév VARCHAR(20), fizetés SZÁMSZÁM(8,2), ELSŐDLEGES KULCS (ID), IDEGEN KULCS (részleg_neve) REFERENCIÁK osztály(részleg_neve)); A következő paranccsal különféle információkat (értéktípust, kulcsot vagy nem) tekinthet meg a táblázat oszlopairól: LEÍRÁS Amikor egy táblázat minden oszlopához adatot ad hozzá, nem kell oszlopneveket megadnia. INSERT INTO A SELECT egy adott tábla adatainak lekérésére szolgál: KIVÁLASZTÁS A következő parancs képes megjeleníteni a táblázat összes adatát: VÁLASSZON A táblázat oszlopai ismétlődő adatokat tartalmazhatnak. A SELECT DISTINCT használatával csak nem ismétlődő adatokat kérhet le. SELECT DISTINCT Használhatja a WHERE kulcsszót a SELECT-ben a feltételek megadásához a lekérdezésben: KIVÁLASZTÁS A kérelemben a következő feltételek adhatók meg: Próbálja ki a következő parancsokat. Ügyeljen a WHERE részben megadott feltételekre: SELECT * FROM tanfolyam WHERE dept_name=’Comp. Sci.”; SELECT * FROM kurzus WHERE kredit>3; SELECT * FROM course WHERE dept_name="Comp. Sci." ÉS kredit>3; A GROUP BY operátort gyakran használják összesített függvények például COUNT, MAX, MIN, SUM és AVG a kimeneti értékek csoportosításához. KIVÁLASZTÁS Jelentsük meg az egyes karok képzéseinek számát: SELECT COUNT(kurzusazonosító), részleg_neve FROM kurzus GROUP BY részleg_neve; A HAVING kulcsszót hozzáadtuk az SQL-hez, mert a WHERE nem használható összesítő függvényekkel. KIVÁLASZTÁS Mutassuk meg azoknak a karoknak a listáját, amelyek egynél több kurzussal rendelkeznek: SELECT COUNT(kurzusazonosító), részlegnév FROM kurzus GROUP BY részleg_neve HAVING COUNT(kurzusazonosító)>1; Az ORDER BY a lekérdezési eredmények csökkenő vagy növekvő sorrendbe rendezésére szolgál. A ORDER BY növekvő sorrendbe rendeződik, hacsak nincs megadva ASC vagy DESC. KIVÁLASZTÁS Mutassuk meg a kurzusok listáját a kreditek növekvő és csökkenő sorrendjében: SELECT * FROM kurzusból ORDER BY kreditek; SELECT * FROM tanfolyam ORDER BY kreditek DESC; A BETWEEN az adatértékek kiválasztására szolgál egy adott tartományból. Numerikus és szöveges értékek, valamint dátumok. KIVÁLASZTÁS Mutassuk meg azoknak az oktatóknak a listáját, akiknek fizetése meghaladja az 50 000-et, de kevesebb, mint 100 000: SELECT * FROM oktatótól WHERE fizetés 50000 ÉS 100000 KÖZÖTT; A LIKE operátor a WHERE mezőben egy hasonló érték keresési mintájának megadására szolgál. Két ingyenes operátort használ a LIKE: Mutassuk meg azoknak a kurzusoknak a listáját, amelyeknek a neve tartalmazza a „to”-t, valamint azon kurzusok listáját, amelyek neve „CS-”-vel kezdődik: SELECT * FROM kurzus WHERE cím LIKE ‘%to%’; SELECT * FROM tanfolyam WHERE kurzusazonosító LIKE "CS-___"; Az IN használatával több értéket is megadhat a WHERE záradékhoz: KIVÁLASZTÁS Mutassuk meg a Comp szakok hallgatóinak listáját. Sci., Physics and Elec. angol: SELECT * FROM diák WHERE tanszéknév IN ('Comp. Sci.', 'Physics', 'Elec. Eng.'); A JOIN két vagy több tábla összekapcsolására szolgál közös attribútumok használatával. Az alábbi képen látható különböző módokon SQL-be csatlakozik. Jegyezze meg a különbséget a bal oldali külső csatlakozás és a jobb oldali külső csatlakozás között: KIVÁLASZTÁS Megjelenítjük az összes kurzus listáját és a karokkal kapcsolatos releváns információkat: SELECT * FROM tanfolyam JOIN osztály ON tanfolyam.részleg_neve=részleg.részleg_neve; Megjelenítjük az összes szükséges kurzus listáját és a velük kapcsolatos részleteket: SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTTER JOIN course ON prereq.course_id=course.course_id; Megjelenítjük az összes kurzus listáját, függetlenül attól, hogy kötelezőek-e vagy sem: SELECT kurzus.kurzusazonosító, cím, részleg_neve, kreditek, prereq_id FROM prereq RIGHT OUTTER JOIN kurzus ON prereq.course_id=course.course_id; A View egy virtuális SQL-tábla, amely egy kifejezés végrehajtása eredményeként jön létre. Sorokat és oszlopokat tartalmaz, és nagyon hasonlít egy normál SQL-táblához. A View mindig az adatbázis legfrissebb információit mutatja. Hozzunk létre egy nézetet, amely 3 kredites kurzusokból áll: Ezek a függvények a kérdéses adatokhoz kapcsolódó összesített eredmény elérésére szolgálnak. A következő gyakran használt összesítő függvények: A beágyazott allekérdezések olyan SQL-lekérdezések, amelyek egy másik lekérdezésbe ágyazott SELECT , FROM és WHERE záradékot tartalmaznak. Nézzük meg azokat a kurzusokat, amelyeket 2009 őszén és 2010 tavaszán tartottak: SELECT DISTINCT kurzusazonosító FROM szekció WHERE félév = 'Ősz' AND év= 2009 AND kurzusazonosító IN (SELECT kurzusazonosító FROM szekció WHERE félév = 'tavasz' ÉS év= 2010); SQL - Strukturált lekérdezési nyelv. Leírás
bigint (int 8) bigint (int 8) bináris(n) bináris n) vagy kép karakter nemzeti karakter vagy ntext karakter változó(szinonima char változó varchar) nemzeti karakter változó vagy ntext Dátum idő dátum idő decimális más néven numerikus dupla pontosság dupla pontosság egész szám (int 4) (szinonima: int) egész szám (int 4) nemzeti jelleg(szinonima: nemzeti jelleg, nchar) nemzeti jelleg Numerikus(szinonimák: decimális, december) nemzeti karakter változó(szinonimák: nemzeti char változó, nvarchar) Változó nemzeti karakter Kis dátumidő dátum idő smallint (int 2) smallint (int 2) Kis pénz sql_variant Már nem támogatott Ntext Időbélyeg Nem támogatott aprócska (int 1) aprócska (int 1) Egyedi azonosító egyedi azonosító varbináris(n) varbináris n) vagy kép kis randevú dátum idő smallint (int 2) smallint (int 2) kis pénz sql_variant Nem támogatott időbélyeg Nem támogatott aprócska (int 1) aprócska (int 1) egyedi azonosító egyedi azonosító varbináris(n) varbináris n) vagy kép Adattípus táblázat az SQL Server 2000 rendszerben Kérés egy parancs, amelyet az adatbázis-programnak adsz. A lekérdezések a DML nyelv részét képezik. Minden SQL lekérdezés egyetlen parancsból áll. Ennek a parancsnak a felépítése megtévesztően egyszerű, mert ki kell bővítenie rendkívül összetett kiértékelések és adatkezelések végrehajtásához. KIVÁLASZTÁS A „Select” a leggyakrabban használt parancs, a táblázat adatainak kiválasztására szolgál. SELECT id, user_name, city, születési_nap FROM user_base; Egy ilyen lekérdezés megjeleníti a user_base táblából a megadott oszlopok összes értékét vesszővel elválasztva. SELECT parancsok. Ezenkívül az összes oszlopot egy karakterrel is megjelenítheti, azaz * azaz. SELECT * FROM user_base ; - egy ilyen lekérdezés megjeleníti a táblázat összes adatát. SELECT (A lekérdezésben megjelenítendő oszlopnevek vesszővel elválasztva) FROM (táblanév az adatbázisban) Az értékek három DML (Data Manipulation Language) paranccsal helyezhetők el és távolíthatók el a mezőkből: INSERT INTO user_base (felhasználói_név, város, születési_nap) ÉRTÉKEK ('Sándor', 'Rosztov', '1991.06.20'); UPDATE users_base SET user_name = 'Alexey'; Az UPDATE parancs frissíti az értékeket egy táblázatban. Először maga az UPDATE parancs jön, majd a tábla neve, a SET parancs (set) után, majd az oszlop neve és értéke idézőjelben (az idézőjelek karakterlánc formátumúak, ha numerikus értékek és az oszlop nem kötődik a vchar adattípushoz vagy más karakterlánctípusokhoz, az idézőjeleknek nincs jelentése.) DELETE FROM users_base WHERE user_name = 'Vaszilij'; A DELETE parancs törli a teljes sort, és a WHERE feltétel segítségével azonosítja a sort. Ebben az esetben ez a lekérdezés minden olyan sort töröl, amelyben a user_name oszlop értéke Vaszilij volt. A WHERE kritériumról és egyebekről kicsit később fogunk beszélni. A WHERE záradék a SELECT parancs és más DML-parancsok záradéka, amely lehetővé teszi olyan predikátumok beállítását, amelyek feltétele igaz vagy hamis lehet a táblázat bármely sorában. A parancs csak azokat a sorokat kéri le a táblából, amelyekre ez az állítás igaz. ORDER BY - a kiválasztott sorok rendezésének feltétele. 2 ASC és DESC kritériuma van. ASC (rendezés A-tól Z-ig vagy 0-tól 9-ig) DESC (az ASC ellentéte). Ez a feltétel a WHERE záradékkal együtt is használható. A DISTINCT egy olyan argumentum, amely lehetőséget biztosít a kettős értékek kiküszöbölésére a SELECT záradékból. Azok. ha egy oszlopban ismétlődő értékek vannak, mondjuk a user_name, akkor a DISTINCT csak egy értéket fog megjeleníteni, például 2 Alexey nevű személy van az adatbázisában, akkor a DISTINCT függvényt használó lekérdezés csak 1 értéket mutat. amivel először találkozunk... ÉS - két logikai értéket (A ÉS B formában) vesz fel érvként, és értékeli őket az igazság ellenében, hogy mindkettő igaz-e. VAGY - két logikai értéket (A VAGY B formában) vesz argumentumként, és kiértékeli, hogy az egyik helyes-e. SELECT * FROM users_base WHERE city = 'Rosztov' OR user_name = 'Alexander';- megjeleníti az összes értéket abból a táblázatból, ahol Rostov városának neve vagy Alexander felhasználónév szerepel a sorban. NOT - egyetlen logikai értéket (NOT A formában) vesz fel argumentumként, és megváltoztatja annak értékét hamisról igazra vagy igazról hamisra. IN - meghatároz egy értékkészletet, amelyben egy adott érték szerepelhet vagy nem. A között hasonló az IN operátorhoz. A halmazból származó számokkal történő definiálástól eltérően, mint ahogy az IN is, a BETWEEN egy tartományt definiál, amelynek értékeinek csökkennie kell ahhoz, hogy az predikátum igaz legyen. COUNT – A lekérdezés által kiválasztott mezők sorszámát vagy nem NULL értékeit állítja elő. SZUM – az adott mezőben kiválasztott értékek számtani összegét állítja elő. AVG - átlagolja a mező összes kiválasztott értékét. MAX – a mezőben kiválasztott értékek közül a legnagyobbat állítja elő. MIN – a mezőhöz kiválasztott összes érték közül a legkisebbet állítja elő. CREATE TABLE user_base (azonosító egész szám, felhasználónév szövege, város szövege, születési_nap dátum és idő);- egy ilyen parancs végrehajtása a tábla létrehozásához vezet, amelyre példákat hoztam... Itt minden egyszerű, írjuk a CREATE TABLE parancsot, utána a létrehozni kívánt tábla nevét, majd zárójelben, vesszővel elválasztva az oszlopok nevét és adattípusát. Ez a szabványos módja a táblázat létrehozásának SQL-ben. Most adok egy példát táblák létrehozására SQL Server 2005-ben: ANSI_NULLS BEÁLLÍTÁSA Ha kérdése van ebben a témában, írjon nekem Olyan alkalmazás fejlesztése, amely bemutatja az alapvető műveleteket egy adatbázisban, például az MS SQL Serverben lévő adatokkal, nevezetesen: Az Education.dbo adatbázist vettük alapul, amelynek létrehozási folyamatát részletesen ismertetjük Az 1. ábra az Education.dbo adatbázis felépítését mutatja. Amint az ábrán látható, az adatbázis neve: Itt a „sasha-pc” a számítógép azonosítója a hálózaton, az „sqlexpress” az adatbázis-kiszolgáló neve, az „Education.dbo” pedig az adatbázis neve. Rizs. 1. Education.dbo adatbázis Az adatbázis két táblát tartalmaz: Student és Session. A táblázatok felépítése a következő. Diák asztal. Munkamenet asztal. Hozzon létre egy új, Windows Forms Application típusú projektet. Részletesen leírunk egy példát egy új projekt létrehozására Adatbázistáblák adatainak megjelenítéséhez használhatja különböző utak. Az egyik ilyen nézetek létrehozása, melyeket az MS Visual Studio segítségével generálnak. Esetünkben a táblázat adatai DataGridView típusú vezérlőben jelennek meg az űrlapon. A nézetek létrehozása után nagyon kényelmes a DataGridView elemekkel való társítása. Nézet létrehozásához a helyi menüből kell meghívni az „Új nézet hozzáadása” parancsot, amelyet az Education.dbo adatbázis „Nézetek” elemére jobb gombbal kattintva hívhatunk meg (2. ábra). Rizs. 2. Új nézet hozzáadásához szükséges parancs meghívása Ennek eredményeként megnyílik a „Táblázat hozzáadása” ablak (3. ábra). Az ablakban ki kell választani a nézethez hozzáadott táblázatokat. Rizs. 3. Az új nézet alapjául szolgáló táblák kiválasztása Esetünkben válassza ki a Tanuló táblázatot, és erősítse meg a választását a Hozzáadás gombra kattintva. A következő lépés az ablak bezárása a Bezárás gomb megnyomásával. A lépések elvégzése után egy ablak jön létre, amelyben ki kell választani a nézetben (az űrlapon) megjelenítendő mezőket. Jelölje ki az összes mezőt (4. ábra). Amikor kiválasztja a mezőket, a tanuló táblázat mezői a munkaterület tetején jelennek meg. Az egér segítségével kiválaszthatja a kívánt megjelenítési mezőket. Ennek megfelelően az ablak középső területén megjelenik a kiválasztott mezők neve, a táblázat, amelyben léteznek (lásd 4. ábra), a rendezés, szűrés stb. A terület alján megjelenik a megfelelő SQL-lekérdezés szövege, amelyet a nézet létrehozásához használnak. Rizs. 4. A nézetben megjelenítendő tanulói táblázat mezőinek kiválasztása Csapatválasztás után Megnyílik egy ablak, amelyben meg kell adnia a nézet nevét. Állítsa be a „Diák megtekintése” nevet (5. ábra). Rizs. 5. A nézet nevének megadása A lépések elvégzése után a bemutató ablak a 6. ábrán látható módon fog kinézni. Rizs. 6. Tekintse meg a hallgatói reprezentációt az adatbázisban Most már tárolhat egy DataGridView vezérlőt, és társítható egy nézettel. A DataGridView vezérlő elhelyezése előtt be kell lépnie a "Form1.cs" űrlaptervezési módba. A DataGridView elem egy táblázat, amely képes megjeleníteni az adatokat. Ez a vezérlő az Eszköztár panelen található. Először kissé módosítjuk az űrlap méretét, majd helyezzük rá a DataGridView vezérlőt (7. ábra). Ez alapértelmezés szerint létrehoz egy dataGridView1 nevű objektumpéldányt. Rizs. 7. DataGridView vezérlő és adatforrás kiválasztási ablak Miután elhelyezte a DataGridView vezérlőt az űrlapon, a jobb felső sarokban választhatja az adatforrás konfigurálását. Ennek megfelelően megnyílik a „DataGridView Tasks” ablak. Ebben az ablakban ki kell választania az „Adatforrás kiválasztása” előugró menüt. A megnyíló menüben válassza ki az „Add Project Data Source...” parancsot (7. ábra). Ezt követően megnyílik egy varázsló ablak, amelyben sorra kerül kiválasztásra az adatforrás. A 8. ábra a " Adatforrás konfigurációs varázsló“, amelyben az adatforrás típusa van kiválasztva. Esetünkben telepítjük az „Adatbázist”. Rizs. 8. Adatforrás típusának kiválasztása A következő ablakban (9. ábra) az adatforrás modellje kerül kiválasztásra. Ki kell választania a DataSet lehetőséget. Rizs. 9. Adatforrás modell kiválasztása A 10. ábrán látható ablakban meg kell adni azt az adatkapcsolatot, amellyel az adatbázishoz kapcsolódni kívánunk. Esetünkben ki kell választanunk az adatbázist " sasha-pc\sqlexpress\Education.dbo«.
Rizs. 10. Adatkapcsolat kiválasztása A következő ablak (11. ábra) javasolja a Connection String mentését az alkalmazás konfigurációs fájljába. Mindent úgy hagyunk, ahogy van, és továbblépünk a következő ablakhoz. Rizs. 11. Javaslat az adatbázis kapcsolati karakterlánc Connection String mentésére az alkalmazás konfigurációs fájljában Az adatbázis-kapcsolat létrehozása után számos adatbázis-objektum jelenik meg (12. ábra). Esetünkben ki kell választanunk a „Diák megtekintése” nézetet és abból az összes mezőt. A bejelölt mezők a DataGridView típusú komponensben jelennek meg. Rizs. 12. A DataGridView-ban megjelenítendő adatbázis-objektumok kiválasztása A Befejezés gomb kiválasztása után az Education.dbo adatbázis kiválasztott objektumai (View Student view) jelennek meg (13. ábra). Rizs. 13. DataGridView vezérlés kiválasztott View Student mezőkkel Hasonló módon konfigurálhat olyan nézeteket, amelyek bármely adatbázistáblából bármilyen mezőt tartalmaznak. Ezenkívül a különböző táblák mezői is megjeleníthetők egy nézetben. Ha futtatja az alkalmazást, a View Student nézetből kap adatokat, amely megfelel az adatbázisban található Student táblának (14. ábra). Rizs. 14. Pályázat végrehajtásra indítása Ahogy a 14. ábrán látható, a dataGridView1 táblában lévő adatok normál módon jelennek meg, de a kialakítás módosítható. A DataGridView típusú vezérlővel beállíthatja a megjelenített mezők megjelenését. A mezők szerkesztéséhez szükséges parancsok meghívásához egyszerűen hívja meg a helyi menüt a jobb gombbal a dataGridView1 vezérlőre kattintva. A menü változatos hasznos parancsokat, amelyek lehetővé teszik a DataGridView megjelenésének és működésének szabályozását: Esetünkben az „Oszlopok szerkesztése...” parancsot kell kiválasztani (15. ábra). Rizs. 15. A helyi menüből adja ki az „Oszlopok szerkesztése...” parancsot Ennek hatására megnyílik az „Oszlopok szerkesztése” ablak, amelyben a prezentációs mezők megjelenését tetszés szerint testre szabhatja (16. ábra). Rizs. 16. Ablak a mezők nézetének beállítására a „Diák megtekintése” nézetben A 16. ábra ablakában bármely mezőhöz beállíthatja a nevet, az igazítást, a szélességet, az adatok szerkesztésének lehetőségét stb. Az adatbázis módosításához be kell szereznie egy kapcsolati karakterláncot az adatbázishoz Connection String . Az adatbázis-kapcsolati karakterlánc beszerzésének különböző módjai vannak. Az egyik ezen a soron alapul az Education.dbo adatbázis Tulajdonságok ablakában (17. ábra). Rizs. 17. Kapcsolati karakterlánc meghatározása A karakterlánc programba való mentéséhez a típusú belső változó húr. A vágólap segítségével másolja be a Connection String-et a leírt karakterlánc-változóba. A Form1.cs fájl szövegében a Form1 osztály leírásának elején le kell írnia a változót: Jelenleg a Form1 osztály szövege a következő: Az aktuális rekord adatainak feldolgozásához új űrlapot kell készíteni. Az MS Visual Studio - C# új űrlap létrehozásának folyamata részletesen le van írva. Új űrlap hozzáadása a következő paranccsal történik: A megnyíló „Új elem” ablakban ki kell választania a „Windows Form” elemet. Hagyja az új űrlapfájl nevét alapértelmezett „Form2.cs”-ként. A 18. ábra az új űrlap nézetét mutatja. A következő típusú vezérlőket helyezzük el az űrlapon: A vezérlők következő tulajdonságait kell konfigurálnia: Beállítjuk a TextBox vezérlők láthatóságát is. Ehhez minden vezérlőben textBox1, textBox2, textBox3, textBox4 a Modifiers = „public” tulajdonság értéke. Rizs. 18. Az újonnan létrehozott űrlap megtekintése A további munkához az egérrel át kell váltani a Form1 fő űrlapra. Adjon hozzá három gombot a Form1 alkalmazás fő űrlapjához (Button). Három objektumváltozó automatikusan létrejön a button1, button2, button3 nevekkel. Mindegyik gombon a következő beállításokat végezzük (Tulajdonságok ablak): Az elvégzett változtatások eredményeként a fő űrlap a 19. ábrán látható módon fog kinézni. Rizs. 19. A pályázat fő formája A „Beszúrás...” gomb kattintási eseménykezelője így néz ki: Form2 hívják először. Az „OK” eredmény megérkezése után (a megfelelő gomb megnyomásával) a Form2-ben a TextBox típusú elemekben kitöltött mezők bekerülnek az SQL lekérdezési karakterláncba. Az új sor hozzáadásához szükséges SQL-lekérdezés így néz ki: ahol az 1 érték az érdemjegykönyv számának felel meg; érték2 – a tanuló vezetékneve; érték3 – csoport, amelyben a hallgató tanul; value4 – a belépés éve. A Connection String adatbázis-kapcsolati karakterlánc leírása a conn_string változóban található (lásd az 5. bekezdést). Az SqlConnection osztályobjektum összekapcsolja az alkalmazást az adatforrásokkal. Ezenkívül a Connection osztály kezeli a felhasználói hitelesítést, a hálózatépítést, az adatbázis azonosítást, a kapcsolat pufferelését és a tranzakciók feldolgozását. Az SQL-parancs, amely rekordot ad a táblához, az SqlCommand osztályba van beágyazva. Az SqlCommand osztály konstruktora két paramétert vesz fel: egy SQL lekérdezési karakterláncot (cmd_text változó) és az SqlConnection osztály objektumát. Az ExecuteNonQuery() metódus az IDBCommand felületen van megvalósítva. A módszer olyan SQL-parancsokat valósít meg, amelyek nem adnak vissza adatokat. Ilyen parancsok közé tartoznak az INSERT, DELETE, UPDATE parancsok, valamint a tárolt eljárások, amelyek nem adnak vissza adatokat. Az ExecuteNonQuery() metódus az érintett rekordok számát adja vissza. A „Szerkesztés...” gomb kattintási eseménykezelője így néz ki: Ez a kezelő egy UPDATE SQL parancsot hajt végre, amely megváltoztatja az aktív rekord aktuális értékét. A „Törlés” gomb kattintási eseménykezelője így néz ki: Ez a kezelő végrehajtja a DELETE SQL parancsot a rekord törléséhez. Az SQL Server Management Studio teljes eszközt biztosít minden típusú lekérdezés létrehozásához. Segítségével lekérdezéseket hozhat létre, menthet, tölthet be és szerkeszthet. Ezenkívül a lekérdezéseken anélkül is dolgozhat, hogy bármilyen szerverhez csatlakozna. Ez az eszköz arra is lehetőséget biztosít, hogy lekérdezéseket fejlesszen ki különböző projektekhez. A lekérdezéseket a Lekérdezésszerkesztővel vagy a Megoldásböngészővel dolgozhatja fel. Ez a cikk mindkét eszközt tárgyalja. Az SQL Server Management Studio e két összetevője mellett megvizsgáljuk az SQL-kód hibakeresését a beépített hibakereső segítségével. A Lekérdezésszerkesztő panel megnyitásához Lekérdezésszerkesztő, az SQL Server Management Studio eszköztárán kattintson az Új lekérdezés gombra. Ez a panel kibővíthető az összes lehetséges lekérdezés létrehozására szolgáló gombok megjelenítésére, nem csak az adatbázismotor-lekérdezésekre. Alapértelmezés szerint létrejön új kérés Database Engine komponens, de az eszköztár megfelelő gombjára kattintva MDX, XMLA stb. lekérdezéseket is készíthet. A Lekérdezésszerkesztő panel alján található állapotsor jelzi a szerkesztő kiszolgálóhoz való kapcsolatának állapotát. Ha nem csatlakozik automatikusan a kiszolgálóhoz, a Lekérdezésszerkesztő elindításakor megjelenik egy Kapcsolódás a kiszolgálóhoz párbeszédpanel, amely lehetővé teszi a kapcsolódni kívánt kiszolgáló és a hitelesítési mód kiválasztását. A lekérdezések offline szerkesztése nagyobb rugalmasságot biztosít, mint amikor kiszolgálóhoz csatlakozik. A lekérdezések szerkesztéséhez nem szükséges csatlakozni a szerverhez, és a lekérdezésszerkesztő ablak leválasztható az egyik szerverről (a menü Lekérdezés --> Kapcsolat --> Leválasztás parancsával), és egy másik szerkesztőablak megnyitása nélkül csatlakoztatható egy másikhoz. Az offline szerkesztési mód kiválasztásához használja a Csatlakozás a kiszolgálóhoz párbeszédpanelt, amely a szerkesztő indításakor nyílik meg. konkrét típus kéréseket, egyszerűen kattintson a Mégse gombra. A Lekérdezésszerkesztővel a következő feladatokat hajthatja végre: Transact-SQL utasítások létrehozása és végrehajtása; a létrehozott Transact-SQL nyelvi utasítások fájlba mentése; végrehajtási tervek készítése és elemzése gyakori lekérdezésekhez; grafikusan illusztrálva a kiválasztott lekérdezés végrehajtási tervét. A lekérdezésszerkesztő beépített szöveg szerkesztőés egy eszköztár gombkészlettel a különböző műveletekhez. A fő lekérdezésszerkesztő ablak vízszintesen fel van osztva egy lekérdezési panelre (fent) és egy eredmény panelre (alul). A végrehajtandó Transact-SQL utasítások (vagyis lekérdezések) a felső ablaktáblában jelennek meg, és az alsó panelen jelennek meg a rendszer által a lekérdezések feldolgozásának eredményei. Az alábbi ábra egy példát mutat be egy lekérdezés lekérdezésszerkesztőbe történő bevitelére, valamint a lekérdezés végrehajtásának eredményére: Az első USE kérelem utasítás a SampleDb adatbázist határozza meg aktuális adatbázisként. A második utasítás, a SELECT, lekéri az összes sort az Employee táblából. A lekérdezés futtatásához és az eredmények megjelenítéséhez a Lekérdezésszerkesztő eszköztárában kattintson a Végrehajtás gombra, vagy nyomja meg az F5 billentyűt. Több Lekérdezésszerkesztő ablakot is megnyithat, pl. több kapcsolatot létrehozni az adatbázismotor egy vagy több példányával. Az SQL Server Management Studio eszköztárában az Új lekérdezés gombra kattintva új kapcsolat jön létre. A Lekérdezésszerkesztő ablakának alján lévő állapotsor a következő információkat jeleníti meg a lekérdezési utasítások végrehajtásával kapcsolatban: az aktuális művelet állapota (például "A kérés sikeresen befejeződött"); adatbázis-kiszolgáló neve; aktuális felhasználónév és szerver folyamatazonosító; aktuális adatbázisnév; az utolsó kérés végrehajtására fordított idő; talált sorok száma. Az SQL Server Management Studio egyik fő előnye a könnyű kezelhetőség, amely a Lekérdezésszerkesztőre is vonatkozik. A Lekérdezésszerkesztő számos szolgáltatást kínál a Transact-SQL utasítások kódolásának megkönnyítésére. Konkrétan szintaktikai kiemelést használ a Transact-SQL utasítások olvashatóságának javítására. Minden fenntartott szó kékkel, a változók feketével, a karakterláncok pirossal, a megjegyzések pedig zölddel jelennek meg. Ezen kívül a lekérdezésszerkesztő fel van szerelve környezetfüggő súgóval, melynek neve Dinamikus súgó, amelyen keresztül információt szerezhet egy adott utasításról. Ha nem ismeri egy utasítás szintaxisát, válassza ki azt a szerkesztőben, majd nyomja meg az F1 billentyűt. A különböző Transact-SQL utasítások paramétereit is kiemelheti, hogy segítséget kapjon a Books Online-tól. Az SQL Management Studio támogatja az SQL Intellisense-t, amely egyfajta automatikus kitöltési eszköz. Más szavakkal, ez a modul a részben bevitt Transact-SQL utasításelemek legvalószínűbb befejezését javasolja. Az objektumböngésző a lekérdezések szerkesztésében is segíthet. Ha például meg szeretné tudni, hogyan hozhat létre CREATE TABLE utasítást az Employee táblához, kattintson jobb gombbal a táblára az Object Explorerben, és a kapott helyi menü válassza a Script Table As --> CREATE to --> New Query Editor Window lehetőséget. Az így létrehozott CREATE TABLE utasítást tartalmazó Query Editor ablak az alábbi ábrán látható. Ez a szolgáltatás más objektumokra is vonatkozik, például tárolt eljárásokra és függvényekre. Az Object Browser nagyon hasznos egy adott lekérdezés végrehajtási tervének grafikus megjelenítéséhez. A lekérdezés-végrehajtási terv a lekérdezés-optimalizáló által több közül kiválasztott végrehajtási lehetőség lehetséges opciók konkrét kérés teljesítése. Írja be a kívánt lekérdezést a szerkesztő felső panelébe, válassza ki a parancssort a Lekérdezés --> Becsült végrehajtási terv megjelenítése menüből, és a lekérdezés végrehajtási terve megjelenik a szerkesztőablak alsó paneljén. Az SQL Server Management Studio lekérdezésszerkesztése a megoldási módszeren alapul. Ha az Új lekérdezés gombbal üres lekérdezést hoz létre, az üres megoldáson fog alapulni. Ezt úgy láthatja, ha egy üres lekérdezés megnyitása után azonnal futtat egy parancssort a Nézet --> Megoldáskezelő menüből. A döntés egyetlen, egy vagy több projekthez is kapcsolódhat. Üres megoldás, nincs társítva egyetlen projekthez sem. Egy projekt megoldáshoz való társításához zárja be az üres megoldást, a Megoldáskezelőt és a Lekérdezésszerkesztőt, és hozzon létre egy új projektet a Fájl --> Új --> Projekt futtatásával. A megnyíló Új projekt ablakban válassza ki az SQL Server Scripts lehetőséget a középső ablaktáblában. A projekt a fájlok egy adott helyen történő rendezésének módja. Nevet rendelhet a projekthez, és kiválaszthatja a helyét a lemezen. Új projekt létrehozásakor automatikusan elindul egy új megoldás. A projektet hozzá lehet adni meglévő megoldás a Solution Explorer segítségével. A Solution Explorer minden létrehozott projektnél megjeleníti a Connections, Queries és Miscellaneous mappákat. Ha egy adott projekthez új Lekérdezésszerkesztő ablakot szeretne megnyitni, kattintson a jobb gombbal a Lekérdezések mappára, és válassza az Új lekérdezés lehetőséget a helyi menüből. Az SQL Server az SQL Server 2008-tól kezdve beépített kódhibakeresővel rendelkezik. A hibakeresési munkamenet megkezdéséhez válassza a Hibakeresés --> Hibakeresés indítása lehetőséget az SQL Server Management Studio főmenüjében. Megnézzük, hogyan működik a hibakereső egy példán keresztül, amely parancsokat használ. A köteg SQL-utasítások és eljárási kiterjesztések logikai sorozata, amely elküldésre kerül az adatbázismotornak, hogy végrehajtsa a benne lévő összes utasítást. Az alábbi ábra egy csomagot mutat be, amely a p1 projekten dolgozó alkalmazottak számát számolja. Ha ez a szám 4 vagy több, akkor a megfelelő üzenet jelenik meg. Ellenkező esetben az alkalmazottak vezeték- és keresztneve jelenik meg. Egy csomag végrehajtásának egy adott utasításnál történő leállításához töréspontokat állíthat be, az ábrán látható módon. Ehhez kattintson annak a sornak a bal oldalán, amelyen meg kíván állni. A hibakeresés megkezdésekor a végrehajtás leáll a kód első soránál, amely sárga nyíllal van jelölve. A végrehajtás és a hibakeresés folytatásához válassza a Debug --> Continue menüparancsot. A kötegelt utasítások végrehajtása az első töréspontig folytatódik, és a sárga nyíl ezen a ponton megáll. A hibakeresési folyamattal kapcsolatos információk két panelen jelennek meg a Lekérdezésszerkesztő ablakának alján. Információ valamiről különböző típusok A hibakeresési információk ezeken a paneleken vannak csoportosítva több lapon. A bal oldali ablaktábla tartalmazza az Autos lapot, a Helyiek lapot és legfeljebb öt Figyelő lapot. A jobb oldali ablaktábla tartalmazza a Hívásverem, Szálak, Töréspontok, Parancsablak, Azonnali ablak és Kimenet lapokat. A Helyiek lap a változó értékeket, a Hívásverem lap a hívásveremértékeket, a Töréspontok lap pedig a töréspontadatokat jeleníti meg. A hibakeresési folyamat befejezéséhez hajtsa végre a parancsok sorozatát a főmenü Hibakeresés --> Hibakeresés leállítása menüpontjában, vagy kattintson a kék gombra a hibakereső eszköztáron. Az SQL Server 2012 számos új funkcióval egészíti ki az SQL Server Management Studio beépített hibakeresőjét. Most számos alábbi műveletet hajthat végre benne: Adjon meg egy töréspont feltételt. Töréspont állapot egy SQL kifejezés, amelynek kiértékelt értéke határozza meg, hogy a kód végrehajtása egy adott ponton leáll-e vagy sem. A töréspont feltételének megadásához kattintson jobb gombbal a piros töréspont ikonra, és válassza a Feltétel lehetőséget a helyi menüből. Megnyílik a Breakpoint Condition párbeszédpanel, ahol megadhatja a szükséges logikai kifejezést. Ezenkívül, ha le kell állítania a végrehajtást, ha a kifejezés igaz, állítsa be az Is True kapcsolót. Ha a végrehajtást le kell állítani, ha a kifejezés megváltozott, akkor be kell állítania a Amikor megváltozott kapcsolót. Adja meg a találatok számát a törésponton. A találatok száma a végrehajtás leállításának feltétele egy adott ponton, attól függően, hogy hányszor érte el a töréspontot a végrehajtás során. Amikor eléri a megadott számú áthaladást és bármely más, egy adott törésponthoz megadott feltételt, a hibakereső végrehajtja a megadott műveletet. A végrehajtás megszakítási feltétele a találatok száma alapján a következők egyike lehet: feltétel nélküli (alapértelmezett művelet) (Mindig szünet); ha a találatok száma megegyezik a megadott értékkel (Break when the his count egy meghatározott értékkel egyenlő); ha a találatok száma egy megadott érték többszöröse (Break, ha a találatok száma megegyezik egy megadott érték többszörösével); Törje meg, ha az ő száma nagyobb vagy egyenlő egy megadott értékkel. A találatok számának beállításához a hibakeresés során kattintson a jobb gombbal a kívánt töréspont ikonra a Töréspontok lapon, a helyi menüből válassza a Találatszám menüpontot, majd válassza ki az egyik feltételt az előző listából megnyíló Breakpoint Hit Count párbeszédpanelen. Az értéket igénylő opciók esetén írja be azt a feltételek legördülő listától jobbra található szövegmezőbe. A megadott feltételek mentéséhez kattintson az OK gombra. Adjon meg egy töréspont szűrőt. A töréspontszűrő csak meghatározott számítógépekre, folyamatokra vagy szálakra korlátozza a töréspont működését. Töréspont-szűrő beállításához kattintson a jobb gombbal a kívánt töréspontra, és válassza a Szűrő menüpontot a helyi menüből. Ezután a megnyíló Töréspont-szűrők párbeszédpanelen adja meg azokat az erőforrásokat, amelyekre korlátozni szeretné a töréspont végrehajtását. A megadott feltételek mentéséhez kattintson az OK gombra. Adjon meg egy műveletet egy törésponton. A Találatkor feltétel meghatározza a végrehajtandó műveletet, ha a kötegelt végrehajtás elér egy adott töréspontot. Alapértelmezés szerint, ha a találatszám-feltétel és a leállítási feltétel is teljesül, a végrehajtás megszakad. Alternatív megoldásként egy előre megadott üzenet is megjeleníthető. Ha meg szeretné határozni, hogy mit kell tenni egy töréspont leütése esetén, kattintson a jobb gombbal a töréspont piros ikonjára, és válassza a Leütéskor lehetőséget a helyi menüből. A megnyíló Amikor a töréspont találata párbeszédpanelen válassza ki a végrehajtani kívánt műveletet. A megadott feltételek mentéséhez kattintson az OK gombra. Használja a Gyorsfigyelő ablakot. Megtekintheti a Transact-SQL kifejezés értékét a QuickWatch ablakban, majd mentheti a kifejezést a Figyelő ablakban. A Gyorsfigyelő ablak megnyitásához válassza a Gyorsfigyelés lehetőséget a Hibakeresés menüből. Az ebben az ablakban lévő kifejezés kiválasztható a Kifejezés legördülő listából, vagy beírható ebbe a mezőbe. Használja a Gyors információs eszköztippet. Ha az egeret egy kódazonosító fölé viszi, a Gyors információ ( Rövid információ) egy felugró ablakban jeleníti meg a hirdetését.Parancsok az adatbázisokkal való munkavégzéshez
1. Az elérhető adatbázisok megtekintése
ADATBÁZISOK MUTATÁSA; 2. Hozzon létre egy új adatbázist
ADATBÁZIS LÉTREHOZÁSA; 3. A használni kívánt adatbázis kiválasztása
HASZNÁLAT 4. Importáljon SQL parancsokat .sql fájlból
FORRÁS 5. Törölje az adatbázist
DROP ADATBÁZIS Asztalokkal való munka
6. Tekintse meg az adatbázisban elérhető táblákat
ASZTALOK MUTATÁSA;
7. Hozzon létre egy új táblázatot
TÁBLÁZAT LÉTREHOZÁSA Integritási korlátozások a CREATE TABLE használatakor
Példa
8. Táblázat információk
9. Adatok hozzáadása a táblázathoz
INSERT INTO 10. Táblázat adatok frissítése
FRISSÍTÉS 11. Minden adat eltávolítása a táblából
TÖRLÉS FOL 12. Táblázat törlése
DROP TABLE Parancsok a lekérdezések létrehozásához
13. KIVÁLASZTÁS
14. SELECT DISTINCT
15. HOL
Példa
16. GROUP BY
Példa
17. HAVE
Példa
18. MEGRENDELÉS
Példa
19. KÖZÖTT
Példa
20. LIKE
KIVÁLASZTÁS Példa
21. IN
Példa
22. CSATLAKOZÁS
1. példa
2. példa
3. példa
23. Megtekintés
Teremtés
NÉZET LÉTREHOZÁSA Eltávolítás
DROP NÉZET Példa
24. Aggregált függvények
25. Beágyazott segédlekérdezések
Példa
BAN BEN ezt a felülvizsgálatot Megnézzük az SQL lekérdezések leggyakoribb típusait.
Az SQL szabvány meg van határozva ANSI(Amerikai Nemzeti Szabványügyi Intézet).
Az SQL egy kifejezetten relációs adatbázisokra irányuló nyelv. SQL particionálás:
DDL(Adatdefiníciós nyelv)
- az úgynevezett Schema Description Language az ANSI-ban, olyan parancsokból áll, amelyek objektumokat (táblázatokat, indexeket, nézeteket stb.) hoznak létre az adatbázisban.
DML(Adatkezelési nyelv) egy olyan parancskészlet, amely meghatározza, hogy adott időpontban milyen értékek jelenjenek meg a táblázatokban.
DCD(Adatkezelési nyelv) olyan szolgáltatásokból áll, amelyek meghatározzák, hogy engedélyezik-e a felhasználónak bizonyos műveletek végrehajtását. Az ANSI DDL részei. Ne felejtsd el ezeket a neveket. Ezek nem különböző nyelvek, hanem az SQL-parancsok funkciói szerint csoportosított részei. Adattípusok:
SQL Server – Adattípusok
(szinonima char)
Az SQL Server 2005-től kezdődően nem javasolt a használata.
MI A KÉRÉS?
SELECT parancs:
Lekérdezés típusa a SELECT használatával:SELECT parancsstruktúra:
- Ez a kérés legegyszerűbb típusa. További parancsok állnak rendelkezésre a kényelmes adatlekéréshez (lásd lent „Funkciók”) DML parancsok:
BESZÁLLÍTÁS(Beszúrás)
FRISSÍTÉS(Frissítés, módosítás),
TÖRÖL(Töröl) INSERT parancs:
Az INSERT parancs az INTO (in to) előtaggal érkezik, majd zárójelben azon oszlopok nevei vannak, amelyekbe adatokat kell beszúrnunk, majd jön a VALUES parancs (értékek), és zárójelben az értékek sorra jönnek (ez szükséges az értékek oszlopokkal való sorrendjének betartásához, az értékeknek ugyanabban a sorrendben kell lenniük, mint az Ön által megadott oszlopok). UPDATE parancs:
DELETE parancs:
Kritériumok, funkciók, feltételek stb. mi segít nekünk az SQL-ben:
Példa:
SELECT id, city, születési_nap FROM user_base WHERE user_name = 'Alexey';- egy ilyen lekérdezés csak azokat a sorokat jeleníti meg, amelyek megfelelnek a WHERE feltételnek, vagyis minden olyan sort, amelyben a user_name oszlopban az Alexey értéke van.
Példa:
SELECT id, city, születési_nap FROM user_base ORDER BY user_name ASC; - egy ilyen lekérdezés megjeleníti az értékeket a user_name oszlop szerint rendezve A-tól Z-ig (A-Z; 0-9)
Példa:
SELECT id, city, születési_nap FROM user_base WHERE user_name = 'Alexey' ORDER BY id ASC;
Példa:
SELECT DISTINCT user_name FROM user_base;- egy ilyen lekérdezés megmutatja nekünk az összes rekord értékét a user_name oszlopban, de nem ismétlődnek meg, pl. ha végtelen számú ismétlődő értéked lenne, akkor azok nem jelennek meg...
Példa:
SELECT * FROM users_base WHERE city = 'Rosztov' AND user_name = 'Alexander';- megjeleníti az összes értéket a táblázatból, ahol a város neve egy sorban jelenik meg (ebben az esetben Rostov és az Alexander felhasználónév.
SELECT * FROM users_base WHERE city = 'Rosztov' OR NOT user_name = 'Alexander';- megjeleníti az összes értéket a táblázatból, ahol Rostov városának neve egy sorban jelenik meg, vagy a felhasználónév nem pontosan Alexander.
SELECT * FROM user_base WHERE city IN ('Vladivosztok', "Rosztov");- egy ilyen lekérdezés megjeleníti a táblázat összes értékét, amely a város oszlopban tartalmazza a megadott városok nevét
SELECT * FROM user_base WHERE id BETWEEN 1 ÉS 10;- megjeleníti a táblázat összes értékét, amely 1 és 10 közötti tartományban lesz az id oszlopban
SZÁM VÁLASZTÁSA (*) A felhasználók_bázisából ;- megjeleníti a sorok számát ebben a táblázatban.
SZÁM KIVÁLASZTÁSA (ELKÜLÖNBÖZŐ felhasználónév) A felhasználók_bázisából ;- megjeleníti a felhasználónevekkel ellátott sorok számát (nem ismétlődik)
SELECT SUM (id) FROM user_base ;- megjeleníti az id oszlop összes sorának értékeinek összegét.
SELECT AVG (id) FROM user_base ;- megjeleníti az id oszlop összes kiválasztott értékének átlagátTáblázatok készítése:
MEGY
A QUOTED_IDENTIFIER BEÁLLÍTÁSA
MEGY
IF NEM LÉTEZIK (SELECT * FROM sys.objects WHERE objektum_azonosító = OBJECT_ID(N."") ÉS írja be (N"U"))
KEZDŐDIK
TÁBLÁZAT LÉTREHOZÁSA .(
NEM NULLA,
NEM NULLA,
NEM NULLA,
ELSŐDLEGES KULCS CSOPORTOSÍTVA
A.S.C.
VÉGE
MEGY
ANSI_NULLS BEÁLLÍTÁSA
MEGY
A QUOTED_IDENTIFIER BEÁLLÍTÁSA
MEGY
IF NEM LÉTEZIK (SELECT * FROM sys.objects WHERE objektum_azonosító = OBJECT_ID(N."") ÉS írja be (N"U"))
KEZDŐDIK
TÁBLÁZAT LÉTREHOZÁSA .(
AZONOSÍTÁS(1,1) NEM NULL,
NULLA,
NULLA,
ELSŐDLEGES KULCS CSOPORTOSÍTVA
A.S.C.
)BE (IGNORE_DUP_KEY = KI) BE
) ON TEXTIMAGE_ON
VÉGE
MEGY
ANSI_NULLS BEÁLLÍTÁSA
MEGY
A QUOTED_IDENTIFIER BEÁLLÍTÁSA
MEGY
IF NEM LÉTEZIK (SELECT * FROM sys.objects WHERE objektum_azonosító = OBJECT_ID(N."") ÉS írja be (N"U"))
KEZDŐDIK
TÁBLÁZAT LÉTREHOZÁSA .(
AZONOSÍTÁS(1,1) NEM NULL,
NULLA,
NULLA,
ELSŐDLEGES KULCS CSOPORTOSÍTVA
A.S.C.
)BE (IGNORE_DUP_KEY = KI) BE
) TOVÁBB
VÉGE
A szintaxis az SQL Server 2005-ben egy másik téma, csak azt akartam megmutatni, hogy leírtam az SQL programozás alapjait, az alapok ismeretében egyedül is fel lehet jutni a csúcsra.Teljesítmény
1. Hozzon létre egy új projektet az MS Visual Studio programban Windows Forms alkalmazásként.
2. Hozzon létre egy új nézetet a tanulói táblázat adatainak megjelenítéséhez.
3. Helyezze el a DataGridView vezérlőt, és konfigurálja a kapcsolatot az adatbázissal.
4. A DataGridView vezérlő megjelenésének beállítása.
5. Csatlakozási karakterlánc
6. Teremtés új forma adatkezelési parancsok bemutatására.
7. Gombok hozzáadása a Hallgatói táblázat adatainak kezeléséhez szükséges parancsok meghívásához.
8. Kattintási esemény programozása a „Beszúrás...” gombra.
9. Kattintási esemény programozása a „Szerkesztés...” gombra.
10. Kattintási esemény programozása a „Törlés” gombra.
Kapcsolódó témák
Lekérdezésszerkesztő
Megoldás kereső
SQL Server hibakeresése