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