Vytvorte sql tabuľku. Ako vytvoriť databázu v prostredí SQL Server

  • 18.06.2019

Vytvárajte a rušte tabuľky na serveri ms sql

Všetky údaje v databáze servera SQL sú uložené v tabuľkách.
Tabuľky pozostávajú zo stĺpcov, ktoré kombinujú hodnoty rovnakého typu, a riadkov - záznamov v tabuľke. Jedna databáza môže obsahovať až 2 miliardy tabuliek, tabuľka má 1024 stĺpcov a jeden riadok (záznam) má 8060 bajtov.

sql server podporuje nasledujúce typy údajov:

Dátový typ Označenie Veľkosť, bajty
Binárne dáta binárne
varbinárny [(n)] 1-8000
Znaky [(n)]
varchar [(n)] 1-8000
(až 8000 znakov)
Unicode znaky nchar [(n)]
nvarchar [(n)] 1-8000
(až 4000 znakov)
Dátum a čas dátum a čas 8
malý dátum, čas 4
Presné desatinné čísla [(p [, s])]
číselné [(p [, s])] 5-17
Približné čísla plávajú [(n)] reálne 4-8 4
Globálny jedinečný identifikátor 16
Celé čísla int smallint, tinyint 4 2, 1
Peniaze peniaze, drobné peniaze 8, 4
Špeciálny bit, kurzor,
názov systému, časová pečiatka 1, 0-8
Textový a obrázkový text, obrázok 0-2 GB
Unicode text ntext 0-2 GB

Tabuľky je možné vytvárať pomocou príkazu transact-sql create table, ako aj pomocou podnikového manažéra. Najprv sa pozrime, ako sa to robí pomocou transact-sql.

Vytváranie tabuliek pomocou Create table
Príkaz create table sa používa na vytváranie tabuliek.
Zjednodušená syntax pre tento operátor vyzerá takto:

vytvoriť tabuľku názov_tabulky
(názov stĺpca typ_údajov
[, ... n])
Napríklad:

vytvoriť člena tabuľky (member_no int not null, lastname char (50) not null, firstname char (50) not null, photo image null)

Tento príkaz vytvorí tabuľku členov so štyrmi stĺpcami:

member_no - je typu int, hodnoty null nie sú povolené
priezvisko - je typu char (50) - 50 znakov, hodnoty null nie sú povolené
meno – rovnaké ako priezvisko
fotografia - je typu obrázok (obrázok), povolená nula
Poznámka
null je špeciálne označenie, že na dátovej položke nezáleží. Opis typu stĺpca naznačuje, že údajové položky možno neinicializovať. Ak nie je zadané null, "prázdne" hodnoty nie sú povolené. Ak sa pri vkladaní záznamu vynechá hodnota pre takýto stĺpec, vloženie sa neuskutoční a sql server vygeneruje chybu.

Skúste tento príkaz. Spustite analyzátor dotazov. Pripojte sa k svojmu serveru. Vyberte sqlstep zo zoznamu DB. Skopírujte príkaz na vytvorenie tabuľky do príkazového okna a spustite ho. (Ak ste nezabudli, musíte stlačiť f5 alebo ctrl-e).

Aby ste sa uistili, že tabuľka bola vytvorená, zadajte príkaz:

člen sp_help
Vyberte ho (ako v bežnom editore) a znova stlačte kláves f5. V okne výsledkov sa zobrazia informácie o tabuľke členov.

Na poznámku!

sp_help je systémová procedúra, ktorá vracia informácie o databázových objektoch (tabuľky, uložené procedúry atď.).
Formát hovoru je nasledujúci:

sp_help<имя таблицы>

Zhodiť stôl je rovnako jednoduché ako lúskať hrušky. Na tom istom mieste do žiadateľa (ako to nazývame analyzátor dotazov) zadajte:

člen drop table

Zvýraznite tento riadok a stlačte kláves f5. Tabuľka bude vymazaná a budete o tom informovaní. V našom prípade je tento postup jednoduchý. V skutočnosti vo veľkej databáze nebude možné vymazať tabuľku len tak, keďže bude prepojená s inými tabuľkami a vymazanie si bude vyžadovať prerušenie týchto väzieb. Pozrite si ďalšie kroky, ako to urobiť.

Ako vytvoriť tabuľku pomocou podnikového manažéra servera SQL
Postupne rozbaľte: skupina serverov SQL,<Ваш sql server>, databázy. Vyberte databázu (sqlstepbystep, myslím :), kliknite pravým tlačidlom myši a z kontextového menu vyberte "nový" a potom "tabuľka ...". V prvom rade sa vás opýta na názov stola. Zadajte ho a stlačte enter. Na obrazovke sa zobrazí okno, v ktorom môžete zadať:
názvy stĺpcov, typ, dĺžka, rozmer, presnosť (tieto tri stĺpce sú blokované v závislosti od typu), príznak povolenia null, predvolená hodnota. Posledné tri stĺpce zatiaľ nie sú zaujímavé.

Zadajte názvy stĺpcov, ich typ a dĺžku ako v príklade vyššie. Kliknutím na ikonu diskety tabuľku uložíte a okno môžete zavrieť. Rozšírte svoju databázu, kliknite na kategóriu "tabuľky" a v zozname tabuliek sa vám zobrazí tabuľka, ktorú ste práve zadali. Ak ho chcete odstrániť, vyberte ho v zozname, kliknite pravým tlačidlom myši a v kontextovej ponuke vyberte možnosť „vymazať“. Tabuľka bude vymazaná.

Pozreli sme sa na to, ako sa vytvárajú a rušia tabuľky. Naším ďalším krokom je vytvorenie plnohodnotnej databázy, na ktorej príklade budeme študovať:

čo je relačná integrita databázy a ako je zabezpečená na serveri SQL
ako upravovať údaje v tabuľkách (vkladať, aktualizovať, mazať, vyberať výpisy)
ako používať uložené procedúry a spúšťače

Dobrý zlý

Prednáška

Vytvorenie databázy pomocou SQL.

Manipulácia s údajmi v SQL

Jazyk SQL zahŕňa jazyk na popis údajov, ktorý vám umožňuje spravovať tabuľky, a jazyk na manipuláciu s údajmi, ktorý slúži na správu údajov ( snímka 2 ).

17.1. Budovanie databáz s SQL

17.1.1. Príkaz na vytvorenie tabuľky je - VYTVORIŤTABLE

Tabuľka sa vytvorí pomocou príkazu CREATE TABLE. Zovšeobecnená syntax príkazu je nasledovná (snímka 3).

Tie. po zadaní názvu tabuľky oddeleného čiarkami v zátvorkách by sa mali uviesť všetky vety, ktoré definujú jednotlivé prvky tabuľky - stĺpce alebo obmedzenia integrity:

table_name je identifikátor vytváranej tabuľky, ktorý je vo všeobecnosti vytvorený z názvu databázy, mena vlastníka tabuľky a vlastného mena tabuľky Kombinácia názvu tabuľky a jej vlastníka musí byť v rámci databázy jedinečná. Ak tabuľka nie je vytvorená v aktuálnej databáze, názov databázy musí byť zahrnutý v jej ID.

column_definition - určuje názov, typ údajov a parametre jednotlivého stĺpca tabuľky. Názvy stĺpcov musia spĺňať pravidlá pre identifikátory a musia byť jedinečné v rámci tabuľky.

table_constraint_define - Zadajte nejaké obmedzenie integrity na úrovni tabuľky.

Popis stĺpca

Ako môžete vidieť zo syntaxe príkazu CREATE TABLE, pre každý stĺpec je špecifikovaná klauzula<определение_столбца>, pomocou ktorého sa nastavujú vlastnosti stĺpca. Veta má nasledujúcu syntax( snímka 3) :

Zvážme účel a použitie parametrov.

Column_name je identifikátor, ktorý určuje názov stĺpca tabuľky.

datatype – určuje typ údajov stĺpca. Ak pri definovaní stĺpca nie je výslovne uvedené obmedzenie ukladania hodnôt NULL, použijú sa vlastnosti typu údajov, t.j. ak vybraný typ údajov umožňuje ukladanie hodnôt NULL, stĺpec bude tiež môcť ukladať hodnoty NULL. Ak je pri definovaní stĺpca v príkaze CREATE TABLE ukladanie hodnôt NULL explicitne povolené alebo odmietnuté, vlastnosti typu údajov budú prepísané obmedzením nastaveným na úrovni stĺpca. Ak vám napríklad typ údajov umožňuje ukladať hodnoty NULL a stĺpec je na úrovni stĺpca zakázaný, pokus o vloženie hodnoty NULL do stĺpca zlyhá.

column_constraint - Táto klauzula špecifikuje obmedzenia, ktoré budú definované pre stĺpec. Syntax klauzuly je nasledovná ( snímka 4 ):

Pozrime sa na účel parametrov.

CONSTRAINT je voliteľné kľúčové slovo, za ktorým nasleduje názov obmedzenia v hodnotách stĺpca (názov_obmedzenia). Názvy obmedzení musia byť v rámci databázy jedinečné.

DEFAULT – Nastaví predvolenú hodnotu pre stĺpec. Táto hodnota sa použije pri vkladaní riadka, ak pre stĺpec nie je explicitne zadaná žiadna hodnota.

NULL | NOT NULL - kľúčové slová umožňujúce (NULL) alebo nepovoľujúce (NOT NULL) ukladanie hodnôt NULL do stĺpca. Ak pre stĺpec nie je zadaná žiadna predvolená hodnota, vloženie riadka s neznámou hodnotou pre stĺpec sa pokúsi vložiť do stĺpca hodnotu NULL. Ak je pre stĺpec zadané obmedzenie NOT NULL, pokus o vloženie riadku bude odmietnutý a používateľ dostane zodpovedajúce chybové hlásenie.

PRIMÁRNY KĽÚČ - definícia primárneho kľúča na úrovni jedného stĺpca (t.j. primárny kľúč bude pozostávať iba z hodnôt jedného stĺpca). Ak je potrebné vytvoriť primárny kľúč na základe dvoch alebo viacerých stĺpcov, potom musí byť takéto obmedzenie integrity špecifikované na úrovni tabuľky. Malo by sa však pamätať na to, že pre každú tabuľku možno vytvoriť iba jeden primárny kľúč.

UNIQUE – indikácia na vytvorenie UNIQUE integritného obmedzenia pre stĺpec, ktoré zabezpečí jedinečnosť každej jednotlivej hodnoty v stĺpci v rámci daného stĺpca. V tabuľke možno vytvoriť niekoľko UNIKÁTnych obmedzení integrity.

CUDZÍ KĽÚČ ... REFERENCIE - označenie, že stĺpec bude slúžiť ako cudzí kľúč pre tabuľku, ktorej názov je zadaný pomocou parametra<имя_главной_таблицы>.

(názov_stĺpca [, ..., n]) - stĺpec alebo čiarkami oddelený zoznam stĺpcov hlavnej tabuľky zahrnutých v obmedzení FOREIGN KEY. V tomto prípade môžu stĺpce zahrnuté v cudzom kľúči odkazovať iba na stĺpce primárneho kľúča alebo stĺpcov s obmedzením UNIQUE tabuľky.

ON DELETE (KASKÁDNE | BEZ AKCIE) – Tieto kľúčové slová určujú akciu, ktorá sa má vykonať, keď sa z hlavnej tabuľky odstráni riadok. Ak je zadané kľúčové slovo CASCADE, potom keď sa vymaže riadok z hlavnej (nadradenej) tabuľky, vymaže sa aj riadok v závislej tabuľke. Ak v takom prípade zadáte kľúčové slovo NO ACTION, vyvolá sa chyba. Predvolená hodnota je NO ACTION.

ON UPDATE (CASCADE | NO ACTION) – Tieto kľúčové slová určujú akciu, ktorá sa má vykonať, keď sa zmení riadok v hlavnej tabuľke. Ak je zadané kľúčové slovo CASCADE, potom keď sa upraví riadok z hlavnej (nadradenej) tabuľky, upraví sa aj riadok v závislej tabuľke. Ak v takom prípade použijete kľúčové slovo NO ACTION, zobrazí sa chyba. Predvolená hodnota je NO ACTION.

CHECK je obmedzenie integrity, ktoré iniciuje kontrolu hodnôt zadaných do stĺpca (alebo stĺpcov).

boolean_expression je booleovský výraz používaný pre obmedzenie CHECK.

Obmedzenia na úrovni tabuľky

Syntax pre príkaz CREATE TABLE je použiť klauzulu<ограничение_таблицы>ktorý definuje obmedzenia integrity na úrovni tabuľky. Syntax klauzuly je nasledovná (snímka 5) .

Účel parametrov je rovnaký ako účel podobných parametrov ponuky.<ограничение_столбца > ... Avšak vo vete<ограничение_таблицы>existuje niekoľko nových možností:

column_name je stĺpec (alebo zoznam stĺpcov), na ktorý chcete zaviesť akékoľvek obmedzenia integrity.

- spôsob usporiadania údajov v indexe. Index sa vytvorí, keď zadáte kľúčové slová PRIMARY KEY, UNIQUE. Ak je zadané ASC, údaje v indexe budú zoradené vzostupne, ak je zadané DESC, v zostupnom poradí. Predvolená hodnota je ASC.

Príklady tvorby tabuliek

Ako príklad zvážte pokyny na vytvorenie databázových tabuliek relácie:

Tabuľka „Študenti“ pozostáva z nasledujúcich stĺpcov:

ID_Student - dátový typ INTEGER, jedinečný kľúč;

Číslo_skupiny - dátový typ CHAR, dĺžka 6;

snímka 6).

Adresa a telefón, uložené obmedzenia NIE JE NULL

Na vytvorenie tabuľky "Disciplíny" bol použitý príkaz (snímka 7).

Tabuľka obsahuje 2 stĺpce (ID_Disciplína, názov).

Podľa stĺpcov ID_Disciplína, názov uložené obmedzenia NIE JE NULL ktoré zakazujú zadávanie riadku, keď hodnota stĺpca nie je definovaná.

Stĺpec ID_Disciplínadeklarované ako primárny kľúč a na hodnotách zadaných do stĺpca Názov, je uložená podmienka jedinečnosti.

Tabuľka „Study_plan“ obsahuje nasledujúce stĺpce:

ID_Disciplína - dátový typ INTEGER;

Semester - dátový typ INTEGER;

Počet_hodín - dátový typ INTEGER;

Tabuľka bola vytvorená pomocou nasledujúceho príkazu (snímka 8).

Pre hodnoty stĺpcov semester bol formulovaný logický výraz, ktorý umožňuje zadať iba hodnoty od 1 do 10.

Tabuľka Pivot_Note pozostáva z nasledujúcich stĺpcov:

ID_Student - typ údajov INTEGER, stĺpec jedinečného kľúča;

ID_Plan - typ údajov INTEGER, stĺpec jedinečného kľúča;

Vyhodnotenie - dátový typ INTEGER;

Date_Date - dátový typ DATETIME;

ID_Teacher je typ údajov INTEGER.

Tabuľka bola vytvorená pomocou nasledujúceho príkazu (snímka 9).

Obmedzenia sú uložené vo všetkých stĺpcoch tabuľky NIE JE NULL ktoré zakazujú zadávanie riadku, keď hodnota stĺpca nie je definovaná.

Pre hodnoty stĺpcov stupňa bol formulovaný logický výraz, ktorý umožňuje zadať iba hodnoty od 0 do 5: 0 - nevyhovel, 1 - vyhovel, 2 - nevyhovoval, 3 - uspokojivo, 4 - dobre, 5 - výborne.

A nakoniec, poďme uviesť stĺpce "Personálne_Zloženie":

ID_Teacher - dátový typ INTEGER, jedinečný kľúč;

Priezvisko - dátový typ CHAR, dĺžka 30;

Názov - dátový typ CHAR, dĺžka 15;

Patronymický - typ údajov CHAR, dĺžka 20;

Pozícia - dátový typ CHAR, dĺžka 20;

Stolička - dátový typ CHAR, dĺžka 3;

Adresa - typ údajov CHAR, dĺžka 30;

Telefón - dátový typ CHAR, dĺžka 8.

Tabuľka bola vytvorená pomocou nasledujúceho príkazu (snímka 10).

Pre všetky stĺpce tabuľky okrem stĺpcov Adresa a telefón, uložené obmedzenia NIE JE NULL ktoré zakazujú zadávanie riadku, keď hodnota stĺpca nie je definovaná.

Pre tabuľky „Study_plan“ a „Pivot_sheet“ musia byť vytvorené cudzie kľúče, ktoré spájajú tabuľky databázy „Session“:

FK_disciplína je cudzí kľúč, ktorý spája tabuľky "Curriculum_plan" a "Disciplines" stĺpcom ID_ disciplíny;

FK_Human_Composition - cudzí kľúč spájajúci tabuľky "Curriculum_plan" a "Personnel_staff" stĺpcom ID_Učiteľ;

FK_Student - cudzí kľúč spájajúci tabuľky Pivot_notification a Students stĺpcom ID_Student;

FK_Plan je cudzí kľúč spájajúci tabuľky Pivot_notification a Training_plan podľa stĺpcov ID _plán.

Pridanie cudzích kľúčov do tabuliek zvážime neskôr, keď budeme diskutovať o možnostiach príkazu ALTER TABLE.

17.1.2. Zmena štruktúry tabuľky - príkaz ALTERTABLE

Bez ohľadu na to, ako starostlivo plánujete štruktúru tabuľky, niekedy v nej musíte urobiť nejaké zmeny. Predpokladajme, že potrebujete pridať svoje domáce telefónne číslo a domácu adresu do už vygenerovanej tabuľky Učitelia. Táto operácia môže byť vykonaná rôznymi spôsobmi. Môžete napríklad zrušiť tabuľku so starou štruktúrou a namiesto toho vytvoriť novú tabuľku s požadovanou štruktúrou. Nevýhodou tohto spôsobu je, že údaje v tabuľke bude potrebné niekam skopírovať a po jej vytvorení prepísať do novej tabuľky.

Špeciálny tím ALTER TABLE je určený na úpravu štruktúry tabuľky. Dá sa použiť na zmenu vlastností existujúcich stĺpcov, vymazanie alebo pridanie stĺpcov do tabuľky a spravovanie obmedzení integrity na úrovni stĺpcov aj na úrovni tabuľky, t.j. vykonávať nasledujúce funkcie:

Pridajte do tabuľky novú definíciu stĺpca;

Odstráňte stĺpec z tabuľky;

Zmeňte predvolenú hodnotu pre ktorýkoľvek stĺpec;

Pridať alebo odstrániť primárny kľúč tabuľky;

Pridať alebo odstrániť cudzí kľúč do tabuľky;

Pridajte alebo odstráňte podmienku jedinečnosti;

Pridajte alebo odstráňte podmienku hodnoty.

Zovšeobecnená syntax príkazov ALTER TABLE prezentované na snímke (snímka 11).

Príkaz ALTER TABLE sa postará o všetky akcie pre skopírovanie údajov do dočasnej tabuľky, vymazanie starej tabuľky, vytvorenie novej tabuľky s požadovanou štruktúrou a následné prepísanie údajov do nej.

Priradenie mnohých parametrov príkazu a kľúčových slov ALTER TABLE podobne ako priradenie zodpovedajúcich parametrov príkazu a kľúčových slov VYTVORIŤ TABUĽKU (napríklad syntax konštruktu<определение_столбца>zodpovedá syntaxi podobnej príkazovej konštrukcie VYTVORIŤ TABUĽKU).

Hlavné spôsoby použitia príkazu ALTER TABLE sú nasledovné:

Pridanie stĺpca;

Odstránenie stĺpca;

Úprava stĺpca;

Úprava, pridávanie a odstraňovanie obmedzení (primárny a cudzí kľúč, predvolené hodnoty).

Pridanie stĺpca

Ak chcete pridať nový stĺpec, použite kľúčové slovo PRIDAŤ nasleduje definícia stĺpca.

Pridajme napríklad do tabuľky „Študenti“ stĺpec „Rok_prijatia“ (snímka 12). Po vykonaní tohto príkazu sa do štruktúry tabuľky "Študent" pridá ďalší stĺpec s predvolenou hodnotou rovnajúcou sa aktuálnemu roku (predvolená hodnota sa vypočíta pomocou dvoch vstavaných funkcií - YEAR () a GETDATE ()).

Úprava stĺpca

Ak chcete upraviť existujúci stĺpec v tabuľke, použite kľúčové slovo ZMENIŤ STĹPEC ... Vlastnosti stĺpca nemožno zmeniť, ak:

stĺpec sa podieľa na obmedzení PRIMARY KEY alebo FOREIGN KEY;

stĺpec má obmedzenia integrity CHECK alebo UNIQUE (výnimkou sú stĺpce s typmi údajov s premenlivou dĺžkou, to znamená s typmi údajov začínajúcimi s var);

ak je k stĺpcu priradená predvolená hodnota (v tomto prípade môžete zmeniť dĺžku, celkový počet číslic alebo počet číslic za desatinnou čiarkou s rovnakým typom údajov).

Pri definovaní nového typu údajov pre stĺpec nezabudnite, že starý typ údajov sa musí skonvertovať na nový.

Príklad úpravy stĺpca „Číslo_skupiny“ tabuľky „Študenti“ (typ údajov INTEGER je nahradené znakom CHAR) ( snímka 12).

Odstránenie stĺpca

Ak chcete odstrániť stĺpec z tabuľky, použite klauzulu PUSTIŤ STĹPEC <имя_столбца>... Pri odstraňovaní stĺpcov majte na pamäti, že nemôžete odstrániť stĺpce s obmedzeniami integrityŠEK, CUDZÍ KĽÚČ, UNIKÁTNY alebo PRIMÁRNY KĽÚČ a tiež stĺpce, pre ktoré sú definované predvolené hodnoty (vo forme obmedzenia integrity na úrovni stĺpca alebo na úrovni tabuľky).

Zoberme si napríklad príkaz vymazať z tabuľky „Študent“ stĺpec „Rok_prijatia“ (snímka 12).

Tento príkaz sa nevykoná. predvolená hodnota bola definovaná pri pridávaní stĺpca.

Pridajte obmedzenia na úrovni tabuľky

Ak chcete pridať obmedzenia na úrovni tabuľky, použite klauzulu PRIDAŤ OBMEDZENIE <имя_ограничения>.

Ako príklad zvážte príkazy na pridávanie cudzích kľúčov do tabuliek databázy Session (snímka 13):

· pridanie cudzích kľúčov do tabuľky „Study_plan“ (vytvorenie prepojenia s názvom FK _Disciplína a spojenie s menom FK _ Personálne zloženie);

· pridanie cudzích kľúčov do tabuľky Pivot_Note (vytvorenie prepojenia s názvom FK _Odkazy na študentov a mená FK_plán).

Podľa konštrukcie PRIDAŤ OBMEDZENIE vytvorí sa pomenované obmedzenie. Je potrebné poznamenať, že odstránenie akéhokoľvek obmedzenia na úrovni tabuľky nastáva iba jeho názvom, takže obmedzenie musí byť pomenované (aby bolo možné ho odstrániť).

Odstránenie obmedzení

Ak chcete odstrániť obmedzenie integrity z tabuľky, použite klauzulu OBMEDZENIE DROP <имя_ограничения>.

Odstránenie obmedzenia integrity je možné len vtedy, keď je pomenované (t. j<определение_ограничения>obsahuje obmedzenia názvov OBMEDZENIE).

Odstrániť vytvorený príkaz cudzieho kľúča FK _Disciplína z tabuľky "Curriculum_plan" vyzerá takto (snímka 14).

Na snímke ( snímka 14) zobrazuje odstránenie predtým vytvoreného obmedzenia na predvolenú hodnotu DEF _Group_Number.

17.1.3. Zhadzovanie tabuliek - príkaz POKLESTABLE

Zrušenie tabuľky sa vykonáva pomocou príkazu PUSTIŤ TABUĽKU ( snímka 14).

Jediný argument príkazu špecifikuje názov tabuľky, ktorá sa má zrušiť.

Operácia spustenia stola v niektorých prípadoch vyžaduje určitú pozornosť. Nie je možné zrušiť tabuľku, ak sa na ňu používa obmedzenie integrity CUDZÍ KĽÚČ iná tabuľka odkazuje: pokus o vymazanie tabuľky "Disciplíny" spôsobí chybové hlásenie, pretože na tabuľku disciplíny odkazuje tabuľka "Curriculum_plan".

17.2. Správa údajov

Konečným cieľom každého systému správy databáz je zadávať, upravovať, mazať a získavať údaje. Pozrime sa na metódy správy údajov pomocou jazyka SQL.

17.2.1. Načítanie údajov - príkaz VYBRAŤ

Hlavným nástrojom na vyhľadávanie údajov v jazyku SQL je príkaz VYBRAŤ ... Pomocou tohto príkazu môžete získať prístup k údajom prezentovaným ako kolekcia tabuliek takmer akejkoľvek zložitosti.

Najčastejšie sa používa zjednodušená verzia príkazu VYBRAŤ s nasledujúcou syntaxou (snímka 15).

príkaz SELECT je rozdelená na samostatné časti, z ktorých každá má svoj vlastný účel. Z vyššie uvedeného syntaktického opisu je zrejmé, že sú potrebné iba sekcie. SELECT a FROM a zvyšok sekcií možno vynechať. Úplný zoznam sekcií je zobrazený na snímke (snímka 15).

sekciu SELECT

Hlavným účelom sekcie VYBRAŤ (jedna z dvoch povinných sekcií, ktoré musia byť uvedené v každom dotaze) - špecifikovanie množiny stĺpcov vrátených po vykonaní dotazu, t.j. vzhľad výsledku. V najjednoduchšom prípade sa vráti stĺpec z jednej z tabuliek zúčastňujúcich sa na dotaze. V zložitejších situáciách sa množina hodnôt v stĺpci vygeneruje ako výsledok vyhodnotenia výrazu. Tieto stĺpce sa nazývajú vypočítané stĺpce a štandardne nie sú pomenované.

V prípade potreby môže používateľ zadať ľubovoľný názov pre stĺpec vrátený po vykonaní dotazu. Takéto meno sa nazýva alias ( alias ). Za normálnych okolností je priradenie aliasu voliteľné, ale v niektorých prípadoch sa vyžaduje jeho explicitné určenie. Najčastejšie sa to vyžaduje pri práci s sekciou. DO v ktorom každý z vrátených stĺpcov musí mať názov a tento názov musí byť jedinečný.

Okrem toho, čo bolo povedané, pomocou sekcie VYBRAŤ môžete obmedziť počet riadkov, ktoré budú zahrnuté do výsledku výberu. Syntax sekcie VYBRAŤ ďalej ( snímka 16).

Pozrime sa na účel parametrov.

Kľúčové slová VŠETKY | ODLIŠNÝ. Pri zadávaní kľúčového slova VŠETKY výsledky dotazu sa vypíšu všetky riadky, ktoré spĺňajú formulované podmienky, čím umožňujú zahrnutie identických riadkov do výsledku (podobnosť riadkov sa určuje na úrovni výsledku výberu, a nie na úrovni zdrojových údajov). Parameter VŠETKY používa sa štandardne.

Ak v dotaze SELECT kľúčové slovo je zadané ODLIŠNÝ , potom nebude do výsledku výberu zahrnutý viac ako jeden duplicitný riadok. Týmto spôsobom bude každý vrátený reťazec jedinečný. V tomto prípade sa jedinečnosť riadka určuje na úrovni riadkov výsledku výberu, a nie na úrovni zdrojových údajov. Ak sú vo výsledku výberu zahrnuté dva stĺpce, jedinečnosť bude určená hodnotami oboch týchto stĺpcov. Hodnoty v prvom a druhom stĺpci sa môžu jednotlivo opakovať, ale kombinácia hodnôt v oboch stĺpcoch musí byť jedinečná. Podobné pravidlá platia pre viac stĺpcov.

Zvážte výsledok použitia kľúčových slov VŠETKY a ODLIŠNÉ na príklade výberu stĺpcov Semester a Reporting z tabuľky "Study_plan" databázy "Session" ( snímka 17 ). Najprv vykonajte dotaz špecifikujúci kľúčové slovo VŠETKY ... Fragment výsledku je zobrazený na snímke. Teraz nahraďme kľúčové slovo VŠETKY na DISTINCT ... V tomto prípade sú výsledkom dotazu zobrazeným na snímke riadky obsahujúce rovnaké hodnoty v stĺpcoch zahrnutých iba raz. Tento výsledok by mal len naznačovať prítomnosť rôznych foriem podávania správ v semestroch.

kľúčslovoTOP n. Použitie kľúčového slova TOP n, kde n je číselná hodnota, umožňuje vybrať nie všetky riadky vo výsledku, ale iba prvých n. V tomto prípade sa vyberú prvé riadky výsledku výberu a nie pôvodné údaje. Preto sa množina riadkov ako výsledok výberu pri zadávaní kľúčového slova TOP môže meniť v závislosti od poradia zoradenia. Ak žiadosť používa sekciu KDE , potom kľúčové slovo TOP funguje na množine riadkov vrátených po použití boolovskej podmienky definovanej v sekcii KDE.

Ukážme si použitie kľúčového slova TOP (šmykľavka18 )

V tomto príklade z tabuľky Študenti z databázy Session sa vybralo prvých 5 riadkov.

Môžete tiež vybrať nie pevný počet riadkov, ale určité percento všetkých riadkov, ktoré spĺňajú podmienku. Ak to chcete urobiť, musíte pridať kľúčové slovo PERCENT.

Celkovo mala tabuľka 115 riadkov, teda 10 % bude 11,5 riadkov. V dôsledku toho sa zobrazí 12 riadkov.

Ak zadaný počet percent riadkov nie je celé číslo, server vždy zaokrúhli nahor.

Poskytujeme aj príklad, ktorý demonštruje vplyv poradia zoradenia na vrátenú množinu riadkov (šmykľavka19 ).

Pri špecifikovaní spolu s vetou ZORADIŤ PODĽA kľúčové slovo S VÄZBAMI výsledok bude zahŕňať aj riadky, ktoré zodpovedajú hodnote triediaceho stĺpca s poslednými zobrazenými riadkami dopytu SELECT TOP n [PERCENT].

Používanie kľúčových slov S VÄZBAMI v predchádzajúcom príklade zabezpečí vydanie informácií ako odpoveď na žiadosť o informácie o všetkých študentoch v prvej skupine v poradí (šmykľavka20 ).

Ponuka<Список_выбора>. Syntax vety<Список_выбора>Ďalšie (snímka 21).

Symbol "*" znamená, že výsledok zahŕňa všetky stĺpce v zozname tabuliek sekcií OD.

Ak výsledok nemusí obsahovať všetky stĺpce zo všetkých tabuľky, potom môžete explicitne zadať názov objektu, z ktorého musíte vybrať všetky stĺpce (<Имя_таблицы>.* alebo<Alias_tabulky>. *).

Vo výsledku výberu je zahrnutý samostatný stĺpec tabuľky explicitným zadaním názvu stĺpca (parameter<Имя_столбца>). Stĺpec musí patriť do jednej z tabuliek špecifikovaných v klauzule FROM. Ak stĺpec so zadaným názvom existuje vo viac ako jednom zdroji údajov uvedených v klauzule FROM, musíte explicitne zadať názov zdroja údajov, do ktorého stĺpec patrí, vo formáte<Имя_таблицы>.<Имя_столбца>V opačnom prípade sa zobrazí chybové hlásenie.

Skúsme napríklad vybrať údaje zo stĺpca ID disciplíny, ktorý je dostupný v tabuľkách Discipline a Academic_plan:

Vráti sa chybová správa označujúca nesprávne použitie názvu 'ID_Discipline'.

To znamená, že v tomto prípade musíte explicitne zadať názov zdroja údajov, do ktorého stĺpec patrí, napríklad:

Stĺpce vrátené ako výsledok vykonania dotazu môžu byť priradené. Aliasy vám umožňujú zmeniť názov zdrojového stĺpca alebo pomenovať stĺpec, ktorého obsah sa získa ako výsledok vyhodnotenia výrazu. Názov aliasu sa zadáva pomocou parametra<Псевдоним_столбца>... Kľúčové slovo AS je pri zadávaní aliasu voliteľné. Vo všeobecnosti server nevyžaduje jedinečné názvy stĺpcov vo výsledku načítania, takže rôzne stĺpce môžu mať rovnaké názvy alebo aliasy.

Stĺpce ako výsledok výberu môžu byť nielen kópiou stĺpca jednej z pôvodných tabuliek, ale môžu byť vytvorené aj na základe výpočtu výrazu. Takýto stĺpec vo výberovom zozname je špecifikovaný pomocou konštrukcie<Выражение> [ <Псевдоним_столбца>]. V tomto prípade môže výraz obsahovať konštanty, názvy stĺpcov, funkcie, ako aj ich kombinácie. Okrem toho je možné priradiť alias stĺpcu vygenerovanému vyhodnotením výrazu jeho zadaním pomocou parametra<Псевдоним_столбца>... Predvolene nemá vypočítaný stĺpec názov.

Ďalším spôsobom, ako vytvoriť vypočítaný stĺpec, je použiť konštrukciu znamienka rovnosti:<Псевдоним_столбца> = <Выражение>... Jediný rozdiel medzi touto a predchádzajúcou metódou je, že musí byť špecifikovaný alias. V najjednoduchšom prípade je výraz názov stĺpca, konštanta, premenná alebo funkcia. Ak sa ako výraz použije názov stĺpca, získame iný spôsob určenia aliasu pre stĺpec.

Zvážte nasledujúci príklad. Predpokladajme, že pre tabuľku "Študenti" je potrebné zostaviť dotaz, ktorý uvádza priezvisko, meno a priezvisko v jednom stĺpci. Pomocou operácie zreťazenia (sčítania) reťazcov znakov a hodnoty celého mena ako aliasu stĺpca zostavíme dotaz ( šmykľavka 22 ).

doložka FROM

Pomocou sekcie OD sú určené zdroje údajov, s ktorými bude dotaz pracovať.

Syntax sekcie OD nasledujúceho ( šmykľavka23 )

Na prvý pohľad vyzerá štruktúra sekcie jednoducho. Pri bližšom skúmaní sa však ukazuje, že je to dosť zložité. V podstate práca s oddielom OD je to čiarkami oddelený zoznam zdrojov údajov, s ktorými by mal dotaz pracovať. Skutočný zdroj údajov je označený pomocou vety<Источник_данных>, ktorého syntax je zobrazená na snímke.

Pomocou parametra<имя_таблицы>je uvedený názov bežnej tabuľky. Parameter<псевдоним_таблицы>sa používa na priradenie aliasu k tabuľke, pod ktorým bude potrebné odkazovať v dotaze. Často sa aliasy tabuliek používajú na to, aby bol odkaz na požadovanú tabuľku pohodlnejší a kratší. Napríklad, ak váš dopyt často spomína názov tabuľky „Lesson_plan“, môžete použiť alias, ako napr. tpl ... Určenie kľúčového slova AS je voliteľná.

klauzula WHERE

klauzula WHERE je určený na uloženie vertikálnych filtrov na údaje spracovávané požiadavkou. Inými slovami, pomocou sekcie KDE môžete zúžiť množinu riadkov zahrnutých vo výsledku výberu. Na to je určená logická podmienka, ktorá určuje, či bude riadok zaradený do výberu na základe požiadavky alebo nie. Reťazec je zahrnutý vo výsledku výberu iba vtedy, ak boolovský výraz vráti hodnotu PRAVDA.

Vo všeobecnosti boolovský výraz obsahuje názvy stĺpcov v tabuľkách, s ktorými dotaz pracuje. Pre každý riadok vrátený dotazom sa vyhodnotí boolovský výraz nahradením názvov stĺpcov špecifickými hodnotami z príslušného riadka. Ak vyhodnotenie výrazu vráti hodnotu PRAVDA , to znamená, že výraz je pravdivý, potom bude reťazec zahrnutý do konečného výsledku. V opačnom prípade nebude reťazec zahrnutý do výsledku. Viac ako jeden boolovský výraz možno zadať podľa potreby ich zreťazením pomocou boolovských operátorov ALEBO a AND.

Zvážte syntax sekcie KDE ( snímka 24).

V stavebníctve<условие_отбора>môžete definovať ľubovoľnú boolovskú podmienku, po splnení ktorej bude riadok zahrnutý do výsledku.

Príklad na snímke ukazuje logiku sekcie. KDE ... Tým sa vráti zoznam všetkých študentov, ktorí nastúpili na fakultu pred rokom 2000.

Okrem porovnávacích operácií (=,>,<, >=, <=) и логических операторов ALEBO, A, NIE pri vytváraní výberovej podmienky možno použiť ďalšie logické operátory na rozšírenie možností správy dát. Poďme sa pozrieť na niektorých z týchto operátorov.

OperátorMEDZI. Tento operátor možno použiť na určenie, či je hodnota zadanej hodnoty v zadanom rozsahu. Syntax na použitie operátora je nasledovná ( snímka 25 ).

<Выражение>určuje hodnotu na kontrolu a argumenty<начало_диапазона>a<конец_диапазона>určiť možné hranice jeho zmeny. Použitie operátora NIE spolu s operátorom MEDZI umožňuje nastaviť rozsah, mimo ktorého sa kontrolovaná hodnota môže meniť.

Po vykonaní operátor MEDZI je konvertovaný na konštrukt s dvoma porovnávaniami.

Zoberme si príklad použitia operátora MEDZI ( snímka 25). V dôsledku dodržiavania pokynov dostaneme zoznam učebných odborov s počtom hodín od 50 do 100.

OperátorIN. Operátor vám umožňuje zadať množinu možných hodnôt pre kontrolovanú hodnotu v podmienke výberu. Syntax na použitie operátora je nasledovná (snímka 26).

<Выражение>určuje hodnotu na kontrolu a argumenty<выражение1>,…, <выражение N > zadajte zoznam hodnôt oddelených čiarkami, ktoré môže začiarknutá hodnota nadobudnúť. Kľúčové slovo NIE vykonáva logickú negáciu.

Zvážte príklad použitia operátora IN ( snímka 26). Dodržaním pokynov dostaneme riadky učiva pre odbory „Angličtina“ a „Telesná kultúra“.

OperátorPÁČI SA MI TO. Pomocou operátora PÁČI SA MI TO môžete porovnať výraz typu znaku s daným vzorom. Syntax operátora je nasledovná (snímka 27).

<Образец>určuje vzor znakov na porovnanie a je uzavretý v úvodzovkách. Šablóna môže obsahovať oddeľovacie znaky. Nasledujúce oddeľovacie znaky sú povolené (snímka 27):

% - možno nahradiť v symbolickom výraze ľubovoľným počtom ľubovoľných znakov;

_ - môže byť v symbolickom vyjadrení nahradený akýmkoľvek, ale iba jedným symbolom;

[ ABC0-9] - možno v symbolickom výraze nahradiť iba jedným znakom z množiny uvedenej v hranatých zátvorkách (na označenie rozsahu sa používa spojovník);

[^ ABC0-9] - možno nahradiť v symbolickom výraze iba jedným znakom, s výnimkou tých, ktoré sú uvedené v hranatých zátvorkách (na označenie rozsahu sa používa spojovník).

Zoberme si príklad použitia operátora (snímka 27). Použitie vzorky pre hodnotu stĺpca Pozícia nám v tomto prípade umožnilo vybrať riadky s hodnotami "St.prep." a "Prof"

kapitolaOBJEDNAŤBY

OBJEDNAŤ PODĽA sekcie slúži na objednanie množiny údajov vrátenej po vykonaní dotazu. Kompletná syntax sekcie OBJEDNAŤ DO nasledujúcej ( snímka 28).

Parameter<условие_сортировки>vyžaduje zadanie výrazu, podľa ktorého sa bude triedenie reťazcov vykonávať. V najjednoduchšom prípade je tento výraz názvom stĺpca jedného zo zdrojov údajov dotazu.

Je potrebné poznamenať, že výraz, podľa ktorého sú riadky zoradené, môže používať aj stĺpce, ktoré nie sú uvedené v časti SELECT, to znamená, že nie sú zahrnuté vo výsledku výberu.

OBJEDNAŤ PODĽA sekcie umožňuje použitie kľúčových slov ASC a DESC, ktoré možno použiť na explicitné určenie, ako majú byť reťazce usporiadané. Ak zadáte kľúčové slovo ASC, údaje sa zoradia vo vzostupnom poradí. Ak chcete údaje zoradiť zostupne, zadajte kľúčové slovo DESC. V predvolenom nastavení sa používa vzostupné triedenie.

Údaje je možné triediť podľa viacerých stĺpcov. Ak to chcete urobiť, musíte zadať názvy stĺpcov oddelené čiarkami v poradí zoradenia. Údaje sa najskôr zoradia podľa stĺpca s názvom ako prvého v sekcii ZORADIŤ PODĽA ... Potom, ak je v prvom stĺpci veľa riadkov s rovnakou hodnotou, vykoná sa dodatočné zoradenie týchto riadkov podľa druhého stĺpca (v rámci skupiny s rovnakou hodnotou v prvom stĺpci) atď.

Uveďme príklad triedenia podľa dvoch stĺpcov (snímka 28).

oddiel UNION

oddiel UNION slúži na spojenie výsledkov výberu vrátených dvomi alebo viacerými dopytmi.

Zvážte syntax sekcieÚNIE ( snímka 29).

Ak chcete použiť operáciu spojenia na výsledky dotazu, musia spĺňať tieto požiadavky:

dopyty musia vracať rovnakú množinu stĺpcov (a je potrebné zabezpečiť rovnaké poradie stĺpcov v každom z dopytov);

typy údajov zodpovedajúcich stĺpcov druhého a nasledujúcich dotazov musia podporovať implicitnú konverziu alebo musia zodpovedať typu údajov stĺpcov prvého dotazu;

žiadny z výsledkov nemožno zoradiť pomocou klauzuly ORDER BY (celkový výsledok však možno zoradiť tak, ako je uvedené nižšie)

Určenie kľúčového slova VŠETKY pokyn zahrnúť do výsledku duplicitné riadky. V predvolenom nastavení nie sú duplicitné riadky zahrnuté do výsledku.

Ukážme si aplikáciu sekcie UNION ... Zoberme si tabuľky „Personálne_Zloženie“ a „Študenti“ a pokúste sa zostaviť napríklad všeobecný zoznam študentov aj učiteľov, ktorých telefónne číslo začína číslom 120. Výsledný zoznam si zoraďme abecedne pridaním vety ZORADIŤ PODĽA ( snímka 29).

Keď spájate tabuľky, stĺpce vo výslednej množine údajov sú vždy pomenované rovnako ako v prvom dotaze na spojenie.

Takže sme sa zoznámili s typmi údajov, teraz vylepšíme tabuľky pre naše fórum. Poďme si ich najskôr rozobrať. A začnime tabuľkou používateľov. Máme v ňom 4 stĺpce:

Id_user - celočíselné hodnoty, teda typ bude int, obmedzme to na 10 znakov - int (10).
name je hodnota reťazca varchar, obmedzme ho na 20 znakov - varchar (20).
email je hodnota reťazca varchar, obmedzme ho na 50 znakov – varchar (50).
heslo je hodnota reťazca varchar, obmedzme ho na 15 znakov - varchar (15).

Všetky hodnoty polí sú povinné, takže musíte pridať typ NOT NULL.

Id_user int (10) NOT NULL
názov varchar (20) NOT NULL
email varchar (50) NOT NULL

Prvý stĺpec, ako si pamätáte z konceptuálneho modelu našej databázy, je primárny kľúč (t. j. jeho hodnoty sú jedinečné a jednoznačne identifikujú záznam). Jedinečnosť je možné sledovať na vlastnú päsť, ale nie racionálne. Na tento účel má SQL špeciálny atribút - AUTOMATICKÝ PRÍRASTOK, ktorý pri vstupe do tabuľky na doplnenie údajov vypočíta maximálnu hodnotu tohto stĺpca, výslednú hodnotu zvýši o 1 a zapíše ju do stĺpca. V tomto stĺpci sa teda automaticky generuje jedinečné číslo, a preto je typ NOT NULL nadbytočný. Takže priraďme atribút stĺpcu s primárnym kľúčom:


názov varchar (20) NOT NULL
email varchar (50) NOT NULL
heslo varchar (15) NOT NULL

Teraz musíte zadať, že pole id_user je primárny kľúč. SQL na to používa kľúčové slovo PRIMÁRNY KĽÚČ (), názov poľa kľúča je uvedený v zátvorkách. Urobme zmeny:

Id_user int (10) AUTO_INCREMENT
názov varchar (20) NOT NULL
email varchar (50) NOT NULL
heslo varchar (15) NOT NULL
PRIMÁRNY KĽÚČ (id_user)

Tabuľka je teda hotová a jej finálna verzia vyzerá takto:

Vytvorte používateľov tabuľky (
id_user int (10) AUTO_INCREMENT,
meno varchar (20) NOT NULL,
email varchar (50) NOT NULL,
heslo varchar (15) NOT NULL,
PRIMÁRNY KĽÚČ (id_user)
);

Teraz sa pozrime na druhú tabuľku, témy. Ak argumentujeme podobným spôsobom, máme nasledujúce polia:



id_author int (10) NOT NULL
PRIMÁRNY KĽÚČ (id_topic)

Ale v našom databázovom modeli je pole id_author cudzí kľúč, t.j. môže mať iba hodnoty, ktoré sú v poli id_user tabuľky používateľov. Na označenie tohto v SQL existuje kľúčové slovo CUDZÍ KĽÚČ () ktorý má nasledujúcu syntax:

CUDZÍ KĽÚČ (názov_stĺpca_ktorý_je_externý_kľúč) REFERENCIE názov_nadradenej_tabuľky (názov_nadradeného_stĺpca);

Označme, že id_author je cudzí kľúč:

Id_topic int (10) AUTO_INCREMENT
topic_name varchar (100) NOT NULL
id_author int (10) NOT NULL
PRIMÁRNY KĽÚČ (id_topic)
CUDZÍ KĽÚČ (id_author) REFERENCIE používatelia (id_user)

Tabuľka je pripravená a jej konečná verzia vyzerá takto:

Vytvorte témy tabuľky (
id_topic int (10) AUTO_INCREMENT,
topic_name varchar (100) NOT NULL,

PRIMÁRNY KĽÚČ (id_topic),
CUDZÍ KĽÚČ (id_author) REFERENCIE používatelia (id_user)
);

Posledná zostávajúca tabuľka sú príspevky. Všetko je tu rovnaké, iba dva cudzie kľúče:

Vytvorte príspevky v tabuľke (
id_post int (10) AUTO_INCREMENT,
text správy NOT NULL,
id_author int (10) NOT NULL,
id_topic int (10) NOT NULL,
PRIMÁRNY KĽÚČ (id_post),
CUDZÍ KĽÚČ (id_author) REFERENCIE používatelia (id_user),
CUDZÍ KĽÚČ (id_topic) REFERENCIE témy (id_topic)
);

Upozorňujeme, že tabuľka môže mať niekoľko cudzích kľúčov a v MySQL môže byť iba jeden primárny kľúč. V prvej lekcii sme vymazali našu databázu fóra, je čas ju znova vytvoriť.

Spustíme server MySQL (Štart - Programy - MySQL - MySQL Server 5.1 - Klient príkazového riadka MySQL), zadáme heslo, vytvoríme databázu fóra (vytvor databázové fórum;), vyberieme ho na použitie (použiť fórum;) a vytvoríme naše tri tabuľky:

Upozorňujeme, že jeden príkaz je možné napísať do niekoľkých riadkov pomocou klávesu Enter (MySQL automaticky nahradí znak nového riadku ->) a až po oddeľovači (bodkočiarke) stlačenie klávesu Enter vykoná dotaz.

Pamätajte, že ak ste niečo urobili zle, tabuľku alebo celú databázu môžete kedykoľvek zrušiť pomocou príkazu DROP. Oprava niečoho na príkazovom riadku je mimoriadne nepohodlné, takže niekedy (najmä v počiatočnej fáze) je jednoduchšie napísať dotazy v niektorom editore, napríklad v programe Poznámkový blok, a potom ich skopírovať a vložiť do čierneho okna.

Takže tabuľky boli vytvorené, aby sme sa o tom uistili, pripomeňme si príkaz zobraziť tabuľky:

Nakoniec sa pozrime na štruktúru našej záverečnej tabuľky príspevkov:

Teraz sa vyjasnia hodnoty všetkých polí štruktúry, okrem poľa DEFAULT. Toto je pole predvolenej hodnoty. Mohli sme zadať predvolenú hodnotu pre ktorýkoľvek zo stĺpcov (alebo pre všetky). Napríklad, ak by sme mali pole s názvom "Ženatý \ Ženatý" a napísali ENUM ("áno", "nie"), potom by bolo rozumné nastaviť jednu z hodnôt ako predvolenú. Syntax by bola nasledovná:

Ženatý enum ("áno", "nie") NIE JE NULL predvolená hodnota ("áno")

Tie. toto kľúčové slovo je oddelené medzerou za typom údajov a predvolená hodnota je uvedená v zátvorkách.

Ale späť k našim stolom. Teraz musíme zadať údaje do našich tabuliek. Na webstránkach väčšinou zadávate informácie do nejakých html-formulárov, potom skript v nejakom jazyku (php, java ...) tieto údaje vytiahne z formulára a vloží do databázy. Robí to pomocou SQL dotazu na zadávanie údajov do databázy. Zatiaľ nevieme, ako písať skripty v php, ale teraz sa naučíme odosielať SQL dotazy na zadávanie údajov.

Ak to chcete urobiť, použite operátor VLOŽIŤ... Môžete použiť dva druhy syntaxe. Prvá možnosť sa používa na zadávanie údajov do všetkých polí tabuľky:

INSERT INTO VALUES názov_tabuľky ("hodnota_prvého_stĺpca", "hodnota_druhého_stĺpca", ..., "hodnota_posledného_stĺpca");


Skúsme pridať do tabuľky používateľov nasledujúce hodnoty:

INSERT INTO users VALUES ("1", "sergey", " [e-mail chránený]", "1111");

Druhá možnosť sa používa na zadávanie údajov do niektorých polí tabuľky:

INSERT INTO názov_tabuľky ("názov_stĺpca", "názov_stĺpca") VALUES ("hodnota_prvého_stĺpca", "hodnota_druhého_stĺpca");


V našej tabuľke používateľov sú všetky polia povinné, ale naše prvé pole má kľúčové slovo - AUTO_INCREMENT (t. j. je vyplnené automaticky), takže tento stĺpec môžeme preskočiť:

INSERT INTO users (meno, email, heslo) VALUES ("valera", " [e-mail chránený]", "2222");

Ak by sme mali polia s typom NULL, t.j. voliteľné, mohli by sme ich tiež ignorovať. Ak sa však pokúsite nechať pole prázdne s hodnotou NOT NULL, server zobrazí chybové hlásenie a požiadavku nevykoná. Okrem toho pri zadávaní údajov server kontroluje vzťahy medzi tabuľkami. Preto nemôžete zadať hodnotu do poľa cudzieho kľúča, ktorá nie je v súvisiacej tabuľke. Presvedčíte sa o tom zadaním údajov do zvyšných dvoch tabuliek.

Najprv však doplníme informácie o niekoľkých ďalších používateľoch. Ak chcete pridať niekoľko riadkov naraz, stačí uviesť zátvorky s hodnotami oddelenými čiarkami:

Teraz zadáme údaje do druhej tabuľky - témy (témy). Všetko je rovnaké, ale nezabudnite, že hodnoty v poli id_author musia byť prítomné v tabuľke používateľov:

Teraz skúsme pridať ďalšiu tému, ale s id_author, ktorý nie je v tabuľke užívateľov (keďže sme do tabuľky užívateľov pridali iba 5 užívateľov, id = 6 neexistuje):

Server zobrazí chybu a povie, že nemôže zadať takýto riadok, pretože pole cudzieho kľúča obsahuje hodnotu, ktorá sa nenachádza v tabuľke prepojených používateľov.

Teraz pridajme do tabuľky príspevkov pár riadkov, pričom nezabúdajme, že v nej máme 2 cudzie kľúče, t.j. Identifikátory id_author a id_topic, ktoré pridáme, sa musia nachádzať v priradených tabuľkách:

Máme teda 3 tabuľky, ktoré obsahujú údaje. Vynára sa otázka – ako vidieť, aké údaje sú v tabuľkách uložené. To je to, čo budeme robiť v nasledujúcej lekcii.

Úvod

Pokračujme v štúdiu SQL dotazov do databázy. Dnes je jedným z najjednoduchších SQL dotazov SQL dotaz na vytvorenie databázovej tabuľky. Dotaz je založený na príkaze CREATE TABLE.

Vytvorenie databázovej tabuľky

Existuje príkaz sql, ktorý sa používa na vytváranie databázových tabuliek. Príkaz: CREATE TABLE.

Pamätajte, že tabuľka relačnej databázy musí mať jedinečné:

  • Jedinečný názov;
  • Stĺpce (atribúty);
  • Primárny kľúč.
  • Struny (nahrávky);

Na začiatok si vytvoríme iba tabuľku a nezapĺňame ju údajmi.

Priateľským spôsobom sa pri vytváraní nastaví všeobecný vzhľad tabuľky s jedinečnými názvami riadkov a stĺpcov. Vytvoríme si napríklad jednoduchú databázovú tabuľku a zaobídeme sa bez konceptuálneho modelu.

V tomto článku vytvoríme databázovú tabuľku so zákazníkmi. Ako príklad sa berú kupujúci.

Ako sa identifikuje kupujúci? Rozhodli sme sa, že každý zákazník je identifikovaný podľa nasledujúcich údajov:

  • Priezvisko;
  • Prihlásiť sa;
  • heslo;
  • e-mail;
  • telefón.

Pamätajte, že stôl musí byť prestretý.

Na vytvorenie databázovej tabuľky použite príkaz sql CREATE TABLE.

Syntax operátora je nasledovná:

VYTVORIŤ TABUĽKU názov tabuľky (stĺpec 1, typ stĺpca (medzera) parameter stĺpca (medzera), stĺpec 2, typ stĺpca (medzera) parameter stĺpca (medzera), stĺpec 3, typ stĺpca (medzera) parameter stĺpca (medzera) atď. )

V našom prípade je názov tabuľky klienti. Dáme označenia stĺpcov údajov o zákazníkoch:

  • Meno: nech je to client_customer;
  • Priezvisko: client_subclient;
  • Prihlásenie: client_login;
  • Heslo: client_password;
  • e-mail: client_mail;
  • Telefón: client_telefon.

Rozmýšľame, aký dátový typ bude v týchto stĺpcoch uložený, a zvolíme dátové typy CHAR (dĺžka poľa je konštantná) alebo VARCHAR (dĺžka poľa je variabilná). V našom prípade je vhodný dátový typ VARCHAR.

Špeciálnu pozornosť venujeme primárnemu kľúču. Ako primárny kľúč urobíme ID zákazníka. V parametroch kľúča nastavíme, že ide o primárny kľúč, nemôže byť nula a pri ďalšom zázname sa zvýši o jednotku. Posledná vlastnosť sa nazýva autoincrement. Pozeráme sa na pomôcku v odkaze (odkaz vyššie) a získame stĺpec s primárnym kľúčom:

Client_id celé číslo nie je null auto_increment primárny kľúč

Napísanie SQL dotazu na vytvorenie databázovej tabuľky

Zosumarizujeme všetky počiatočné údaje a získame nasledujúci SQL dotaz:

/ * Tabuľka klientov * / vytvorenie tabuľky klientov (/ * client_id bude primárny kľúč (nevyhnutne celé číslo) s automatickým prírastkom (+1), ktorý nikdy nebude nula * / client_id celé číslo nie null primárny kľúč auto_increment, client_customer varchar (13 ), / * meno * / client_surclient varchar (22), / * priezvisko * / client_login varchar (21), / * login * / client_passwd varchar (7), / * heslo * / client_email varchar (44) / * email * / client_telefon varchar (26) / * phone * /);

Poznámka: Vytvorte dotaz SQL na vytvorenie tabuľky v textovom editore, ako je napríklad Notepad ++. Dĺžku poľa obmedzujeme v zátvorkách, môže to byť od 1 do 255.

Výsledky článku

  • V tomto článku sme videli prvý SQL príkaz CREATE TABLE.
  • Vytvoril SQL dotaz na vytvorenie jednej (prvej) databázovej tabuľky s primárnym kľúčom.

Posledná aktualizácia: 09.07.2017

Príkaz CREATE TABLE sa používa na vytváranie tabuliek. S týmto príkazom možno použiť množstvo operátorov, ktoré definujú stĺpce tabuľky a ich atribúty. A okrem toho môžete použiť množstvo operátorov, ktoré definujú vlastnosti tabuľky ako celku. Jedna databáza môže obsahovať až 2 miliardy tabuliek.

Všeobecná syntax na vytvorenie tabuľky je nasledovná:

CREATE TABLE názov_tabuľky (názov_stĺpca1 údajový typ atribúty stĺpca1, názov_stĺpca2 typ údajov stĺpec_atribúty2, .................................. .. .......... názov_stĺpcaN typ údajov atribúty_stĺpcaN, atribúty_tabuľky)

Za príkazom CREATE TABLE nasleduje názov tabuľky, ktorá sa má vytvoriť. Názov tabuľky funguje ako jej identifikátor v databáze, preto musí byť jedinečný. Názov nesmie byť dlhší ako 128 znakov. Názov sa môže skladať z alfanumerických znakov, ako aj zo znakov $ a podčiarknutia. Okrem toho musí byť prvým znakom písmeno alebo podčiarkovník.

Názov objektu nemôže obsahovať medzery a nemôže predstavovať jedno z kľúčových slov Transact-SQL. Ak identifikátor obsahuje medzery, mal by byť vložený do úvodzoviek. Ak je potrebné použiť kľúčové slová ako názov, potom sú tieto slová umiestnené v hranatých zátvorkách.

Príklady platných identifikátorov:

Používateľské značky 345 USD users_accounts "používateľské účty"

Za názvom tabuľky sú v zátvorkách uvedené parametre všetkých stĺpcov a úplne na konci atribúty, ktoré platia pre celú tabuľku. Atribúty stĺpca a tabuľky sú voliteľné a možno ich vynechať.

Vo svojej najjednoduchšej forme musí príkaz CREATE TABLE obsahovať aspoň názov tabuľky, názvy stĺpcov a typy.

Tabuľka môže obsahovať 1 až 1024 stĺpcov. Každý stĺpec musí mať v rámci aktuálnej tabuľky jedinečný názov a musí mať priradený typ údajov.

Napríklad definícia najjednoduchšej tabuľky Zákazníci:

VYTVORIŤ TABUĽKU Zákazníci (Id INT, Vek INT, Meno NVARCHAR (20), Priezvisko NVARCHAR (20), E-mail VARCHAR (30), Telefón VARCHAR (20))

V tomto prípade je v tabuľke Zákazníci definovaných šesť stĺpcov: ID, Meno, Priezvisko, Vek, Email, Telefón. Prvé dva stĺpce predstavujú ID zákazníka a jeho vek a sú typu INT, to znamená, že budú uchovávať číselné hodnoty. Ďalšie dva stĺpce predstavujú meno a priezvisko zákazníka a sú typu NVARCHAR (20), to znamená, že predstavujú reťazec UNICODE s maximálne 20 znakmi. Posledné dva stĺpce Email a Telefón predstavujú emailovú adresu a telefónne číslo zákazníka a sú typu VARCHAR (30/20) - ukladajú aj reťazec, nie však UNICODE.

Vytvorenie tabuľky v SQL Management Studio

Vytvorme jednoduchú tabuľku na serveri. Ak to chcete urobiť, otvorte SQL Server Management Studio a kliknite pravým tlačidlom myši na názov servera. V kontextovej ponuke, ktorá sa zobrazí, vyberte položku Nový dotaz.

Tabuľka je vytvorená v rámci aktuálnej databázy. Ak spustíme okno editora SQL ako je uvedené vyššie - pod názvom servera, potom sa predvolená databáza nenainštaluje. A na jeho inštaláciu musíte použiť príkaz USE, po ktorom je uvedený názov databázy. Preto do poľa editora príkazov SQL zadávame nasledujúce výrazy:

USE usersdb; VYTVORIŤ TABUĽKU Zákazníci (Id INT, Vek INT, Meno NVARCHAR (20), Priezvisko NVARCHAR (20), E-mail VARCHAR (30), Telefón VARCHAR (20));

To znamená, že tabuľka Zákazníci, o ktorej sme hovorili vyššie, sa pridá do databázy.

Editor môžete otvoriť aj z databázy tak, že naň kliknete pravým tlačidlom myši a vyberiete položku Nový dotaz:

V tomto prípade bude databáza, z ktorej bol editor otvorený, považovaná za aktuálnu a nebude potrebné ju dodatočne inštalovať pomocou príkazu USE.

Zhadzovanie stolov

Na zrušenie tabuliek použite príkaz DROP TABLE, ktorý má nasledujúcu syntax:

DROP TABLE table1 [, table2, ...]

Napríklad zrušenie tabuľky Zákazníci:

DROP TABLE Zákazníci

Premenovanie tabuľky

Systémová uložená procedúra "sp_rename" sa používa na premenovanie tabuliek. Napríklad premenovanie tabuľky Users na UserAccounts v databáze usersdb:

USE usersdb; EXEC sp_rename "Používatelia", "Používateľské účty";