Nápověda SQL(DML): Příkazy UPDATE a DELETE. SQL. UPDATE Syntaxe příkazu SQL Syntaxe příkazu SELECT
Operátor AKTUALIZACE změní stávající údaje v tabulce. Příkaz má následující syntaxi:
UPDATE SET ( = ( | NULL | VÝCHOZÍ),...) [ (WHERE )];
Jediný příkaz lze použít k nastavení hodnot pro libovolný počet sloupců. Změny v každém sloupci zadané tabulky však můžete provést pouze jednou ve stejném příkazu UPDATE. Pokud klauzule WHERE neexistuje, budou aktualizovány všechny řádky v tabulce.
Pokud má sloupec hodnotu NULL, můžete jej zadat explicitně. Můžete také nahradit existující hodnotu výchozí hodnotou (DEFAULT) pro daný sloupec.
Příklady příkazů SQL UPDATE
Mám následující tabulku planet:
Příklad 1: Použití příkazu SQL UPDATE ke změně názvu planety Neptune na Pluto:
AKTUALIZACE NASTAVENÍ planet PlanetName = "Pluton" WHERE ID = 3;
V tomto příkladu je vyžadována podmínka klauzule SQL WHERE, protože bez ní by se všechna pole sloupce PlanetName v celé tabulce změnila na Pluton. V tomto případě nám vychází na pomoc sloupec ID, protože je to primární klíč, který vám umožňuje jednoznačně identifikovat záznam.
Příklad 2. Všem učitelům zvýšíme platy 2x, bonus 10x.
Aktualizace dat v databázi znamená změnu hodnot v existujících záznamech tabulky. V tomto případě je možné jak změnit hodnoty polí ve skupině řádků (dokonce všechny řádky tabulky), tak upravit hodnotu pole v jednotlivém řádku.
V SQL můžete změnit záznam v databázové tabulce pomocí příkazu UPDATE. Ve své minimální podobě vypadá příkaz aktualizace dat takto:
AKTUALIZACE pole SET tabulky = hodnota
Tady, AKTUALIZACE– příkaz udávající, že požadavek je aktualizovat data;
stůl– název tabulky, ve které budou provedeny změny;
SOUBOR– příkaz následovaný čárkami oddělenými poli s přiřazenými hodnotami;
pole– pole tabulky, ve kterém bude provedena změna;
význam– nová hodnota, která bude vložena do pole.
Pokud například potřebujete nastavit pole ve všech řádcích tabulky na nulu, můžete spustit následující dotaz:
AKTUALIZACE SET cena zboží = 0
V tomto případě bude mít pole ceny v absolutně všech dostupných řádcích tabulky hodnotu 0.
Změna jedné hodnoty
Změna hodnot všech polí v tabulce je extrémně vzácná. Nejčastěji je potřeba změnit hodnotu konkrétní položky. K tomu bude na konec řádku s příkazem UPDATE přidána direktiva WHERE, která určuje podmínku, která určuje, na kterém řádku se má operace aktualizace provést.
Tady je stůl:
Potřebujeme například aktualizovat náklady na produkt o jeho hodnotu, kterou známe č. Chcete-li to provést, spusťte následující dotaz:
AKTUALIZACE cena SET zboží = 150 KDE num = 2
Nyní, před operací změny polí, bude vybrán řádek, který splňuje podmínku num = 2. V tabulce je pouze jeden takový řádek. V této skladě bude cena změněna na hodnotu 150. Tím získáme tabulku se změněnou cenou produktu.
Provádění změn na více řádcích s podmínkou výběru
Pokud si pamatujete všechny různé podmínky v dotazu, můžete si představit, jak rozmanité mohou být vzorky. Aktualizační dotazy lze tedy provádět buď s jedním řádkem, nebo se skupinou řádků, nebo se všemi řádky tabulky. Vše závisí na úkolu, kterému čelíte, a také na tom, na kterých řádcích tabulky je třeba provést operace aktualizace.
Chceme například snížit na polovinu cenu veškerého zboží, které aktuálně stojí 100 a více. Žádost:
AKTUALIZACE zboží SET cena = cena / 2 KDE cena >= 100
Stav KDE zde obsahuje pravidlo, podle kterého budou vybírány pouze produkty s cenou rovnou nebo vyšší než 100, a na produkty s cenou nižší než 100 se poptávka netýká.
cena = cena / 2– vzorec, podle kterého bude vypočítána nová cena zboží. Nová cena bude zapsána jako stará cena dělená dvěma.
V důsledku provedení takového dotazu získáme tabulku se změněnými záznamy:
Aktualizace hodnot ve více řádkových polích
Pokud je potřeba aktualizovat několik polí najednou, všechna pole se svými hodnotami jsou uvedena za direktivou SET, oddělená čárkami. Například musíte změnit název a cenu produktu s kódem 2 na „železo“, stojí 300:
AKTUALIZACE SET zboží title = "železo" , price = 300 WHERE num = 2 !}
Tento dotaz přiřadí každému odpovídajícímu poli v řádku jeho hodnotu. A podmínka bude indikovat, ve kterém řádku budou změny provedeny.
Níže jsou uvedeny hlavní typy operací aktualizace. Na jejich základě jsou generovány dotazy, které řeší většinu problémů s úpravami dat při vývoji pomocí SQL.
Operátor AKTUALIZACE změní stávající údaje v tabulce. Příkaz má následující syntaxi
AKTUALIZACE<имя таблицы>
SET (název sloupce = (výraz pro výpočet hodnoty sloupce
| NULA
| DEFAULT),...)
[ (KDE<предикат>}];
Jediný příkaz lze použít k nastavení hodnot pro libovolný počet sloupců. Nicméně ve stejném prohlášení AKTUALIZACE Změny v každém sloupci zadané tabulky můžete provést pouze jednou. Při absenci nabídky KDE Všechny řádky tabulky budou aktualizovány.
Pokud má sloupec hodnotu NULL, můžete jej zadat explicitně. Můžete také nahradit stávající hodnotu výchozí hodnotou ( VÝCHOZÍ) pro daný sloupec.
Samozřejmostí jsou datové typy sloupců hd A RAM musí být kompatibilní. K přetypování typů lze použít výraz OBSAZENÍ.
Pokud potřebujete změnit data v závislosti na obsahu určitého sloupce, můžete použít výraz POUZDRO. Pokud řekněme potřebujete nainstalovat 20GB pevné disky na PC poznámkové bloky s pamětí menší než 128 MB a 40 GB pevné disky na zbývající PC poznámkové bloky, můžete napsat následující požadavek:
Je potřeba říci pár slov o automatickém navyšování sloupců. Pokud sloupec kód ve stole Přenosný počítač definováno jako IDENTITY(1;1), pak další operátor
Samozřejmě další řádek s hodnotou kód=5 by nemělo být v tabulce.
V Transact-SQL operátor AKTUALIZACE rozšiřuje standard použitím volitelné klauzule Z. Tato klauzule určuje tabulku, která poskytuje kritéria pro operaci aktualizace. Další flexibilitu zde poskytuje použití operací spojení tabulek.
Příklad . Předpokládejme, že musíte ve sloupci uvést „No PC“ (no PC). typ u těch modelů PC od stolu Produkt PC. Řešení spojením tabulek lze zapsat takto:
příkaz DELETE
Operátor VYMAZAT odstraní řádky z dočasných nebo trvalých základních tabulek, pohledů nebo kurzorů a v posledních dvou případech se akce operátora rozšíří na ty základní tabulky, ze kterých byla data načtena do těchto pohledů nebo kurzorů. Operátor delete má jednoduchou syntaxi:
ODSTRANIT Z<имя таблицы > ;
Pokud nabídka KDE chybí, odebere všechny řádky z tabulky nebo zobrazení (výhled musí být aktualizovatelný). Tato operace (smazání všech řádků z tabulky) může být také provedena rychleji v Transact-SQL pomocí příkazu
Existuje však řada rozdílů v implementaci příkazu ZKRÁTIT TABULKU ve srovnání s používáním operátora VYMAZAT věci, které je třeba mít na paměti:
1. Mazání jednotlivých řádků tabulky není protokolováno. Protokol zaznamenává pouze vydání stránek, které byly obsazeny daty tabulky.
2. Spouštěče nefungují, zejména spouštěč mazání.
3. Příkaz není použitelný, pokud na tuto tabulku odkazuje cizí klíč, a to i v případě, že cizí klíč má možnost kaskádového odstranění.
4. Hodnota počítadla ( IDENTITA) se resetuje na výchozí hodnotu.
Příklad . Nutno odstranit ze stolu Přenosný počítač všechny PC notebooky s úhlopříčkou obrazovky menší než 12 palců.
Přenosný počítač TRUNCATE TABLE |
Transact-SQL rozšiřuje syntaxi příkazů VYMAZAT, kterým se uvádí další věta Z
Z<источник табличного типа>
S pomocí zdroj typu tabulky v první větě můžete určit data odstraněná z tabulky Z.
Pomocí této klauzule můžete provádět spojení tabulek, což logicky nahrazuje použití poddotazů v klauzuli KDE k identifikaci řádků, které mají být odstraněny.
Pojďme si to vysvětlit na příkladu. Předpokládejme, že chcete tyto modely PC odstranit ze stolu Produkt, pro které v tabulce nejsou žádné odpovídající řádky PC.
Pomocí standardní syntaxe lze tento problém vyřešit pomocí následujícího dotazu:
To používá vnější spojení, které způsobuje sloupec model pc pro modely PC, které nejsou uvedeny v tabulce PC, bude obsahovat hodnotu NULL, která se používá k identifikaci řádků, které mají být odstraněny.
Poslední aktualizace: 13.07.2017
Chcete-li změnit existující řádky v tabulce, použijte příkaz UPDATE. Má následující formální syntaxi:
UPDATE název_tabulky SET sloupec1 = hodnota1, sloupec2 = hodnota2, ... sloupecN = hodnotaN
Například zvýšíme cenu všech produktů o 5000:
AKTUALIZACE SADA produktů Cena = Cena + 5000
Použijme kritérium a změňme název výrobce z „Samsung“ na „Samsung Inc.“:
AKTUALIZACE SADA produktů Výrobce = "Samsung Inc." KDE Výrobce = "Samsung"
Složitější požadavek - nahraďte pole Výrobce hodnotou "Apple" hodnotou "Apple Inc." v prvních 2 řádcích:
AKTUALIZACE SADA produktů Výrobce = "Apple Inc." FROM (SELECT TOP 2 FROM Products WHERE Manufacturer="Apple") AS Selected WHERE Products.Id = Selected.Id
Pomocí poddotazu za klíčovým slovem FROM jsou načteny první dva řádky, ve kterých jsou Manufacturer="Apple" načteny. Pro tento výběr bude definován alias Selected. Alias je uveden za operátorem AS.
Následuje podmínka aktualizace Products.Id = Selected.Id . To znamená, že ve skutečnosti máme co do činění se dvěma tabulkami – Produkty a Vybrané (což je odvozeno od Produktů). V Selected jsou dva první řádky s Manufacturer="Apple". In Produkty - obecně všechny řady. A aktualizace se provádí pouze pro ty řádky, které jsou ve výběru Vybrané. Tedy pokud jsou v tabulce Produkty u výrobce Apple desítky produktů, pak se aktualizace dotkne pouze prvních dvou z nich.
Změna hodnot polí (příkaz AKTUALIZACE). Komatsdoy AKTUALIZACE můžete změnit některé nebo všechny hodnoty v řadě. Příkaz určuje název tabulky a změny. Předpokládejme, že na příkaz rektora je stanovena nová (stejná pro všechny) výše stipendia ve výši 50 000 rublů pro všechny studenty, kteří dostávají stipendium. Chcete-li to provést, zadejte příkaz:
AKTUALIZACE Spišok
SOUBOR stip = 50 000;
V týmu AKTUALIZACE ve větě KDE Můžete nastavit aktualizaci pouze určitých řádků.
AKTUALIZACE
SOUBOR stip = 50 000
KDE kurs=I;
V klauzuli SET příkazu AKTUALIZACE Můžete zadat libovolný počet hodnot pro sloupce oddělené čárkami.
Jeden tým AKTUALIZACE Nelze aktualizovat více tabulek.
V týmu AKTUALIZACE ve větě SOUBOR Ke změně hodnoty pole můžete použít skalární výrazy. Předpokládejme, že stipendia všech studentů se zvýší o 25 %; požadované změny:
AKTUALIZACE Spišok
SOUBOR stip = (stip *25)/100;
Takže tým AKTUALIZACE je určen k nahrazení hodnot v řádcích tabulky (záznamech).
SQL. Syntaxe příkazu DELETE
Odstranění řádků z tabulky (příkaz VYMAZAT). tým VYMAZAT Neodstraňují se jednotlivé hodnoty polí řádků, ale celé řádky. Po provedení příkazu VYMAZAT pro celou tabulku se stane prázdnou, například:
ODSTRANIT Z Spišok;
Chcete-li odstranit konkrétně určené řádky, můžete použít predikát
ODSTRANIT Z Spišok
KDE stip = 0;
nebo zadejte hodnotu primárního klíče pro odstranění jednoho záznamu
ODSTRANIT Z Spišok
KDE fio = "Petkin";
V týmech INSERT, DELETE, UPDATE Můžete použít poddotazy.
Syntaxe příkazu SQL SELECT
Jazyk SQL je strukturovaný dotazovací jazyk. Požadavek v tomto prostředí je příkaz, pomocí kterého uživatel vytvoří úlohu pro DBMS. Po provedení příkazu musí DBMS poskytnout uživateli informace uvedené v požadavku.
všechny požadavky v SQL formulované pomocí jednoho příkazu VYBRAT načež v databázi začíná vyhledávání určitých (potřebných) informací v tabulce.
Příklad. Na základě tabulky Spisok získejte tabulku se všemi záznamy v následujícím tvaru:
Je dán příkaz:
VYBRAT fio, stip Z Spišok;
Výsledek příkazu je znázorněn na obrázku.
fio | stip |
Rybkina | |
Utkina | |
Pšeničko | |
Sobachkina | |
Varle |
Vybrat- klíčové slovo, které „říká“ DBMS, že příkaz je požadavek;
fio, stip- seznam názvů polí (sloupců), podle kterých by měly být vybírány informace a normalizována nová tabulka;
OD Spiška; Z- klíčové slovo musí být v každé žádosti; Spišík - název tabulky – zdroj dat pro dotaz;
Symbol středník (;) označuje konec příkazu a připravenost k jeho provedení.
Po klíčovém slově VYBRAT následuje mezera. Dále jsou uvedeny názvy polí (sloupců) výběru oddělené čárkami.
Chcete-li zobrazit všechny sloupce databázové tabulky, můžete seznam polí vynechat a nahradit jej hvězdičkou (*). Sloupce se zobrazují v souladu se strukturou zdrojové tabulky
VYBRAT * Z Spišok;
Příkaz SELECT může zobrazit sloupce v libovolném pořadí, které se liší od pořadí definovaného strukturou zdrojové tabulky. Tato sekvence je určena seznamem názvů sloupců v příkazu SELECT. Příklad přeřazených sloupců ve výstupní tabulce
VYBRAT kurs, gruppa, fio Z Spišok;
SQL. Výběr podle kritéria (KDE)
Pomocí aplikace KDE v týmu VYBRAT je zadána podmínka pro výběr záznamů z tabulky; predikát může nabývat hodnot „true“ nebo „false“.
Příklad.
tým VYBRAT vybrat z tabulky Spisok studenty skupiny ET-41:
VYBRAT gruppa, fio OD Spisok WHERE gruppa='ET-41';
Program projde všechny záznamy tabulky Spisok a zkontroluje každý z nich na pravdivost predikátu gruppa='ET-41'. V důsledku provedení dostaneme:
gruppa | fio |
ET-41 | Rybkina |
ET-41 | Utkina |
ET-41 | Pšeničko |
ET-41 | Sobachkina |
ET-41 | Varle |
Použití SQL s jinými programovacími jazyky
Jazyk SQL používá se k psaní programů pro přístup k databázím jako podjazyk jiných procedurálních programovacích jazyků (Pascal, PL/1, Fortran, COBOL, C, Ada atd.). Jazyk SQL nikoli procesní, ale deklarativní, místní. Může být vložen do programů napsaných v procedurálních jazycích. Jazyk SQL neexistují žádné základní operátory kontroly stavu IF, operátory FOR, DO a WHILE atd. Jazyk SQL je určen výhradně pro správu databází.
Kombinované použití těchto jazyků vám umožňuje programovat složité procedurální programy, například je programovat v Pascalu a SQL přístup k jejich databázi. Všechny vestavěné příkazy SQL zahrnuto v hlavním textu programu v jazyce na vysoké úrovni, začínající frází EXEX SQL a končí příslušným jazykovým terminátorem (v Pascalu;).
Program s vestavěným SQL před vlastní kompilací probíhá předkompilace, kde příkazy SQL jsou převedeny (přeloženy) prekompilátorem do podoby jazyka vyšší úrovně; Poté je celý hlavní program zkompilován.
Týmy SQL zařazené do jiného programu jsou hlavním programem považovány za SQL-postupy. Během provádění komunikuje hlavní program s databází, stejně jako uživatel v prostředí SQL.
Aplikace Visual Basic. Základní pojmy.
V programování jsou základními pojmy „proměnná“ a „proměnná hodnota“. Proměnná je veličina (objekt), jejíž hodnota se během provádění programu mění. Proměnná v počítači je reprezentována svým přiřazeným názvem (identifikátorem) a její hodnota je určena operátorem přiřazení.
Každému identifikátoru proměnné je přiděleno místo v paměti, kde je uložena jeho hodnota. Připomeňme si a pochopme na první pohled základní koncept: jakýkoli program používá proměnné a jejich hodnoty. Pro každý nový název proměnné, se kterým se program setká, jej VBA automaticky určí (přidělí pro ni místo v paměti). Toto místo zůstává prázdné, dokud není proměnné přiřazena hodnota. Proměnné jsou porovnávány s kontejnery pro ukládání dat libovolného typu.
Data přiřazují objekt pomocí čísel, písmen a dalších prostředků. Aritmetické operace se provádějí s čísly a logické operace s písmeny. To již naznačuje různé typy dat, z nichž každý má své vlastní způsoby, jak je reprezentovat v rámci strojové reprezentace.
Datové typy VBA
Typy dat | Předpona | Popisný symbol | Velikost (bajt) | Význam |
Celé číslo | Int | % | Krátké celé číslo (-32788 až +32767) | |
Dlouho | Lng | & | Dlouhé celé číslo (-2147483648 až +2147483647) | |
Singl | Sng | ! | Jediná přesnost s plovoucí desetinnou čárkou: -3,4e38 až +3,4e38 | |
Dvojnásobek | Dbl | # | Dvojitá přesnost s plovoucí desetinnou čárkou: -1,79e308 až +1,79e308 | |
Byte | Byt | Ne | Bajt: 0 až 255 | |
Měna | Voříšek | @ | Číslo pevného bodu: -922337203685477.5808 Do +922337203685477.5807 | |
Tětiva | Str | $ | 10 + 2 za postavu | Řetězec: 0 až 65535 znaků |
Boolean | Zásobník | Ne | Booleovské číslo: pravda a nepravda | |
datum | Dat | Ne | datum a čas | |
Varianta | Var | Ne | <16 | Jakákoli data |
Objekt | Obj | Ne | Jakýkoli odkaz na objekt |
Proměnné a konstanty ve VBA
Proměnné v programu jsou deklarovány, to znamená, že je určen typ a rozsah proměnné. Proměnné lze deklarovat na dvou úrovních – na úrovni procedury a na úrovni modulu.
Deklarace na úrovni modulu je prováděna veřejnými a soukromými operátory: na úrovni modulů a procedur - operátorem Dim: pouze na úrovni procedury - statickým operátorem.
Inicializace deklarovaných proměnných probíhá v době kompilace: číselné proměnné je přiřazena hodnota nula (0): řetězcové proměnné je přiřazen prázdný řetězec (nulová délka): proměnné typu Variant je přiřazena hodnota Emtry (bez hodnoty).
Konstanty: mají jméno, ale nemění jejich hodnotu během provádění programu. Chcete-li definovat konstanty ve VB, použijte operátor Const v následujícím formátu:
Const (konstantní jméno =<константное выражение>}…
Veřejná – deklarovaná konstanta je dostupná pro jakoukoli proceduru
Soukromé – pro procedury uvnitř modulu
TAK JAKO<тип данных>- deklarace konstantního datového typu