Az SQL keresése az összes táblázathoz. Egyszerű SQL kérések - rövid segítség és példák

Kezdjük az elemi lekérdezésekkel. Mi van velük? A legtöbb tömör forma SQL lekérdezésÉs fordítja le, mint "Szeretném megkapni az összes adatot ebből az asztalból." A következő lekérdezés eredménye minden rekord a D_STAFF asztal összes mezőjével.

Válassza a * D_STAFF-tól

Adja meg az SQL lekérdezést a képzési programban.

Válassza az [SQL] lehetőséget a bal oldali felfedezőben, nyomja meg az [SQL gombot] gombot a jobb oldali listán, írja be a kérést, és nyomja meg újra az [SQL gombot]. Miután megerősítette a lekérdezés végrehajtását, a lista a következőképpen fog kinézni. Abban az esetben, minden könnyebb: csak írja be az SQL lekérdezést a megfelelő mezőben, és kattintson a [RUN] gombra.


A legegyszerűbb SQL lekérdezés végrehajtásának eredménye.

Használja (*) operátor kiválasztásaTermészetesen kényelmes, különösen akkor, ha ismeretlen, milyen mezők az asztalban általában ott vannak, de költséges - struktúrák, amelyek a lekérdezés eredményét tárolják, elég sok "szükségtelen" memóriát és a végrehajtás idejét A lekérdezés csak egyre növekszik. A következő lehetőség pontosan olyan előnyös, ha csak az információra van szüksége. Munkavállaló és tapasztalata. Fordítás erről: "Csak ezt szeretném tudni, és ez az asztalról ..."

Válassza az S_Name, S_Experience lehetőséget a D_STAFF-től

Az utolsó SQL lekérdezés eredménye észrevehetően kevesebb helyet foglal el "szélesség".


Válassza ki az egyes táblázat mezők értékeit.

2. lépés: SQL kérés egyszerű kiválasztási kritériummal

A legegyszerűbb kérések gyakorlatilag nem alkalmazhatók a gyakorlatban, mivel "húzza ki" abszolút minden rekordot a megadott táblázatból, és lehet több százezer. A DBMS egyszerűen megtagadhatja az ilyen kérelmet, és véletlen hozzáférési memória Az ügyfélgépen nem lehet elemi. Mi köze az eredmények az ilyen kérelmek, akkor is, ha helyesen hajtják végre, ez nem mindig egyértelmű, bár néhány megy. Annak érdekében, hogy korlátozzák a szükséges bejegyzések kiválasztását, a kulcsszót az SQL-ben használják. Az alábbi lekérdezés csak 5 évnél rövidebb munkatapasztalattal rendelkező alkalmazottakat választja ki.

Válassza az S_Name, S_Experience lehetőséget a D_STAFF-től, ahol S_Experence


Használ egyszerű kritérium Rekordok kiválasztása.

3. lépés: SQL kérés kompozit kiválasztási kritériummal

Mire van szükség Összetett kiválasztási kritériumok Records, magyarázza, nem kell szükség. Ugyanazon az egyszerű kritériumokkal rendelkező kérésekért. A feltételeket kombinálják logikai hadműveletek kötődések és dysuunction (Operátorok "és" (és) és "(vagy)), és zárójelben vannak csoportosítva. A következő kérés visszaadja a felvételt az 5 évesnél idősebb tapasztalattal rendelkező munkavállalókról, és a pozíciójuk további korlátozásával.

SELECT S_NAME, S_EXPERIENCE, S_POSITION FROM D_STAFF WHERE (D_STAFF.S_POSITION 20) és D_STAFF.S_EXPERIENCE


Használ kifinomult kritérium Rekordok kiválasztása.

4. lépés. A kezelő között

Az üzemeltető között leegyszerűsíti az intervallumot meghatározó kritériumok leírásának szintaxisát megengedett értékek. Az alábbi 3 és 7 közötti helyett a d_staff.s_experience\u003e \u003d 3 és a d_staff.s_experience írása lehetséges<=7 . Первый вариант способствует наглядности запроса – это раз, поиск на стороне СУБД может выполняться по отдельному алгоритму, специально оптимизированному для подобного вида ограничений – это два.

Válassza az S_Name, S_Experience, S_Stition lehetőséget a D_STAFF-ről, ahol (d_staff.s_position 20) és d_staff.s_experence 3 és 7


Az üzemeltető között.

5. lépés, mint az üzemeltető

Ez a csodálatos operátor lehetővé teszi, hogy korlátozza a szövegmezők értékeit a sablonok segítségével. Nem fogom megmagyarázni a szintaxist, azt hiszem, hogy a példából, és így minden világos. Az alkalmazottakat keresjük, f.o.o. Kezdet "TÓL TŐL", a közepén meg kell felelnie "Tengely" és végül mindent "Ich". Néhány DBMS-ben, mint például a kulcsszó a dátum és az időértékeknél is használható.

Válassza ki a S_Name-t a D_STAFF-ből, ahol S_NAME, mint az "S%" és S_NAME, mint a "% eladás%" és a S_NAME mint "% ICH"

SELECT FROM S_NAME D_STAFF WHERE S_NAME mint a "C% WALL% ICH"


Használja az operátort.

6. lépés: A táblák és mezők pszeudonímai

A táblázatok és mezők lekérdezésére használható pszeudonimák. Hogyan történik - az alábbiakban bemutatva. Miért történik ez - a következő lépésekben jelenik meg, többek között a 7. lépésben, és ez a példa a legnyilvánvalóbb használjon aliasokat az SQL-ben - a kérelem eredményének nyilvántartása a személyének észlelésének feltételeivel összhangban. A táblázat vagy mezők álnevének meghatározásához az SQL-ben a kulcsszó használata. A lekérdezés eredménye (táblázat címe) ebben az opcióban jobban néz ki, hogy jelentést készítsen rajta.

Válassza az S_Name mint munkavállaló, S_Experience mint [munkatapasztalat], S_POSITION a D_STAFF munkatársaként


Asztali álnév és mezők használata.

7. lépés: A "vezető - alárendelt" arány

Ez a példa befejezi az SQL kérések tanulmányozásának "első lépéseit" a legnehezebb. Itt vagyunk "programozás", amely a munkavállalók listáját adja meg közvetlen vezetésükkel. A komplexitás az, hogy a nyilvántartások és azokról, mások tárolja ugyanannál az asztalnál, és itt nem álnevek nem lehet csinálni. A lekérdezési feldolgozás során a DBMS-t, a D_STAFF asztalhoz, mintha két különböző táblázathoz (az álnevek személyzete és vezetője alatt) hozzáférhet, annak érdekében, hogy a rekordokat egyetlen bíróság A "vezető - alárendelt" kapcsolat alapján. Az arány a következőképpen történik: az alárendelt S_CHIEF_ID mező értéke megfelel az XD_IID mező értékének értékének.

Válassza ki a személyzetet.s_name-t alárendeltnek, a személyzetnek.s_pozíciónak, mint [az alárendeltek pozícióját], a firow.s_name fejét, a firow.s_name-t a D_STAFF-ből a munkatársaként, a D_STAFF-ből, ahol a személyzet.S_CHIEF_ID \u003d főnök


Hierarchia "fej - slave" megszerzése az SQL táblázat alias használatával.

Minden webfejlesztőnek tudnia kell az SQL-t, hogy írjon kéréseket adatbázisokra. És, bár phpmyadmin senki törölték, gyakran van szükség, hogy foltot a kezét, hogy írjon egy alacsony szintű SQL.

Ezért készítettünk egy rövid kirándulást az SQL alapjaira. Kezdjük!

1. Táblázat létrehozása

Az asztali utasítás létrehozása táblázatok létrehozására szolgál. Az argumentumokként az oszlopok nevét, valamint az adattípusokat kell megadni.

Hozzon létre egy egyszerű táblát név szerint hÓNAP.. 3 oszlopból áll:

  • idézés - Hónapok száma a naptári évben (egész szám).
  • név. - A hónap neve (string, legfeljebb 10 karakter).
  • napok. - Napok száma ebben a hónapban (egész szám).

Így fog kinézni a megfelelő SQL lekérdezés:

Táblázat hónapok létrehozása (id int, varchar név (10), napok int);

A táblázatok létrehozásakor is ajánlatos hozzáadni az elsődleges kulcsot az egyik oszlophoz. Ez megtartja a rekordok egyedi és felgyorsítja a minta kérését. Hagyjuk abban az esetben, ha a hónap neve egyedülálló lesz (oszlop név.)

Táblázat hónapok létrehozása (ID INT, Varchar (10), Napok int, elsődleges kulcs (név);

dátum és idő
AdattípusLeírás
Dátum.Dátumértékek
Dátum idő.Dátum és időértékek a mentésig
Idő.Időértékek

2. Sztring behelyezése

Most töltsük ki az asztalunkat monhs. Hasznos információ. A rekordok hozzáadása az asztalhoz az inszertuális utasításon keresztül történik. Az utasítások rögzítésének két módja van.

Az első út nem az, hogy megadja az oszlopok nevét, ahol az adatok beillesztésre kerülnek, és csak értékeket jeleznek.

Ez a módszer a felvétel egyszerű, de biztonságos, mivel nincs garancia arra, hogy a projekt bővítése és szerkesztése a táblázatban, az oszlopok lesz található ugyanabban a sorrendben, mint korábban. Biztonságos (és egyidejűleg sokkal nehezebb) A betéti utasítások rögzítési módja mindkét érték és az oszlopok sorrendje szükséges:

Itt van az első érték a listában. Értékek. Megfelel az első meghatározott oszlopnévnek stb.

3. Adatok kitermelése táblákból

A SELECTOLCECTION a legjobb barátunk, amikor az adatokat az adatbázisból szeretnénk kapni. Nagyon gyakran használják, ezért nagyon óvatosan vegye ezt a részt.

A SELECT utasítás legegyszerűbb használata olyan lekérdezés, amely az összes oszlopot és vonalat adja vissza az asztalról (például a táblázatok név szerint) karakterek.):

Válassza a * gombot a "karakterek"

A csillag szimbólum (*) azt jelenti, hogy az összes oszlopra vonatkozó adatokat szeretnénk kapni. Tehát az SQL adatbázisok általában egynél több táblázatból állnak, meg kell adni a kulcsszót, majd azt követnie kell az asztalt a téren keresztül.

Néha nem akarunk adatokat kapni az asztal összes oszlopáról. Ehhez csillag helyett (*), meg kell írnunk a kívánt oszlopok nevét a vesszőn keresztül.

Válasszon azonosítót, nevet a hónapból

Ezenkívül sok esetben azt szeretnénk, hogy az eredményeket egy bizonyos sorrendben rendezzük. Az SQL-ben megrendezésre kerülünk. Választható módosítót kaphat - ASC (alapértelmezett) növekvő vagy desc, csökkenő válogatás:

Válasszon azonosítót, nevet a hónap sorrendjéből Desc név szerint

A megrendelés használatakor győződjön meg róla, hogy ez lesz az utolsó a kiválasztott utasításban. Ellenkező esetben hibaüzenet kerül kiadásra.

4. Adatszűrés

Megtanultad, hogyan válasszunk az adatbázisból SQL lekérdezéssel szigorúan definiált oszlopokat, de mi van, ha több sort kell kapnunk? A segítségnyújtásra, ahol a feltétel a mentésre kerül, lehetővé téve, hogy az adatokat az állapottól függően szűrjük.

Ebben a lekérdezésben csak az asztaltól származó hónapokat választjuk hÓNAP., amelyben több mint 30 nap a kezelő segítségével több (\u003e).

Válasszon azonosítót, nevet a hónapban, ahol napok\u003e 30

5. Bővített adatszűrés. Operátorok és vagy vagy

Korábban egy kritérium segítségével szűrési adatokat használtunk. A bonyolultabb adatszűréshez használhatja és vagy operátorokat és összehasonlító operátorokat (\u003d,<,>,<=,>=,<>).

Itt van egy asztal, amely az összes négy legjobb album albumot tartalmazza. Válasszuk ki azokat, amelyek rocknak \u200b\u200bminősülnek, és kevesebb mint 50 millió példányban értékesítettek. Ez könnyen elvégezhető az üzemeltető és a két feltétel között.


Válassza ki a * albumokat, ahol a műfaj \u003d "Rock" és Sales_in_Millions<= 50 ORDER BY released

6. A / között / hasonló

Ahol számos speciális parancsot is támogat, lehetővé téve, hogy gyorsan ellenőrizze a leggyakrabban használt kérelmeket. Itt vannak:

  • In - a feltételek meghatározására szolgál, amelyek közül bármelyik elvégezhető
  • Között - ellenőrzi, hogy az érték a megadott tartományban van-e
  • Mint - Speciális minták keresése

Például, ha szeretnénk kiválasztani az albumokat pop és lélek Zene, használhatjuk ("Value1", "Value2").

Válassza ki az albumokat, ahol a műfaj ("pop", "lélek");

Ha az 1975 és 1985 között megjelent albumokat szeretnénk megkapni, meg kell írnunk:

Válasszon * az 1975 és 1985 között kiadott albumok közül;

7. Funkciók

SQL Teljesítményű funkciók, amelyek különböző hasznos dolgokat tesznek lehetővé. Íme néhány leggyakrabban használt:

  • Szám () - visszaadja a sorok számát
  • Összeg () - visszaadja a numerikus oszlop teljes összegét
  • AVG () - visszaadja az átlagos értéket a különböző értékekből
  • Min () / max () - minimális / maximális értéket kap az oszlopból

Ahhoz, hogy a tavalyi év tavaly az asztalunkban meg kell írnunk egy ilyen SQL lekérdezést:

Válassza ki a max (felszabadul) az albumokból;

8. Subqueries

Az előző bekezdésben megtudtuk, hogyan lehet egyszerű számításokat készíteni az adatokkal. Ha ezeket a számításokból szeretnénk használni, nem tudunk befektetett kérések nélkül. Tegyük fel, hogy visszavonni akarjuk mŰVÉSZ., album. és kiadás év Az asztal legrégebbi albumához.

Tudjuk, hogyan lehet ezeket a konkrét oszlopokat:

Válassza ki a művész, az album, az albumokból származó újratermelő;

Azt is tudjuk, hogyan lehet a legkorábbi évet kapni:

Válassza ki a min (felszabadul) az albumból;

Mindössze annyit kell tennie, hogy két kérést kombináljon, ahol:

Válassza ki a művész, az album, az albumokból felszabaduló albumokból, ahol megjelenik \u003d (Válassza ki a min (felszabadul) az albumokból);

9. A táblák kombinációja

Bonyolultabb adatbázisokban több táblázat van társítva. Például két táblázatot tartalmaz a videojátékokról ( videójátékok.) és videojátékfejlesztők ( game_Developers.).


asztal videójátékok. Van egy fejlesztői oszlop ( fejlesztő_ID), de tartalmaz egy egész számot, és nem a fejlesztő nevét. Ez a szám egy azonosító ( idézés) A játékfejlesztőasztal megfelelő fejlesztője ( game_Developers.) A logika két listájának összekapcsolásával, amely lehetővé teszi számunkra, hogy egyszerre tároljuk az általuk tárolt információkat.

Ha azt akarjuk, hogy hozzon létre egy kérés, hogy a hozam, mindent meg kell tudni játékok, fel tudjuk használni Belső összekapcsolás kommunikálni előadók mindkét asztalnál.

Select video_games.name, video_games.genre, game_developers.name, game_developers.country származó Video_Games Belső összekapcsolás Game_Developers a video_games.developer_id \u003d Game_Developers.id;

Ez a legegyszerűbb és leggyakoribb csatlakozás. Számos más lehetőség van, de kevésbé gyakori esetekre vonatkoznak.

10. Alias.

Ha megnézed az előző példát, észre fogod venni, hogy két oszlop van hívva név.. Ez zavarja, így például telepítjük az egyik ismétlődő oszlopot, például, név. Az asztalról game_Developers. hívják fejlesztő..

Azt is csökkenthetjük a kérelmet, amely megadja a táblázatot a pszeudonimok: videójátékok. Név játékok., game_Developers. - devs.:

Válassza ki a Games.name.Name, Games.genre, Devs.name fejlesztőként, Devs.Country-t a Video_Games-ről, mint a Játékok, Csatlakozzon a Game_Developers-ben a Játékokon.

11. Adatfrissítés

Gyakran meg kell változtatnunk az adatokat néhány sorban. Az SQL-ben ez a frissítési utasítás használatával történik. A frissítési nyilatkozat:

  • Táblázatok, amelyekben az érték cseréje;
  • Az oszlopok nevei és új értékei;
  • Kiválasztott, ahol a frissítést szeretnénk frissíteni. Ha ez nem történik meg, akkor az összes sor megváltozik az asztalnál.

Az alábbiakban egy asztal tV sorozat. TV-sorozat a minősítéssel. Azonban az asztal kis hibát észlelt: Bár a sorozat Trónok harca És vígjátékként írja le, valójában nem igaz. Javítsuk meg!

Táblázat adatai TV_SERIES UPDATE TV_SERIES SET MŰFAJONKÉNT \u003d "DRAM" WHERE ID \u003d 2;

12. Adatok törlése

A táblázatsor törlése az SQL-vel nagyon egyszerű folyamat. Mindössze annyit kell választania, hogy válasszon egy táblát és egy eltávolítani kívánt karakterláncot. Töröljünk az utolsó karakterláncot az előző példában az asztalon. tV sorozat.. Ez az utasítás használatával történik

Törlés a TV_Series-ből, ahol ID \u003d 4

Legyen óvatos, amikor írja a törlési utasításokat, és győződjön meg róla, hogy a mely feltétel jelen van, különben az asztali vonalak törlődnek!

13. Törölje az asztalt

Ha szeretnénk törölni az összes vonalakat, hanem hagyja el a táblázatot, majd használja a csonka parancsot:

Táblázat Table_Name;

Abban az esetben, ha tényleg törölni szeretnénk, és az adatokat, és maga a táblát használjuk a csepp parancsot:

Drop Table Table_Name;

Legyen nagyon óvatos ezekkel a csapatokkal. Nem lehet törölni! / P\u003e

Ezen befejezzük az SQL bemutatónkat! Nem mondtunk sokat, de amit már tudsz, elegendőnek kell lennie ahhoz, hogy bizonyos gyakorlati készségeket adjon a webes karrierjében.

Továbbra is tanulmányozzuk az SQL Server lehetőségeit a Microsoftból, és viszont van egy komponensünk Teljes szöveges keresés, Orosz változat " Teljes szövegkeresés", És most megtudjuk, hogy miért van szükség, és hogyan kell végrehajtani ezt a legtöbb teljes szöveges keresést az SQL Server segítségével ezzel az összetevővel.

És kezdjük el, persze, figyelembe véve a teljes szöveges keresés alapjait, azaz Mi az, és amelyre általában szükséges.

Mi a teljes szöveges keresés?

Teljes szövegkeresés - Ez a szöveges adatok szavak vagy kifejezések keresése. Általában egy ilyen típusú keresés használatos szöveget keresni a nagy mennyiségű adatot, például egy asztal, rajta egy millió vagy több sorban, mivel ez lényegesen gyorsabb, mint a normál kereső, amely lehet végrehajtani a LIKE design.

A teljes szöveges keresés egy speciális index létrehozása ( ez különbözik a szokásos indexektől) Szövegadatok, amely egyfajta szótár, amely megtalálható ebben az adatokban.

A teljes szöveges keresés használata egyfajta megvalósíthat keresőmotor Dokumentumok ( azok. Sor), a vállalat adatbázisában található kifejezések szerint. Mivel a gyors munkáján kívül is képes rangsorolni a dokumentumokat, azaz. Tárolja az egyes talált vonal rangját, más szóval, megtalálhatja a legfontosabb rekordokat, azaz A legmegfelelőbb az Ön kérésére.

Teljes szöveges keresési funkciók az MS SQL Serverben

  • A teljes szöveges keresési SQL szervereken nemcsak az egyes szavak vagy kifejezések, hanem a előtag kifejezésekPéldául állítsa be a szó vagy kifejezés szövegének szövegét;
  • Szavakat kereshet a szóformákon, például az egyetlen és többes számú igék vagy főnevek különböző formáiban is által származtatott kifejezések;
  • Építhet egy lekérdezést úgy, hogy más szavak vagy kifejezések mellett található szavakat vagy kifejezéseket találjon, azaz kifejezések;
  • Lehetőség van megtalálni egy adott szó szinonim formái (szinonimaszótár), vagyis Például, ha a tezauruszban meghatározzák, hogy " Autó"És" Egy autó"- Ezek szinonimák, akkor a szó keresése során" Autó»A kapott készlet tartalmazza a" szót tartalmazó vonalak " Egy autó»;
  • A lekérdezésben megadhatja a szavakat vagy kifejezéseket súlyozott értékek, például ha néhány szót vagy kifejezést ad meg a lekérdezésben, akkor 0,0-1,0 ( 1.0 azt jelenti, hogy ez a legfontosabb szó vagy kifejezés);
  • Annak érdekében, hogy ne fontolja meg a kereshető szavak keresését " a STOP szavak listája", Vagyis A lista szerint a keresés nem kerül végrehajtásra.

Felkészülés a teljes szöveges keresés megvalósítására az MS SQL Serverben

Mielőtt elkezdené létrehozni egy teljes szöveges keresés, tudnia kell több fontos pontot:

  • A teljes szöveges keresési komponens teljes szöveges keresése ( Teljes szövegkeresés) kell telepíteni;
  • A táblázatnak csak egy teljes szöveges indexe lehet;
  • A teljes szöveges index létrehozásához a táblázatnak tartalmaznia kell egy olyan egyedi indexet, amely tartalmaz egy oszlopot, és nem teszi lehetővé a null értékeket. Javasoljuk, hogy egyedi fürtözött indexet használjon ( vagy csak elsődleges kulcs), amelynek első oszlopának egész szám szerinti adattípusnak kell lennie;
  • A teljes szöveges index adattípusú oszlopokon hozható létre: char, varchar, nchar, nvarchar, szöveg, ntext, kép, xml, varbinary vagy varbinary (max);
  • A teljes szöveges index létrehozásához először létre kell hoznia egy teljes szöveges könyvtárat. Az SQL Server 2008 elindításakor a teljes szöveges katalógus logikai koncepció, amely a teljes szöveges indexek csoportját jelöli, azaz. virtuális objektum, és nem szerepel a fájlcsoportban ( van egy módja annak, hogy létrehozzunk egy teljes szöveges indexet a "Master" segítségével, amelyben a könyvtár egyidejűleg létrehozható az indexhez, ez a módszer, amit az alábbiakban figyelembe kell venni).

Jegyzet! A teljes szöveges keresés végrehajtása Az SQL Server 2008 R2 példakerverziójában leszek. Azt is feltételezik, hogy a teljes szöveges keresési összetevő már telepítve van, ha nem, akkor telepítse azt a megfelelő komponens hozzáadásával az "SQL Server telepítőhelyen", azaz. Tegye a megfelelő kullancsot.

Az alábbi példákban a teljes szöveges könyvtárak és indexek létrehozásának és irányításának eszközeként használom az SQL Server Management Studio-t.

Forrásadatok a teljes szöveges keresés létrehozásához

Feltételezzük, hogy van egy tesztbázis-adatbázisunk, és van egy tesztelhető tábla, amelyben csak két mező van, az első (ID) az elsődleges kulcs, a második (TEXTDATA) olyan szöveges adatok, amelyekre teljes mértékben teljesítünk -Text keresés..

Táblázat létrehozása Testtable (ID INT szándék (1,1) NULL, TEXTDATA VARCHAR (500) NULL, Korlátozás PK_TESTTABLE PRIMPY KEY CLUSTERED (ID ASC))

Például a következő adatokat tartalmazza.


Teljes szöveges könyvtár létrehozása SQL Serverben

Ahhoz, hogy hozzon létre egy teljes szöveges könyvtár, valamint és az index is használható, vagy a SSMS grafikus felület, vagy a T-SQL utasításokat fogjuk elemezni mindkét irányban.

A T-SQL teljes szöveges könyvtár létrehozása

Fulltext katalógus katalógus létrehozása az ACCENT_SENSENSITIVE \u003d Alapértelmezett engedélyezés DBO Go

  • Teljes szöveges katalógus létrehozása - teljes szöveges könyvtár létrehozásának parancsát;
  • TestCatalog - Teljes szöveges katalógusunk neve;
  • Accent_Sensitivity (On | Off) - Az opció azt jelzi, hogy a teljes szöveges katalógus figyelembe veszi-e a teljes szöveges indexelés diakritikus jeleit. Alapértelmezés szerint;
  • Alapértelmezés szerint - Opció annak megadásához, hogy a könyvtár az alapértelmezett könyvtár. Teljes szöveges index esetén az alapértelmezett könyvtárat a könyvtár kifejezetten megadása nélkül használják;
  • Engedélyezés DBO - Beállítja a teljes szöveges könyvtár tulajdonosát, lehet egy felhasználó vagy adatbázis szerep. BAN BEN ez az eset Jelzük a DBO szerepét.

Teljes szöveges katalógus létrehozása grafikus felület Menedzsment stúdió.

A Pontot ugyanazt a teljes szöveges könyvtárat lehet létrehozni a Management Studio grafikus felületen. Ehhez nyissa meg az adatbázist, menjen a mappába Tárolás -\u003e Teljes szöveges katalógusok, Kattintson a jobb egérgombra ezen az elemen, és válassza a " Hozzon létre egy teljes szöveges katalógust».


A katalógus létrehozási ablak megnyílik, ahol megadjuk a könyvtár nevét és lehetőségeit.


A teljes szöveges katalógus módosítása és eltávolítása SQL Serverben

A könyvtár opciók megváltoztatásához használhatja például az ALTER FULLTEXT Katalógus utasítását, például a katalógusunkat, hogy vegye figyelembe a diakritikus jeleket, erre az SQL utasításokat írjuk le, amely új lehetőséggel újratervezi a könyvtárat.

ALTER FULLTEXT Katalógus TestCatalog Rebuild Accent_Sensitivity \u003d Off Go

A könyvtár törléséhez például a T-SQL utasításokat használhatja

Drop FullText Katalógus TestCatalog

Mindez a Gui Guiement Studio-ban lehet elvégezni ( a "Tulajdonságok" könyvtár paramétereinek módosításához, a "Törlés" törléséhez)

Teljes szöveges index létrehozása SQL Serverben

A teljes szöveges könyvtár létrehozása után elkezdheti létrehozni a teljes szöveges index létrehozását. A mi esetünkben meg akarunk hozni egy teljes szöveges indexet, amelyben a TestTable TextData mező részt vesz.

A T-SQL teljes szöveges index létrehozása

A teljes szöveges index létrehozásához írhatja a következő SQL utasításokat

Hozzon létre fulltext indexet a TestTable (TEXTDATA) billentyűzet indexe PK_TESTTABLE (TEIRCATALOG) a (Change_tracking Auto)

  • FullText index létrehozása - teljes szöveges index létrehozásának parancsát;
  • Testtable (TEXTDATA) - Az indexben szereplő táblázat és oszlop;
  • Kulcs index PK_TESTTABLE - A tesztelhető táblázat egyedi indexének neve;
  • On (testCatalog) - jelzi, hogy a teljes szöveges index a TestCatalog teljes szövegkönyvtárban kerül létrehozásra. Ha nem adja meg ezt a paramétert, az index az alapértelmezett teljes szövegkönyvben kerül létrehozásra;
  • A (Change_tracking Auto) - azt mondjuk, hogy az alaptáblába (tesztelhető) beírandó összes változás automatikusan megjelenik a teljes szöveges indexünkben, azaz Automatikus töltés.

A teljes szöveges index létrehozása a Management Studio Gui-ban

A teljes szöveges index létrehozható és grafikus eszközöket hozhat létre, így megnyithatja a teljes szöveges könyvtár tulajdonságait, és menjen az elemre " Táblázatok vagy nézetek", Válassza ki a kívánt táblázatot, mezőt, egy egyedi indexet és a módosítások nyomon követését. A mi esetünkben csak egy rendelkezésre álló asztal és egy mező van.


A teljes szöveges index módosítása és eltávolítása

Szükség esetén módosíthatja a teljes szöveges index paramétereit. Módosítsuk az utat az automatikus kézműves változások nyomon követéséhez. A grafikus felület megváltoztatásához használhatja a " Teljes szöveges katalógus tulajdonságok -\u003e Táblázatok vagy nézetek", Amelyet egy teljes szöveges index létrehozásakor használtunk.

Vagy írhatja a következő kódot

ALTERTTEXT INDEX A TELJESÍTMÉNY SET CHANDE_TRACKING \u003d Kézikönyv

A teljes szöveges index törléséhez elegendő egyszerűen törölni a táblázatot a teljes szöveges könyvtárhoz társított objektumok listájából ugyanabban az ablakban " Teljes szöveges katalógus tulajdonságok -\u003e Táblázatok vagy nézetek»


Vagy írjon egy T-SQL kódot

Drop FullText index a tesztelhető

Teljes szöveges katalógus és index létrehozása varázsló segítségével

Mivel már említettem egy első szöveges könyvtárat, és az index létrehozható a mester használatával, azaz. Lépésekkel, erre kattintson a jobb egérgombbal az asztalra, amelyet a teljes szöveges kereséshez szeretnénk felvenni, és válassza a " Teljes szöveges index -\u003e A teljes szöveges index meghatározása».

Jegyzet! Ezt megelőzően töröltem a könyvtárat, és az előző példákban létrehozott indexet.


Ennek eredményeképpen elindul az SQL Server teljes szöveges indexing varázsló.



Ezután az oszlop, amely szerepel a teljes szöveges indexbe.


Ezután ki kell választania a módosítások nyomon követésére szolgáló módot.


Adja meg a katalógus nevét és lehetőségeit, hogy megteremtse, mivel feltételezzük, hogy nincsenek könyvtárak, ha igen, akkor választhatnánk.


Itt testre szabhatjuk a teljes szöveges katalógus kitöltésére szolgáló menetrendet.


Katalógus létrehozásához és indexhez kattintva " Kész».


A következő ablakban megjelenik a műveletek végrehajtásának eredménye, hogy teljes szöveges könyvtárat és indexet hozzon létre. Az én esetemben minden sikeres volt.


Így befejeztük egy teljes szöveges könyvtár létrehozását és egy index létrehozását egy varázsló segítségével.

Példák a teljes szöveges kérésekre

Azonnal azt mondom, hogy részletesebben a teljes szöveges kéréseket a következő anyagokban fogjuk figyelembe venni, és eddig példaként, és megerősítjük, hogy a teljes szöveges keresésünk működik, írjunk néhány egyszerű teljes szöveges kérést.

Ha emlékszel, mi TestTable táblázat meghatározását tartalmazza technológiák, programozási nyelvek, általában a definíciók a gömb kapcsolatos IT. Tegyük fel, hogy minden olyan rekordot szeretnénk megkapni, ahol a Microsoft említése van, erre a teljes szöveges kérést írunk kulcsszó Például:

Válassza a * TestTable-t, ahol tartalmazza (TextData, "Microsoft")


Megkaptuk az eredményt, de például relevanciát is meg kell rendezni, más szóval, mely sorok megfelelnek a kérésünknek. Ehhez használjuk a tartályt, amely az egyes bejegyzések rangja.

Válassza table1.id mint id, rowrank.rank as, Table1.TextData jétől TestTable Table1 Belső összekapcsolás Containstable (TestTable, TextData "" Microsoft „) AS Rowrank a table1.id \u003d rowrank. Rendelés szerint Rowrank.rank Desc


Amint láthatja, a rangot rögzítik, és a sorok rendezésre kerülnek. Maga a rangsorolási algoritmus, amennyiben a teljes szöveges keresésre vonatkozó több információ megtalálható az SQL Server elektronikus dokumentációban.

Ez azt sugallja, hogy befejezze, remélem, minden tiszta volt, sok szerencsét!

A kéréseket árnyékolási idézetek nélkül írják, mivel Mysql, MS SQL. és Posztgree különbözőek.

SQL kérés: A megadott (szükséges) mezők megszerzése az asztalról

SELECT ID, COUNTRY_TITLE, COUNT_PEOPLE FROM TABLE_NAME

A rekordok listáját kapjuk: minden ország és népességük. A kívánt mezők nevét vessző jelzi.

Válassza a * Table_Name-tól

* Minden mezőt jelez. Vagyis bemutatók lesznek MINDEN Adatmezők.

SQL kérés: A táblázatból származó rekordok megjelenítése a duplikátumok kivételével

Válassza a Különleges COUNTRY_TITLE parancsot a Table_Name-ről

Records listát kapunk: olyan országok, ahol a felhasználók találhatók. A felhasználók sok ország lehetnek. Ebben az esetben ez az Ön kérése.

SQL kérés: Display Records az asztalról egy adott állapotban

SELECT ID, COUNTRY_TITLE, CITY_TITLE FROM TABLE_NAME HOL COUNT_PEOPLE\u003e 100000000

A rekordok listáját kapjuk: olyan országok, ahol az emberek száma több mint 100.000.000.

SQL kérés: A rekordok megjelenítése az alkalmazási táblázatból

Válasszon azonosítót, City_Title-t a Table_Name megrendelésből a City_Title által

A rekordok listáját kapjuk: a városok betűrendben. Az elején, a YA végén.

Válassza az ID, City_Title lehetőséget a Table_Name megrendelésről City_Title Desc

A rekordok listáját kapjuk: az ellenkezővárosok ( Desc.). Kezdetben én, az A. végén.

SQL lekérdezés: A rekordok számának száma

Válassza ki a számot (*) a Table_Name-ről

A rekordok számát (számát) kapjuk a táblázatban. Ebben az esetben nincs rekordok listája.

SQL lekérdezés: A kívánt rekordtartomány kimenete

Válassza a * Table_Name Limit 2, 3

2 (második) és 3 (harmadik) bejegyzést kapunk az asztalról. A kérés akkor hasznos, ha navigációt hoz létre az internetes oldalakon.

SQL kérések feltételekkel

Kijelző bejegyzések az asztalról egy adott állapotban logikai operátorok segítségével.

SQL kérés: Építés és (és)

Válasszon azonosítót, City_Title-t az asztalnál, ahol ország \u003d "Oroszország" és olaj \u003d 1

A rekordok listáját kapjuk: Oroszországból származó városok ÉS Hozzáférhetnek az olajhoz. Amikor az üzemeltetőt használják És., Meg kell egyeznie mindkét feltétel.

SQL kérés: Design vagy (vagy)

Válasszon azonosítót, City_Title-t az asztalnál, ahol az ország \u003d "Oroszország" vagy ország \u003d "USA"

A rekordok listáját kapjuk: Oroszország összes városa VAGY USA. Amikor az üzemeltetőt használják Vagy., meg kell egyeznie legalább egy feltétel.

SQL lekérdezés: design és nem (és nem)

Válasszon azonosítót, user_logint az asztalnál, ahol ország \u003d "Oroszország" és nem COUNT_COMEMS<7

A rekordok listáját kapjuk: Oroszország összes felhasználója ÉS Készült NEM KEVESEBB 7 megjegyzés.

SQL kérés: in (b) design

Válasszon azonosítót, user_logint az asztalnál, ahol az országban ("Oroszország", "Bulgária", "Kína")

A rekordok listáját kapjuk: az összes felhasználó él ( BAN BEN.) (Oroszország, vagy Bulgária vagy Kína)

SQL kérés: Nem a tervezésben (nem)

Válasszon azonosítót, user_logint az asztalnál, ahol az ország nem ("Oroszország", "Kína")

A rekordok listáját kapjuk: az összes olyan felhasználó, aki él, nincs ( NEM BENT.) (Oroszország vagy Kína).

SQL kérés: Null Design (üres vagy nem üres értékek)

Válasszon azonosítót, user_logint az asztalnévből, ahol az állapot null

A rekordok listáját kapjuk: Minden felhasználó, ahol az állapot nincs meghatározva. A NULL különféle téma, ezért külön ellenőrizzük.

Válasszon azonosítót, user_logint az asztalnévből, ahol az állapot nem null

Records listát kapunk: minden felhasználó, ahol az állapot definiálása (nem nulla).

SQL kérés: Mint a design

Válasszon azonosítót, user_logint az asztalnévnévből, ahol a vezetéknév, mint "Ivan%"

A rekordok listáját kapjuk: A vezetéknévvel rendelkező felhasználók az "Ivan" kombinációval kezdődnek. A% jel bármilyen karakter számát jelenti. A jelek megkeresése% A "Ivan \\%" szűrést kell használnia.

SQL lekérdezés: a tervezés között

Válasszon azonosítót, user_logint az asztalnévből, ahol 25000 és 50000 közötti fizetés

A rekordok listáját kapjuk: azok a felhasználók, akik 25 000-től 50 000-ig terjedő fizetést kapnak.

A logikai operátorok nagyon sokak, így részletesen tanulmányozhatja az SQL szerver dokumentációját.

Komplex SQL kérések

SQL lekérdezés: Több kérés kombinálása

(Válasszon azonosítót, user_logint a Table_Name1) Unióhoz (válassza az ID, User_Login a Table_Name2-től)

A rekordok listáját kapjuk: a rendszerben regisztrált felhasználók, valamint azoknak a felhasználóknak, akik külön vannak regisztrálva a fórumon. Az Unió üzemeltetője több kérést is kombinálhat. Az Unió úgy működik, mint a különálló, azaz az ismétlődő értékek eldobása. Ahhoz, hogy abszolút minden rekordot kapjon, az Unió minden üzemeltetőjét kell használnia.

SQL kérés: Counting Max, Min, Sum, Avg, Count Field értékek

Az egy, maximális számlálási érték a táblázatban:

Válassza a Max (Counter) lehetőséget a Table_Name-ről

Kimenet, minimális számláló értékek a táblázatban:

Válassza a Min (számláló) lehetőséget a Table_Name-ről

A táblázat méterének összes értékének kimenete:

Válassza ki az SUM (számlálót) az TABLE_NAME-tól

Az átlagos mérőérték kimenete a táblázatban:

Válassza az AVG (számlálót) a Table_Name-tól

Az asztalon lévő mérők száma:

Válassza ki a számot (számláló) a Table_Name-ről

Az 1. műhelyben lévő méterek száma, a táblázatban:

Válassza ki a számot (számláló) a Table_name-től, ahol az Office \u003d "Shop 1."

Ezek a legnépszerűbb csapatok. Javasoljuk, ahol lehetőség van használni az SQL kérések számlálására ilyen jellegű, mivel nem programozási környezet összehasonlítjuk a adatfeldolgozási sebességet, mint az SQL szerver maga feldolgozása során a saját adatait.

SQL lekérdezés: Records csoportosítása

Válassza ki a kontinens, az összeg (Country_area) az országcsoportból a kontinensen

A nyilvántartások listáját kapjuk: a kontinens nevével és az összes ország négyzeteinek összegével. Azaz, ha van egy szakkönyv országban, ahol minden ország területén, akkor használja a GROUP BY design, akkor megtudja, a mérete minden kontinensen (a csoportosítás kontinensen).

SQL kérés: Több asztal használata alias (alias) segítségével

Select O.Order_no, O.amount_Paid, C.com megrendelések O, ügyfél, mint a WHERE O.CUSTNO \u003d C.Custno és C.City \u003d "Tyumen"

Rekordok listáját kapjuk: megrendelések a vásárlóktól, akik csak Tyumenben élnek.

Tény, hogy egy megfelelően tervezett adatbázis az ilyen típusú, a lekérdezés leggyakoribb, így egy speciális operátor vezették be MySQL, ami működik szer gyorsabb, mint a fent említett kódot.

Válassza O.Order_No, O.amount_paid, z.comPany származó megrendelések O Bal be Ügyfél AS Z ON (z.custno \u003d O.CUSTNO)

Beágyazott szubkókák

Válassza a * Table_Name-tól, ahol a fizetés \u003d (válassza a Max (fizetés) a munkavállalótól)

Egy rekordot kapunk: felhasználói információk maximális fizetéssel.

Figyelem! A beágyazott szubkókák az SQL szerverek egyik legkesekesebb ülése. A rugalmasság és a teljesítmény mellett jelentősen növelik a szerver terhelését is. Mi vezet a többi felhasználó katasztrofális lassulásához. A csatolt lekérdezések során nagyon gyakori rekurzív hívások vannak. Ezért javaslom, hogy ne használjam befektetett kérelmeket, de kisebbre osztják őket. Vagy használja a fent leírt bal csatlakozás kombinációt. Az ilyen típus mellett a kérelmek a biztonsági jogsértés emelkedése. Ha úgy dönt, hogy beágyazott szubkókákat használ, akkor nagyon óvatosan kell megtervezni őket, és az adatbázis másolatai (vizsgálati alapok) meg kell terveznie őket.

Az SQL az adatok módosítása

SQL kérés: Insert

Utasítás Betét. Engedje meg, hogy rekordokat helyezzen be az asztalra. Egyszerű szavak, hozzon létre egy vonalat az asztalon lévő adatokkal.

1. opció. Az utasításokat gyakran használják:

Helyezze be az asztali_nevet (id, user_login) értékeket (1, "Ivanov"), (2, "Petrov")

Az asztalban " table_name."A 2 (két) felhasználó azonnal beillesztésre kerül.

2. opció 2. Kényelmes a stílus használata:

Táblázat beillesztése_name Set ID \u003d 1, user_login \u003d "Ivanov"; Table_name set ID \u003d 2, user_login \u003d "Petrov";

Ennek előnyei és hátrányai vannak.

Alapvető hátrányok:

  • Sok kis SQL lekérdezés kissé lassabb, mint egy nagy SQL lekérdezés, de más kérések állnak a szolgáltatási sorban. Azaz, ha egy nagy SQL lekérdezés befejeződik 30 percen át, majd az egész idő alatt, a többi a kérelmeket füst bambusz és várni a sor.
  • A kérés hatalmas, mint az előző opció.

Főbb előnyök:

  • A kis SQL kérések során más SQL-kérelmek nem blokkolhatók.
  • Az olvasás kényelme.
  • Rugalmasság. Ebben a kiviteli alaknál nem tudja betartani a struktúrát, de csak a szükséges adatokat adja meg.
  • Amikor képező hasonlóan archívumok, akkor könnyen másolni egy sort, és indítsa el a parancssor (konzol), és ezáltal nem lehet helyre állítani a teljes archívumban.
  • A rekord stílus hasonló a frissítési utasításhoz, amely könnyebb emlékezni.

SQL kérés: Frissítés

Table_name frissítése user_login \u003d "Ivanov", user_surname \u003d "Ivanov", ahol id \u003d 1

Az asztalban " table_name."Az ID-számmal rendelkező rekordokban \u003d 1, a user_login és a user_surname mezők értékei megváltoznak a megadott értékekre.

SQL kérés: Törlés

Törlés az asztalnévről, ahol id \u003d 3

Az asztalnév táblázat törlődik a 3. számú azonosítóval.

  1. Minden mezőnév ajánlott, hogy írjon kis betűkkel, és szükség esetén oszd meg őket a "_" kényszerteret a különböző programozási nyelvek, például Delphi, Perl, Python és Ruby kompatibilitására.
  2. SQL csapatok írásban nagy betűkkel az olvashatóság érdekében. Ne feledje, hogy mindig, hogy miután elolvashatja a kódot és más embereket, és valószínűleg maga n az időn keresztül.
  3. Hívja a mezőket a főnév kezdetétől, majd cselekedjen. Például: City_Status, user_login, user_name.
  4. Próbálja elkerülni hát szó különböző nyelveken, amely problémákat okozhat az SQL, PHP vagy Perl nyelven, például (név, szám, Link). Például: Link használható az MS SQL-ben, de a MySQL-ben fenntartva.

Ez az anyag egy rövid tanúsítvány a mindennapi munkákhoz, és nem úgy tesz, mintha egy Super Mega hiteles forrás, amely az adatbázis SQL lekérdezéseinek forrása.