SQL dotaz pro přidání a odstranění záznamů. SQL dotazy pro vkládání, úpravu a mazání dat Jednoduché UPDATE dotazy do databáze MySQL
Obecná syntaxe:
a) vložení jednoho nového řádku do tabulky:
VLOŽIT<таблица>[(sloupce)]
VALUES (hodnoty)
b) Vložení jednoho nebo více řádků do tabulky převzaté ze zdroje uvedeného v dílčím dotazu:
VLOŽIT<таблица>[(sloupce)]
pravidla:
Počet prvků v sekci "Sloupce" musí odpovídat počtu prvků v sekci "Hodnoty"; datové typy se musí shodovat nebo umožňovat implicitní konverzi;
V případě, že není k dispozici žádná sekce „Sloupce“, musí sekce „Hodnoty“ obsahovat stejný počet hodnot jako celkový počet sloupců v upravované tabulce, navíc hodnoty musí být uvedeny ve stejném pořadí, ve kterém jsou deklarovány sloupce tabulky; Proto se doporučuje vždy explicitně specifikovat seznam sloupců, do kterých budou přidány nové hodnoty;
Při použití syntaxe (b) může být poddotaz SELECT adresován buď do stejné tabulky, nebo do jiné tabulky v databázi nebo do jiné databáze na serveru;
Pokud je pro určitý sloupec tabulky zadána výchozí hodnota a chcete v přidaném záznamu použít přesně tuto hodnotu, musíte v části „Hodnoty“ pro tento sloupec napsat klíčové slovo DEFAULT.
Příklady :
INSERT INTO detail (detail_name)
HODNOTY
INSERT INTO supply (supplier_id, supply_quantity, supply_cost,
datum_dodávky, id_podrobnosti)
VALUES (4, 177, 453,45, "09/25/2009", 1)
INSERT dodavatele (supplier_type, Supplier_name)
HODNOTY (VÝCHOZÍ, "Smirnov S.S."")
Úprava stávajících záznamů (aktualizace)
Obecná syntaxe:
AKTUALIZACE<таблица>
SOUBOR<столбец> = <значение> [, <столбец> = <значение>]
Příklady :
Hmotnost sady = 210
SET material_name = "Cín"
WHERE material_id = 2
SET department_id = NULL,
delivery_date = delivery_date + 1 /*zvýšení termínu dodání o den
WHERE delivery_id = 1 NEBO department_id > 3
SET detail_name = detail_name + "!!!"
WHERE detail_name LIKE "_а%" A váha MEZI 6 A 10
Odebrání záznamů z tabulky (smazání)
Obecná syntaxe:
VYMAZAT<таблица>
<условие>
Příklady :
WHERE detail_id IN (2, 5, 8)
KDE JE váha NULL
Cvičení:
Naplňte databázi pomocí ManagementStudio. K tomu použijte příkaz „Otevřít tabulku“ z kontextového menu tabulky v „Prohlížeči objektů“ (obr. 4.1).
Vyhledávací dotazy
Obecná syntaxe výběrového dotazu
VYBRAT<список столбцов>
Z<таблица(-ы) источник>
Klauzule SELECT a FROM musí být přítomny v každém dotazu; jiné sekce mohou chybět nebo mohou být částečně přítomny.
Příklady implementace dotazů
Nejjednodušší dotazy:
1. Vyberte název a hmotnost dílů
Rýže. 5.1. Výsledky dotazu č. 1
2. Vyberte všechny informace z tabulky materiálů
Rýže. 5.2. Výsledky dotazu č. 2
Jedinečnost VÝRAZNÁ
3. Vyberte jedinečné kódy dodavatele z tabulky dodávek
Rýže. 5.3. Výsledky dotazu č. 3
omezení KDE
4. Vyberte množství a dodací termíny dílu s kódem 1
Rýže. 5.4. Výsledky dotazu č. 4
5. Vyberte jména dodavatelů s kódy 1, 4 a 6
Rýže. 5.5. Výsledky dotazu č. 5
6. Vyberte všechny informace o dodávkách uskutečněných před 1. říjnem 2009
Rýže. 5.6. Výsledky dotazu č. 6
7. Vyberte všechny informace o dílech, které nezačínají písmenem „B“ (v žádném případě) a jejichž hmotnost je nižší než 50
Rýže. 5.7. Výsledky dotazu č. 7
8. Vyberte název a kód materiálu pro díly o hmotnosti od 5 do 10 g nebo s písmenem „n“ na třetí pozici v názvu
Rýže. 5.8. Výsledky dotazu č. 8
9. Vyberte jména dodavatelů delší než 15 znaků
Rýže. 5.9. Výsledky dotazu č. 9
10. Vyberte měsíce a roky dodávek dílů
Rýže. 5.10. Výsledky dotazu č. 10
Řazení OBJEDNAT PODLE
11. Seřaďte dodávky nejprve podle kódu dodavatele a poté podle data dodání
Rýže. 5.11. Výsledky dotazu č. 11
12. Vyberte jména dodavatelů s kódy 4, 6, 8, 9, seřazená abecedně v opačném pořadí
Rýže. 5.12. Výsledky dotazu č. 12
Agregace a seskupení GROUP BY
Rýže. 5.13. Výsledky dotazu č. 13
14. Určete průměrnou hmotnost dílů vyrobených z materiálu s kódem 2
Rýže. 5.14. Výsledky dotazu č. 2
15. Z dodávek uskutečněných do 1. října 2009 vyberte největší a nejmenší dodávku
Rýže. 5.15. Výsledky dotazu č. 15
16. U dodavatelů s kódy v rozsahu 5 - 8 vypočítejte celkový počet jimi dodaných dílů
Rýže. 5.16. Výsledky dotazu č. 16
Rýže. 5.17. Výsledky dotazu č. 17
Omezení skupin HAVING
18. Vyberte materiály, u kterých celková hmotnost dílů z nich vyrobených není větší než 20
Rýže. 5.18. Výsledky dotazu č. 18
19. Z dodávek v roce 2008 vyberte díly, které byly dodány více než jednou
Rýže. 5.19. Výsledky dotazu č. 19
Převod typuOBSAZENÍ
20. Získejte informace o termínech dodání v textové podobě
Rýže. 5.20. Výsledky dotazu č. 20
21. Získejte informace z tabulky dílů ve formě řádků „Díl X má váhu Y“
Rýže. 5.21. Výsledky dotazu č. 21
AlternativyPOUZDRO
22. Díly rozdělte na lehké (o hmotnosti do 20), střední (mezi 20 a 50) a těžké
Rýže. 5.22. Výsledky dotazu č. 22
Zpracování hodnot NULL
23. Získejte informace o dílech a jejich hmotnostech, a pokud není hmotnost dílu uvedena, napište -100 místo NULL
Rýže. 5.23. Výsledky dotazu č. 23
Existenční funkce EXISTUJE
24. Vyberte název a kód materiálu pouze těch dílů, které byly kdy dodány
Rýže. 5.24. Výsledky dotazu č. 24
25. Vyberte názvy těch materiálů, ze kterých není vyroben ani jeden díl
Rýže. 5.25. Výsledky dotazu č. 25
Dílčí dotazy
26. Získejte informace o posledním (podle data) doručení
Rýže. 5.26. Výsledky dotazu č. 26
27. Přijímejte všechny dodávky dílů vyrobených z kódu materiálu 2
Rýže. 5.27. Výsledky dotazu č. 27
28. U každého dodavatele získejte informace o úplně prvním (podle data) jeho dodání
Rýže. 5.28. Výsledky dotazu č. 28
29. U každého dodavatele získejte jeho jméno a datum poslední objednávky
Rýže. 5.29. Výsledky dotazu č. 29
Spojování stolů pomocí JOIN
30. Získejte tabulku formuláře: název dílu, název materiálu, ze kterého je díl vyroben
Rýže. 5.30. Výsledky dotazu č. 30
31. Získejte tabulku jako: dodavatel, název dílu, množství a datum dodání dílů, které mají stanovenou hmotnost
Rýže. 5.31. Výsledky dotazu č. 31
32. Vyberte všechny informace o těch dílech, které byly kdy dodány
Rýže. 5.32. Výsledky dotazu č. 32
Rýže. 5.33. Výsledky dotazu č. 33
34. Vyberte názvy materiálů a dílů z nich vyrobených
Rýže. 5.34. Výsledky dotazu č. 34
35. Získejte všechna data o dodavatelích, zásobách a dílech
Rýže. 5.35. Výsledky dotazu č. 35
Spojování stolů UNION
36. Získejte tabulku názvů a hmotností dílů a poslední řádek tabulky by měl obsahovat součty ve formě celkové hmotnosti všech dílů
Rýže. 5.36. Výsledky dotazu č. 36
37. Získejte tabulku dvou polí, kde první pole je název dílu, materiálu, dodavatele nebo datum dodání a druhé pole je délka řádku z prvního pole
Rýže. 5.37. Výsledky dotazu č. 37
Tento článek je věnován plnění databázových tabulek daty, to znamená, že budeme studovat SQL příkazy pro vkládání nových záznamů. Je třeba říci, že záznam do tabulky lze provést dvěma způsoby:
Metoda č. 1.
Zkusme přidat záznam o nové zemi do tabulky zemí. Syntaxe přidávání bude následující:
INSERT INTO název_tabulky (pole_1, pole_2, ...) VALUES (Hodnota_1, Hodnota_2, ...); Na základě naší struktury tabulky bude SQL dotaz vypadat takto:
INSERT INTO zemí (název země, název akronymu) VALUES ("Rusko", "RU"); Takto jsme do tabulky přidali záznam o zemi „Rusko“. Všechno by zde mělo být jasné a jednoduché, hlavní věcí je pečlivě se podívat na to, která pole uvádíte v prvních závorkách, a do druhé zapsat hodnoty ve stejném pořadí.
Metoda č. 2.
Druhá metoda je podle mého názoru o něco jednodušší, protože vidíte, co přiřadíte a ke kterému oboru. Věřte mi, že pokud má tabulka velké množství sloupců, je velmi snadné zaměnit nebo přehlédnout pořadí polí v první závorce a pořadí hodnot ve druhých závorkách. Syntaxe druhé metody je:
INSERT INTO název_tabulky SET pole_1 = Hodnota_1, pole_2 = Hodnota_2, ... ; Použijme tento příklad k přidání některých informací do tabulky. osob, protože existuje více polí a výhoda druhé metody se okamžitě projeví:
INSERT INTO person SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Nyní naše tabulka obsahuje následující údaje:
Pravděpodobně jste si všimli, že jsme nezadali hodnotu pro věk, ale ukázalo se, že je vyplněna... Vše je správně - pro toto pole jsme nastavili výchozí hodnotu 25. Nyní je tedy náš Ivan Dulin uveden v databázi s věk 25 let. Možná to není nejlepší příklad nastavení výchozí hodnoty pro pole věk, ale můžete nastavit takové vlastnosti polí, jako je například uživatelské hodnocení webu nebo počet zobrazení stránky. Zpočátku jsou nastaveny na 0.
Měli byste také věnovat pozornost formátu data v MySQL: YYYY-MM-DD. Pokud jej nedodržíte, vaše příspěvky se do tabulky jednoduše nezapíší.
Jak vidíte, pole povolání je vyplněno jako NULL, toto je prázdná hodnota. Pro tento obor.
Jako doplněk zvažte následující příkaz:
NAČTE DATA LOKÁLNÍ INFILE "D:\zapros.txt" DO TABULKY osob; Co myslíš, že jsme teď udělali?! A udělali jsme následující: přidali data do tabulky osob ze souboru request.txt, který se nachází na jednotce D. Informace v souboru by měly mít následující strukturu:
Datová struktura souboru musí splňovat následující požadavky:
- Každý nový záznam musí být popsán na novém řádku
- Data musí být zadána pro absolutně všechna pole. Jak vidíte, do pole id jsme zadali hodnotu NULL, protože se automaticky zvyšuje, takže požadovanou hodnotu zadá samotné MySQL.
- Pole jsou od sebe oddělena znakem tabulátoru (klávesa Tab).
- Zadané informace se musí shodovat s datovými typy konkrétního pole. Tedy například datum ve formátu RRRR-MM-DD, celé číslo pro celé číslo atd.
Profesní stůl:
Tabulka osob:
jméno | příjmení | stáří | datum registrace | země | profese |
Leonid | Bilak | 45 | 2012-06-20 | 2 | 1 |
Yuri | Nazarov | 22 | 2012-06-21 | 3 | 1 |
Alla | Savenko | 25 | 2012-06-22 | 2 | 3 |
Irina | Nikolaeva | 31 | 2012-06-22 | 1 | 3 |
Tyto položky nezapomeňte přidat, protože je budeme potřebovat ke studiu příkazu SELECT (výběr informací z databáze), na který se podíváme v příštím (čtvrtém) článku o studiu SQL dotazů.
Příkazy SQL INSERT INTO a INSERT SELECT se používají k vložení nových řádků do tabulky. Pokyny lze použít dvěma způsoby:
- Pouze hodnoty: První metoda zahrnuje zadání pouze datových hodnot, které mají být vloženy bez názvů sloupců.
Syntax:
INSERT INTO název_tabulky VALUES (hodnota1, hodnota2, hodnota3,...); název_tabulky: název tabulky. hodnota1, hodnota2,.. : hodnoty prvního sloupce, druhého sloupce,... pro nový záznam
- Názvy a hodnoty sloupců: Druhá metoda určuje názvy sloupců a hodnoty řádků, které se mají vložit:
Syntax:
INSERT INTO název_tabulky (sloupec1, sloupec2, sloupec3,..) VALUES (hodnota1, hodnota2, hodnota3,...); název_tabulky: název tabulky. sloupec1: název prvního sloupce, druhý sloupec... hodnota1, hodnota2,.. : hodnoty prvního sloupce, druhého sloupce,... pro nový záznam
požadavky:
Metoda 1 ( vkládání pouze hodnot):
INSERT INTO Student VALUES ("5","HARSH","WEST BENGAL","8759770477","19");
Výsledek :
Po použití INSERT INTO SELECT bude tabulka Student nyní vypadat takto:
ROLL_NO | NÁZEV | ADRESA | TELEFON | Stáří |
1 | RAM | Dillí | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Dillí | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
5 | DRSNÝ | ZÁPADNÍ BENGÁLSKO | 8759770477 | 19 |
Metoda 2 ( vkládání hodnot pouze do určených sloupců):
INSERT INTO Student (ROLL_NO, NAME, Age) VALUES ("5","PRATIK","19");
Výsledek :
Tabulka Student nyní bude vypadat takto:
ROLL_NO | NÁZEV | ADRESA | TELEFON | Stáří |
1 | RAM | Dillí | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Dillí | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
5 | PRATIK | nula | nula | 19 |
Všimněte si, že sloupce, pro které nejsou zadány žádné hodnoty, jsou nastaveny na hodnotu null .
Použití SELECT v příkazu INSERT INTO
Pomocí příkazu INSERT SELECT MySQL můžete zkopírovat řádky z jedné tabulky a vložit je do jiné.
Použití tohoto příkazu je podobné jako použití INSERT INTO. Rozdíl je v tom, že příkaz SELECT slouží k výběru dat z jiné tabulky. Níže jsou uvedeny různé způsoby použití INSERT INTO SELECT:
- Vložte všechny sloupce tabulky: Můžete zkopírovat všechna data v tabulce a vložit je do jiné tabulky.
Syntax:
INSERT INTO první_tabulka SELECT * FROM druhá_tabulka; first_table: název první tabulky. druhá_tabulka: název druhé tabulky.
Pro zkopírování dat z jedné tabulky jsme použili příkaz SELECT a pro vložení do jiné příkaz INSERT INTO.
- Vkládání jednotlivých sloupců tabulky. Můžete zkopírovat pouze ty sloupce tabulky, které chcete vložit do jiné tabulky.
Syntax:
INSERT INTO první_tabulka(názvy_sloupců1) SELECT názvy_sloupců2 FROM druhá_tabulka; first_table: název první tabulky. druhá_tabulka: název druhé tabulky. názvy_sloupců1: názvy sloupců oddělené čárkou(,) pro tabulku 1. názvy_sloupců2: názvy sloupců oddělené čárkou(,) pro tabulku 2.
Pro zkopírování dat pouze z vybraných sloupců druhé tabulky jsme použili příkaz SELECT a pro vložení do první tabulky příkaz MySQL INSERT INTO SELECT.
- Kopírování konkrétních řádků z tabulky. Můžete zkopírovat konkrétní řádky z tabulky a později je vložit do jiné tabulky pomocí klauzule WHERE s klauzulí SELECT. V tomto případě musíte použít příslušnou podmínku v WHERE.
Syntax:
Tabulka 2: LateralStudent
ROLL_NO | NÁZEV | ADRESA | TELEFON | Stáří |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | NĚKTERÝ | ROHTAK | 9687543210 | 20 |
požadavky:
Metoda 1 ( vložte všechny řádky a sloupce):
INSERT INTO Student SELECT * FROM LateralStudent;
Výsledek :
Tento dotaz vloží všechna data z tabulky LateralStudent do tabulky Student. Po použití SQL INSERT INTO SELECT bude tabulka Student vypadat takto:
ROLL_NO | NÁZEV | ADRESA | TELEFON | Stáří |
1 | RAM | Dillí | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Dillí | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | NĚKTERÝ | ROHTAK | 9687543210 | 20 |
Metoda 2 ( vkládání jednotlivých sloupců):
INSERT INTO Student(ROLL_NO,NAME,Věk) SELECT ROLL_NO, NAME, Age FROM LateralStudent;
Výsledek :
Tento dotaz vloží data ze sloupců ROLL_NO, NAME a Age tabulky LateralStudent do tabulky Student. Zbývající sloupce tabulky Student budou nastaveny na hodnotu null . Po použití SQL INSERT SELECT bude tabulka vypadat takto:
ROLL_NO | NÁZEV | ADRESA | TELEFON | Stáří |
1 | RAM | Dillí | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Dillí | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | Nula | nula | 18 |
8 | NIRAJ | Nula | nula | 19 |
9 | NĚKTERÝ | Nula | nula | 20 |
- Výběr konkrétních řádků k vložení:
Výsledek :
Tento dotaz vybere pouze první řádek z tabulky LateralStudent pro vložení do tabulky Student. Po použití INSERT SELECT bude tabulka vypadat takto:
ROLL_NO | NÁZEV | ADRESA | TELEFON | Stáří |
1 | RAM | Dillí | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Dillí | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
Tato publikace je překladem článku „SQL INSERT INTO Statement“, připraveného přátelským projektovým týmem
V předchozích částech jsme se podívali na práci při získávání dat z předem vytvořených tabulek. Nyní je čas zjistit, jak můžeme vytvářet/mazat tabulky, přidávat nové záznamy a mazat staré. Pro tyto účely v SQL Existují operátoři jako: VYTVOŘIT- vytvoří stůl, ZMĚNIT- mění strukturu tabulky, POKLES- smaže tabulku nebo pole, VLOŽIT- přidá data do tabulky. Začněme se seznamovat s touto skupinou operátorů od operátora VLOŽIT.
1. Přidání celých řádků
Jak název napovídá, operátor VLOŽIT slouží k vkládání (připojování) řádků do databázové tabulky. Přidání lze provést několika způsoby:
- - přidejte jeden celý řádek
- - přidat část řádku
- - přidat výsledky dotazu.
Abychom do tabulky přidali nový řádek, musíme zadat název tabulky, vypsat názvy sloupců a zadat hodnotu pro každý sloupec pomocí konstrukce VLOŽ DO název_tabulky (pole1, pole2 ...) HODNOTY (hodnota1, hodnota2...). Podívejme se na příklad.
INSERT INTO Sellers (ID, Address, City, Seller_name, Country) VALUES("6", "1st Street", "Los Angeles", "Harry Monroe", "USA")
Můžete také změnit pořadí názvů sloupců, ale zároveň musíte změnit pořadí hodnot v parametru HODNOTY.
2. Přidání části řádků
V předchozím příkladu při použití operátoru VLOŽIT explicitně jsme označili názvy sloupců tabulky. Pomocí této syntaxe můžeme přeskočit některé sloupce. To znamená, že zadáte hodnoty pro některé sloupce, ale neposkytnete je pro ostatní. Například:
VLOŽTE DO HODNOT Prodejci (ID, Město, Jméno prodejce).("6", "Los Angeles", "Harry Monroe")
V tomto příkladu jsme nezadali hodnotu pro dva sloupce Adresa A Země. Některé sloupce můžete z výpisu vyloučit VLOŽ DO, pokud to umožňuje definici tabulky. V tomto případě musí být splněna jedna z podmínek: tento sloupec je definován jako platný NULA(absence jakékoli hodnoty) nebo zadaná výchozí hodnota v definici tabulky. To znamená, že pokud není zadána žádná hodnota, použije se výchozí hodnota. Pokud v tabulce chybí sloupec, který neumožňuje zobrazení hodnot v řádcích NULA a nemá definovanou výchozí hodnotu, DBMS vygeneruje chybovou zprávu a řádek nebude přidán.
3. Přidání vybraných dat
V předchozím příkladu jsme vložili data do tabulek ručním zadáním do dotazu. Nicméně provozovatel VLOŽ DO nám umožňuje automatizovat tento proces, pokud chceme vložit data z jiné tabulky. Pro tento účel v SQL existuje taková konstrukce jako VLOŽIT DO... VYBRAT.... Tento design umožňuje současně vybírat data z jedné tabulky a vkládat je do jiné. Předpokládejme, že máme další stůl Prodejci_EU se seznamem prodejců našeho zboží v Evropě a potřebujeme je doplnit do obecné tabulky Prodejci. Struktura těchto tabulek je stejná (stejný počet sloupců a stejné názvy), ale odlišná data. K tomu můžeme napsat následující dotaz:
INSERT INTO Sellers (ID, adresa, město, prodejce_jméno, země) VYBERTEID, adresa, město, jméno prodejce, země FROM Sellers_EU
Musíte dávat pozor, aby se hodnoty interních klíčů neopakovaly (pole ID), jinak dojde k chybě. Operátor VYBRAT může také obsahovat návrhy KDE k filtrování dat. Je třeba také poznamenat, že DBMS nevěnuje pozornost názvům sloupců obsažených ve výpisu VYBRAT, důležité je pro ni pouze pořadí, ve kterém jsou uspořádány. Proto data v prvním zadaném sloupci, který byl vybrán kvůli VYBRAT, bude v každém případě vyplněn v prvním sloupci tabulky Prodejci, uvedené za provozovatelem VLOŽ DO bez ohledu na název pole.
4. Kopírování dat z jedné tabulky do druhé
Často je při práci s databázemi potřeba vytvořit kopie libovolných tabulek za účelem zálohování nebo úpravy. Chcete-li vytvořit úplnou kopii tabulky, SQL poskytuje samostatný příkaz VYBERTE DO. Potřebujeme například vytvořit kopii tabulky Prodejci, budete muset napsat žádost takto:
SELECT * INTO Sellers_new FROM Sellers
Na rozdíl od předchozího designu VLOŽIT DO... VYBRAT... Když jsou data přidána do existující tabulky, návrh zkopíruje data do nové tabulky. Můžete také říci, že první konstrukce importuje data a druhá exportuje. Při použití designu VYBERTE ... DO ... Z ... Je třeba zvážit následující:
- - v operátoru můžete použít libovolné věty VYBRAT, jako SKUPINA VYTVOŘENÁ A MÍT
- - můžete použít spojení k přidání dat z více tabulek
- - data lze přidat pouze do jedné tabulky, bez ohledu na to, z kolika tabulek byla převzata.
Tento článek je věnován plnění databázových tabulek daty, to znamená, že budeme studovat SQL příkazy pro vkládání nových záznamů. Je třeba říci, že záznam do tabulky lze provést dvěma způsoby:
Metoda č. 1.
Zkusme přidat záznam o nové zemi do tabulky zemí. Syntaxe přidávání bude následující:
INSERT INTO název_tabulky (pole_1, pole_2, ...) VALUES (Hodnota_1, Hodnota_2, ...); Na základě naší struktury tabulky bude SQL dotaz vypadat takto:
INSERT INTO zemí (název země, název akronymu) VALUES ("Rusko", "RU"); Takto jsme do tabulky přidali záznam o zemi „Rusko“. Všechno by zde mělo být jasné a jednoduché, hlavní věcí je pečlivě se podívat na to, která pole uvádíte v prvních závorkách, a do druhé zapsat hodnoty ve stejném pořadí.
Metoda č. 2.
Druhá metoda je podle mého názoru o něco jednodušší, protože vidíte, co přiřadíte a ke kterému oboru. Věřte mi, že pokud má tabulka velké množství sloupců, je velmi snadné zaměnit nebo přehlédnout pořadí polí v první závorce a pořadí hodnot ve druhých závorkách. Syntaxe druhé metody je:
INSERT INTO název_tabulky SET pole_1 = Hodnota_1, pole_2 = Hodnota_2, ... ; Použijme tento příklad k přidání některých informací do tabulky. osob, protože existuje více polí a výhoda druhé metody se okamžitě projeví:
INSERT INTO person SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Nyní naše tabulka obsahuje následující údaje:
Pravděpodobně jste si všimli, že jsme nezadali hodnotu pro věk, ale ukázalo se, že je vyplněna... Vše je správně - pro toto pole jsme nastavili výchozí hodnotu 25. Nyní je tedy náš Ivan Dulin uveden v databázi s věk 25 let. Možná to není nejlepší příklad nastavení výchozí hodnoty pro pole věk, ale můžete nastavit takové vlastnosti polí, jako je například uživatelské hodnocení webu nebo počet zobrazení stránky. Zpočátku jsou nastaveny na 0.
Měli byste také věnovat pozornost formátu data v MySQL: YYYY-MM-DD. Pokud jej nedodržíte, vaše příspěvky se do tabulky jednoduše nezapíší.
Jak vidíte, pole povolání je vyplněno jako NULL, toto je prázdná hodnota. Pro toto pole nastavíme vlastnost „nepovinné (NULL)“.
Jako doplněk zvažte následující příkaz:
NAČTE DATA LOKÁLNÍ INFILE "D:\zapros.txt" DO TABULKY osob; Co myslíš, že jsme teď udělali?! A udělali jsme následující: přidali data do tabulky osob ze souboru request.txt, který se nachází na jednotce D. Informace v souboru by měly mít následující strukturu:
Datová struktura souboru musí splňovat následující požadavky:
- Každý nový záznam musí být popsán na novém řádku
- Data musí být zadána pro absolutně všechna pole. Jak vidíte, do pole id jsme zadali hodnotu NULL, protože se automaticky zvyšuje, takže požadovanou hodnotu zadá samotné MySQL.
- Pole jsou od sebe oddělena znakem tabulátoru (klávesa Tab).
- Zadané informace se musí shodovat s datovými typy konkrétního pole. Tedy například datum ve formátu RRRR-MM-DD, celé číslo pro celé číslo atd.
Profesní stůl:
Tabulka osob:
jméno | příjmení | stáří | datum registrace | země | profese |
Leonid | Bilak | 45 | 2012-06-20 | 2 | 1 |
Yuri | Nazarov | 22 | 2012-06-21 | 3 | 1 |
Alla | Savenko | 25 | 2012-06-22 | 2 | 3 |
Irina | Nikolaeva | 31 | 2012-06-22 | 1 | 3 |
Tyto položky nezapomeňte přidat, protože je budeme potřebovat ke studiu příkazu SELECT (výběr informací z databáze), na který se podíváme v příštím (čtvrtém) článku o studiu SQL dotazů.