SQL programovací jazyk pro figuríny. Archivy kategorií: Knihy o SQL. Klíčové body k učení SQL

Dotazy - strukturované dotazy do databáze. Proč přesně kurz programování? Nehledě na to, že mnoho „literárních expertů“ bude tvrdit, že SQL není, ale dotazovací jazyk Domnívám se, že kurzy o jejím studiu mohou a měly by být klasifikovány jako kurzy programování. Za prvé, neříkejte jim kurzy pro psaní žádostí, protože by je to mohlo zmást s kurzy pro začínající úředníky nebo státní zástupce. Za druhé, práce s databázemi je tak úzce propojena s tím, že nedostatek SQL dovedností poměrně výrazně zužuje pole působnosti konkrétního programátora. a za třetí, strukturované dotazy(ne nutně databáze) již nejsou na přístupech k hranicím programovacích jazyků - již je překročily a technologie toho může sloužit jako příklad.

Všechny příklady jsou postaveny na dotazech na tři tabulky,


obsahující následující informace:

  • D_STAFF- seznam zaměstnanců společnosti;

    • S_NAME – celé jméno
    • S_POSITION – pozice (adresář);
    • S_EXPERIENCE – praxe (celočíselný počet let);
    • S_CHIEF_ID – vedoucí zaměstnanec společnosti (vztah „šéf“ - „podřízený“);
    • S_COMMENTS – pozn.


  • D_PROFIE- seznam uživatelských profilů, který je podle legendy nasazen na území daného podniku a pomáhá automatizovat některé jeho obchodní procesy. Tento systém může být buď domácím vývojem „1C – Enterprise“ nebo systémem založeným na softwarový balík SAP R/3, což je nejvíce významný představitel tato třída software v zahraničí;


  • D_STAFF_PROFILE– tabulka spojující zaměstnance společnosti (D_STAFF) s uživatelskými profily systému (D_PROFILE). Každá položka v této tabulce je vztah, který určuje možnost zaměstnance přihlásit se se všemi právy a oprávněními profilu, který mu byl vybrán. Každý zaměstnanec může mít povoleno více profilů a jakýkoli profil může být spojen s několika různými zaměstnanci. Tabulka D_STAFF_PROFILE tedy definuje vztah mnoho k mnoha.

Stručný přehled syntaxe příslušných SQL dotazů

Aktualizace dat nebo příkaz UPDATE

Účelem příkazu UPDATE je aktualizace existující záznamy v uvedené tabulce. Označíme, kde a co chceme změnit, a za klíčové slovo WHERE nastavíme kritéria pro výběr aktualizovaných záznamů. V příkazu aktualizace dat, stejně jako v jiných dotazech SQL, můžete použít poddotazy: můžete například definovat výsledek poddotazu, který vrátí pouze jeden sloupec a jeden řádek jako hodnotu přiřazenou poli.

AKTUALIZOVAT SADA ( = ) nebo AKTUALIZOVAT SADA ( = (VYBRAT ODKUD))

Přidání dat nebo příkaz INSERT

Přidání nových záznamů do zadané tabulky. Ani zde není nic složitého. Určujeme tabulku, seznam polí a seznam hodnot přidaných do těchto polí. Co může dát pomocí SQL Poddotaz lze také snadno uhodnout – zkopírováním datového pole vybraného pomocí SELECT do zadané tabulky (do uvedených polí oddělených čárkami). Počet a typ sloupců ve SELECT dotazu musí přirozeně odpovídat počtu a typu polí tabulky, do které se vkládání provádí.

INSERT INTO [()] VALUES () nebo INSERT INTO [()] (VYBERTE ODKUD)

Mazání dat nebo příkaz DELETE

Mazání řádků z jedné tabulky nebo z více tabulek najednou, jejichž řádky jsou kombinovány podmínkami. Vše je zde také zřejmé. Označíme, ze které tabulky data mažeme, a v části KDE vybereme data, která mají být smazána. Druhá verze SQL dotazu pomocí příkazu DELETE ukazuje obecnou syntaxi pro mazání záznamů z několika tabulek najednou. Ve výběrových podmínkách (v části WHERE) lze použít i poddotazy.

DELETE FROM nebo DELETE FROM

Pokud je vše víceméně jasné, pak se seznámíme s nebo a zahájíme samotný proces učení.

    Provedení nejjednodušší SQL pomocí dotazů SELECT příkazy. Definování jednoduchých a složených kritérií pro výběr záznamů pomocí klauzule WHERE. Použití operátorů BETWEEN a LIKE. Vytvoření hierarchického dotazu pomocí aliasů tabulek a polí.

Dotazy jsou psány bez uvozovek, protože MySQL, MS SQL A PostGree jsou různé.

SQL dotaz: získání zadaných (nezbytných) polí z tabulky

SELECT id, country_title, count_people FROM table_name

Získáme seznam záznamů: VŠECHNY země a jejich populace. Názvy povinných polí jsou označeny oddělenými čárkami.

SELECT * FROM název_tabulky

* označuje všechna pole. To znamená, že budou představení ÚPLNĚ VŠECHNO datová pole.

SQL dotaz: výstup záznamů z tabulky s výjimkou duplikátů

SELECT DISTINCT country_title FROM table_name

Získáme seznam záznamů: země, kde se nacházejí naši uživatelé. Může být mnoho uživatelů z jedné země. V tomto případě je to váš požadavek.

SQL dotaz: zobrazení záznamů z tabulky na základě dané podmínky

SELECT id, country_title, city_title FROM table_name WHERE count_people>100000000

Získáme seznam rekordů: země, kde je počet lidí vyšší než 100 000 000.

SQL dotaz: zobrazení záznamů z tabulky s řazením

SELECT id, název_města FROM název_tabulky ORDER BY název_města

Získáme seznam záznamů: města v abecední pořadí. Na začátku A, na konci Z.

SELECT id, název_města FROM název_tabulky ORDER BY název_města DESC

Získáme seznam záznamů: města obráceně ( DESC) v pořádku. Na začátku já, na konci A.

SQL dotaz: počítání počtu záznamů

SELECT COUNT(*) FROM název_tabulky

Dostaneme počet (počet) záznamů v tabulce. V v tomto případěŽÁDNÝ seznam záznamů.

SQL dotaz: výstup požadovaného rozsahu záznamů

SELECT * FROM název_tabulky LIMIT 2, 3

Z tabulky získáme 2 (druhý) a 3 (třetí) záznamy. Dotaz je užitečný při vytváření navigace na WEB stránkách.

SQL dotazy s podmínkami

Zobrazení záznamů z tabulky na základě dané podmínky pomocí logických operátorů.

SQL dotaz: konstrukce AND

SELECT id, city_title FROM table_name WHERE country="Russia" AND oil=1

Dostáváme seznam rekordů: města z Ruska A mít přístup k ropě. Kdy použít operátora A, pak se musí obě podmínky shodovat.

SQL dotaz: konstrukce NEBO

SELECT id, city_title FROM table_name WHERE country="Russia" OR country="USA"

Získáme seznam záznamů: všechna města z Ruska NEBO USA. Kdy použít operátora NEBO, pak musí odpovídat ALESPOŇ jedna podmínka.

SQL dotaz: AND NOT konstrukce

SELECT id, user_login FROM table_name WHERE country="Russia" AND NOT count_comments<7

Získáme seznam záznamů: všichni uživatelé z Ruska A kdo udělal NE MÉNĚ 7 komentářů.

SQL dotaz: IN konstrukce (B)

SELECT id, user_login FROM table_name WHERE country IN ("Rusko", "Bulharsko", "Čína")

Získáme seznam záznamů: všichni uživatelé, kteří žijí v ( V) (Rusko nebo Bulharsko nebo Čína)

SQL dotaz: NOT IN construction

SELECT id, user_login FROM table_name WHERE country NOT IN ("Rusko","Čína")

Získáme seznam záznamů: všichni uživatelé, kteří nežijí v ( NENÍ IN) (Rusko nebo Čína).

SQL dotaz: konstrukce IS NULL (prázdné nebo NE prázdné hodnoty)

SELECT id, user_login FROM table_name WHERE status IS NULL

Získáme seznam záznamů: všichni uživatelé, kde není definován stav. NULL je samostatný problém, a proto se kontroluje samostatně.

SELECT id, user_login FROM table_name WHERE state IS NOT NULL

Získáme seznam záznamů: všichni uživatelé, kde je definován stav (NOT NULL).

SQL dotaz: konstrukce LIKE

SELECT id, user_login FROM table_name WHERE příjmení LIKE "Ivan%"

Získáme seznam záznamů: uživatelé, jejichž příjmení začíná kombinací „Ivan“. Znak % znamená JAKÝKOLI počet LIBOVOLNÝCH znaků. Chcete-li najít znak %, musíte použít escape „Ivan\%“.

SQL dotaz: BETWEEN konstrukce

SELECT id, user_login FROM table_name WHERE plat MEZI 25000 A 50000

Získáme seznam záznamů: uživatelé, kteří dostávají mzdu od 25 000 do 50 000 včetně.

Logických operátorů je HODNĚ, proto si podrobně prostudujte dokumentaci k SQL serveru.

Složité SQL dotazy

SQL dotaz: kombinace více dotazů

(SELECT id, user_login FROM table_name1) UNION (SELECT id, user_login FROM table_name2)

Získáme seznam záznamů: uživatelé, kteří jsou registrováni v systému, a také uživatelé, kteří jsou registrováni samostatně na fóru. Operátor UNION může kombinovat více dotazů. UNION se chová jako SELECT DISTINCT, to znamená, že zahodí duplicitní hodnoty. Chcete-li získat absolutně všechny záznamy, musíte použít operátor UNION ALL.

SQL dotaz: hodnota pole počítá MAX, MIN, SUM, AVG, COUNT

Zobrazení jedné, maximální hodnoty počítadla v tabulce:

SELECT MAX(počítadlo) FROM název_tabulky

Výstup jedné, minimální hodnoty čítače v tabulce:

SELECT MIN(počítadlo) FROM název_tabulky

Zobrazení součtu všech hodnot čítače v tabulce:

SELECT SUM(počítadlo) FROM název_tabulky

Zobrazení průměrné hodnoty počítadla v tabulce:

SELECT AVG(počítadlo) FROM název_tabulky

Zobrazení počtu počítadel v tabulce:

SELECT COUNT(počítadlo) FROM název_tabulky

Zobrazení počtu metrů v dílně č. 1 v tabulce:

SELECT COUNT(counter) FROM table_name WHERE office="Workshop č. 1"

Toto jsou nejoblíbenější týmy. Tam, kde je to možné, je doporučeno používat pro výpočty SQL dotazy tohoto druhu, protože žádné programovací prostředí se nemůže srovnávat v rychlosti zpracování dat než samotný SQL server při zpracování vlastních dat.

SQL dotaz: seskupování záznamů

SELECT kontinent, SUM(country_area) FROM země GROUP BY kontinentu

Získáme seznam záznamů: s názvem kontinentu a součtem oblastí všech jejich zemí. To znamená, že pokud existuje adresář zemí, kde má každá země zaznamenanou svou oblast, pak pomocí konstrukce GROUP BY můžete zjistit velikost každého kontinentu (na základě seskupení podle kontinentů).

SQL dotaz: pomocí více tabulek přes alias

SELECT o.order_no, o.amount_paid, c.company FROM orders AS o, customer AS with WHERE o.custno=c.custno AND c.city="Tyumen"

Dostáváme seznam záznamů: objednávky od zákazníků, kteří žijí pouze v Ťumenu.

Ve skutečnosti u správně navržené databáze tohoto typu je dotaz nejčastější, proto byl do MySQL zaveden speciální operátor, který pracuje mnohonásobně rychleji než výše psaný kód.

SELECT o.order_no, o.amount_paid, z.company FROM orders AS o LEFT JOIN customer AS z ON (z.custno=o.custno)

Vnořené poddotazy

SELECT * FROM název_tabulky WHERE plat=(SELECT MAX(plat) FROM zaměstnance)

Získáme jeden záznam: informace o uživateli s maximální mzdou.

Pozor! Vnořené poddotazy jsou jednou z největších překážek na SQL serverech. Spolu se svou flexibilitou a výkonem také výrazně zvyšují zátěž serveru. Což vede ke katastrofálnímu zpomalení pro ostatní uživatele. Případy rekurzivních volání ve vnořených dotazech jsou velmi časté. Proto důrazně doporučuji NEPOUŽÍVAT vnořené dotazy, ale rozdělit je na menší. Nebo použijte kombinaci LEFT JOIN popsanou výše. Tento typ požadavku je navíc zvýšeným zdrojem narušení bezpečnosti. Pokud se rozhodnete použít vnořené poddotazy, musíte je navrhnout velmi pečlivě a provést počáteční spuštění na kopiích databází (testovací databáze).

SQL dotazy mění data

SQL dotaz: INSERT

Instrukce VLOŽIT umožňují vkládat záznamy do tabulky. Jednoduše řečeno, vytvořte řádek s daty v tabulce.

Možnost #1. Často používaný návod je:

INSERT INTO table_name (id, user_login) VALUES (1, "ivanov"), (2, "petrov")

Ke stolu" název_tabulky» Budou vloženi 2 (dva) uživatelé najednou.

Možnost #2. Je pohodlnější použít styl:

INSERT název_tabulky SET id=1, user_login="ivanov"; INSERT název_tabulky SET id=2, user_login="petrov";

To má své výhody i nevýhody.

Hlavní nevýhody:

  • Mnoho malých SQL dotazů se bude provádět o něco pomaleji než jeden velký SQL dotaz, ale ostatní dotazy budou řadit do fronty na službu. To znamená, že pokud dokončení velkého SQL dotazu trvá 30 minut, pak po celou tuto dobu budou zbývající dotazy kouřit bambus a čekat, až na ně přijde řada.
  • Požadavek se ukazuje být masivnější než předchozí verze.

Hlavní výhody:

  • Během malých SQL dotazů nejsou ostatní SQL dotazy blokovány.
  • Snadnost čtení.
  • Flexibilita. V této možnosti se nemusíte řídit strukturou, ale přidávat pouze nezbytná data.
  • Při vytváření archivů tímto způsobem můžete snadno zkopírovat jeden řádek a spustit jej přes příkazový řádek (konzole), čímž neobnovíte celý ARCHIV.
  • Styl psaní je podobný příkazu UPDATE, což usnadňuje zapamatování.

SQL dotaz: AKTUALIZACE

AKTUALIZACE SET table_name user_login="ivanov", user_surname="Ivanov" WHERE id=1

V tabulce" název_tabulky"v záznamu s číslem id=1 se hodnoty polí user_login a user_surname změní na zadané hodnoty.

SQL dotaz: DELETE

DELETE FROM název_tabulky WHERE id=3

V tabulce název_tabulky bude smazán záznam s ID číslem 3.

  1. Pro zajištění kompatibility s různými programovacími jazyky, jako jsou Delphi, Perl, Python a Ruby, se doporučuje psát všechny názvy polí malými písmeny a v případě potřeby je oddělit vynucenou mezerou „_“.
  2. Kvůli čitelnosti pište příkazy SQL VELKÝMI písmeny. Vždy si pamatujte, že kód po vás mohou přečíst jiní lidé a s největší pravděpodobností vy sami po N množství času.
  3. Pole pojmenujte nejprve podstatným jménem a poté akcí. Například: city_status, user_login, user_name.
  4. Snažte se vyhnout rezervovaným slovům v různých jazycích, která mohou způsobit problémy v SQL, PHP nebo Perl, jako je (název, počet, odkaz). Například: odkaz lze použít v MS SQL, ale je vyhrazen v MySQL.

Tento materiál je krátkou referencí pro každodenní práci a nepředstírá, že je super mega autoritativní zdroj, který je původním zdrojem SQL dotazů pro konkrétní databázi.

strukturovaný dotazovací jazyk nebo SQL je deklarativní programovací jazyk pro použití v kvazi-relačních databázích. Mnoho z původních funkcí SQL bylo převzato z n-ticového počtu, ale nedávná rozšíření SQL zahrnují stále více relační algebry.
SQL byl původně vytvořen IBM, ale mnoho prodejců vyvinulo své vlastní dialekty. Byla přijata jako norma americkým národním institutem pro normalizaci (ANSI) v roce 1986 a ISO v roce 1987. Ve standardu programovacího jazyka SQL ANSI uvedla, že oficiální výslovnost SQL je „es q el“. Mnoho databázových specialistů však používalo „slangovou“ výslovnost „Sequel“, která odráží původní název jazyka Sequel, který byl později změněn kvůli konfliktu ochranné známky a názvu s IBM. Programování pro začátečníky.
SQL programovací jazyk byla revidována v roce 1992 a tato verze je známá jako SQL-92. 1999 byl poté znovu revidován, aby se stal SQL:1999 (AKA SQL3). Programování pro figuríny. SQL 1999 podporuje objekty, které dříve nebyly podporovány v jiných verzích, ale ke konci roku 2001 podporovalo implementace SQL pouze několik systémů správy databází: SQL 1999.
SQL, přestože je definován jako ANSI a ISO, má mnoho variací a rozšíření, z nichž většina má své vlastní charakteristiky, jako je implementace „PL/SQL“ společnosti Oracle nebo implementace Sybase a Microsoft nazvaná „Transact-SQL“, což může být matoucí. kteří jsou obeznámeni se základy programování. Není také neobvyklé, že komerční implementace opomíjejí podporu hlavních funkcí standardu, jako jsou datové typy jako datum a čas, a preferují nějakou vlastní variantu. Výsledkem je, že na rozdíl od ANSI C nebo ANSI Fortran, které lze obvykle přenášet z platformy na platformu bez velkých strukturálních změn, lze dotazy programovacího jazyka SQL jen zřídka přenášet mezi různými databázovými systémy bez významných úprav. Většina lidí v databázovém průmyslu věří, že tento nedostatek kompatibility je záměrný, aby každý vývojář měl svůj vlastní systém správy databází a připoutal kupujícího ke konkrétní databázi.
Jak jeho název napovídá, programovací jazyk SQL je navržen pro specifické, omezené účely – dotazování na data obsažená v relační databázi. Jako takový se jedná spíše o sadu instrukcí programovacího jazyka pro vytváření vzorků dat než o procedurální jazyk, jako je C nebo BASIC, které jsou určeny k řešení mnohem širšího spektra problémů. Rozšíření jazyka jako "PL/SQL" jsou navržena tak, aby toto omezení vyřešila přidáním procedurálních prvků do SQL při zachování výhod SQL. Dalším přístupem je vložení příkazů procedurálního programovacího jazyka do SQL dotazů a interakce s databází. Například Oracle a další podporují Javu v databázi, zatímco PostgreSQL umožňuje psát funkce v Perlu, Tcl nebo C.
Jeden vtip o SQL: "SQL není ani strukturovaný, ani jazyk." Vtip je v tom, že SQL není Turingův jazyk. .

Vyberte * z T
C1 C2
1 A
2 b
C1 C2
1 A
2 b
Vyberte C1 z T
C1
1
2
C1 C2
1 A
2 b
Vyberte * z T, kde C1=1
C1 C2
1 A

Vzhledem k tabulce T zobrazí dotaz Select * from T všechny prvky všech řádků v tabulce.
Ze stejné tabulky dotaz Select C1 from T zobrazí prvky ze sloupce C1 všech řádků v tabulce.
Ze stejné tabulky dotaz Select * from T where C1=1 zobrazí všechny prvky všech řádků, kde je hodnota sloupce C1 "1".

SQL klíčová slova

SQL slova jsou rozdělena do několika skupin.

První je Data Manipulation Language neboli DML(jazyk pro správu dat). DML je podmnožinou jazyka používaného k dotazování databází a přidávání, aktualizaci a odstraňování dat.

  • SELECT je jedním z nejčastěji používaných příkazů DML a umožňuje uživateli zadat dotaz jako souborový popis požadovaného výsledku. Dotaz nespecifikuje, jak mají být výsledky uspořádány - převést dotaz do podoby, kterou lze provést v databázi, je úkolem databázového systému, konkrétněji optimalizátoru dotazů.
  • INSERT se používá k přidání řádků (formální sady) do existující tabulky.
  • UPDATE se používá ke změně datových hodnot v existujícím řádku tabulky.
  • DELETE určuje existující řádky, které budou z tabulky odstraněny.

Tři další klíčová slova lze říci, že spadají do skupiny DML:

  • ZAČÁTEK PRÁCE (nebo START TRANSACTION, v závislosti na dialektu SQL) lze použít k označení začátku databázové transakce, která buď dokončí vše, nebo nedokončí vůbec.
  • COMMIT uvádí, že všechny změny dat provedené po provedení operací jsou uloženy.
  • ROLLBACK určuje, že všechny změny dat po posledním potvrzení nebo vrácení musí být zničeny, a to až do bodu, který byl zaznamenán v databázi jako „vrácení zpět“.

COMMIT a ROLLBACK se používají v oblastech, jako je kontrola transakcí a zamykání. Obě instrukce dokončují všechny aktuální transakce (množiny operací na databázi) a odstraňují všechny zámky při změně dat v tabulkách. Přítomnost nebo nepřítomnost příkazu BEGIN WORK nebo podobného příkazu závisí na konkrétní implementaci SQL.

Druhá skupina klíčových slov patří do skupiny Data Definition Language nebo DDL (Data Definition Language). DDL umožňuje uživateli definovat nové tabulky a jejich přidružené prvky. Většina komerčních databází SQL má svá vlastní rozšíření DDL, která umožňují kontrolu nad nestandardními, ale obvykle životně důležitými prvky konkrétního systému.
Hlavními body DDL jsou příkazy pro vytvoření a odstranění.

  • CREATE určuje objekty (například tabulky), které budou v databázi vytvořeny.
  • DROP určuje, které existující objekty v databázi budou odstraněny, obvykle trvale.
  • Některé databázové systémy také podporují příkaz ALTER, který umožňuje uživateli upravit existující objekt různými způsoby, například přidáním sloupců do existující tabulky.

Třetí skupina klíčových slov SQL je Data Control Language nebo DCL (Data Control Language). DCL odpovídá za přístupová práva k datům a umožňuje uživateli řídit, kdo má přístup k prohlížení nebo manipulaci s daty v databázi. Jsou zde dvě hlavní klíčová slova:

  • GRANT - umožňuje uživateli provádět operace
  • REVOKE - Odebere nebo omezuje možnost uživatele provádět operace.

Databázové systémy využívající SQL

  • InterBase
  • MySQL
  • Věštec
  • PostgreSQL
  • SQL Server

Jak se stát profesionálem ve vývoji webových stránek a začít vydělávat peníze? Levné video kurzy s úvodním úvodem.

1 hlas

Vítejte na mém blogu. Dnes budeme hovořit o dotazech sql pro začátečníky. Někteří webmasteři mohou mít otázku. Proč se učit sql? Nedá se to obejít?

Ukazuje se, že k vytvoření profesionálního internetového projektu to nebude stačit. Sql slouží k práci s databázemi a vytváření aplikací pro WordPress. Podívejme se na to, jak používat dotazy podrobněji.

Co je to

Sql je strukturovaný dotazovací jazyk. Navrženo tak, aby určovalo typ dat, poskytovalo k nim přístup a zpracovávalo informace v krátkých časových obdobích. Popisuje součásti nebo některé výsledky, které chcete vidět na internetovém projektu.

Zjednodušeně řečeno, tento programovací jazyk umožňuje přidávat, měnit, vyhledávat a zobrazovat informace v databázi. Popularita mysql je způsobena tím, že se používá k vytváření dynamických internetových projektů, které jsou založeny na databázi. Proto, abyste mohli vytvořit funkční blog, musíte se tento jazyk naučit.

Co to může dělat

Jazyk sql vám umožňuje:

  • vytvářet tabulky;
  • změnit pro příjem a ukládání různých dat;
  • spojovat informace do bloků;
  • chránit data;
  • vytvářet požadavky v přístupu.

Důležité! Jakmile pochopíte sql, můžete psát aplikace pro WordPress jakékoli složitosti.

Jaká struktura

Databáze se skládá z tabulek, které lze prezentovat jako soubor Excel.

Má název, sloupce a řádek s některými informacemi. Takové tabulky můžete vytvořit pomocí sql dotazy.

Co potřebujete vědět


Klíčové body k učení SQL

Jak bylo uvedeno výše, dotazy se používají ke zpracování a zadávání nových informací do databáze sestávající z tabulek. Každý řádek je samostatný záznam. Pojďme tedy vytvořit databázi. Chcete-li to provést, napište příkaz:

Vytvořit databázi 'bazaname'

Název databáze píšeme latinkou v uvozovkách. Zkuste tomu vymyslet jasný název. Nevytvářejte databázi jako „111“, „www“ a podobně.

Po vytvoření databáze nainstalujte:

SET NAMES 'utf-8'

To je nezbytné pro správné zobrazení obsahu na webu.

Nyní vytvoříme tabulku:

VYTVOŘIT TABULKU 'bazaname' . 'stůl' (

id INT(8) NOT NULL PRIMÁRNÍ KLÍČ AUTO_INCREMENT,

log VARCHAR(10),

projít VARCHAR(10),

datum DATE

Do druhého řádku jsme napsali tři atributy. Podívejme se, co znamenají:

  • Atribut NOT NULL znamená, že buňka nebude prázdná (pole je povinné);
  • Hodnota AUTO_INCREMENT je automatické dokončování;
  • PRIMARY KEY - primární klíč.

Jak přidat informace

Pro vyplnění polí vytvořené tabulky hodnotami se používá příkaz INSERT. Píšeme následující řádky kódu:

VLOŽIT DO 'tabulky'

(login, pass, date) VALUES

('Vasa', '87654321', '21.06.2017 18:38:44');

V závorkách uvádíme názvy sloupců a v dalším - hodnoty.

Důležité! Udržujte konzistenci názvů sloupců a hodnot.

Jak aktualizovat informace

Chcete-li to provést, použijte příkaz UPDATE. Podívejme se, jak změnit heslo pro konkrétního uživatele. Píšeme následující řádky kódu:

UPDATE 'table' SET pass = '12345678' WHERE id = '1'

Nyní změňte heslo „12345678“. Změny nastanou v řádku s „id“=1. Pokud nenapíšete příkaz WHERE, změní se všechny řádky, ne konkrétní.

Doporučuji si knihu zakoupit" SQL pro figuríny " S jeho pomocí můžete s databází profesionálně pracovat krok za krokem. Všechny informace jsou strukturovány podle principu od jednoduchých po složité a budou dobře vnímány.

Jak smazat záznam

Pokud jste něco napsali špatně, opravte to pomocí příkazu DELETE. Funguje stejně jako UPDATE. Napíšeme následující kód:

DELETE FROM 'table' WHERE id = '1'

Informace o vzorkování

Chcete-li načíst hodnoty z databáze, použijte příkaz SELECT. Napíšeme následující kód:

SELECT * FROM 'table' WHERE id = '1'

V tomto příkladu vybereme všechna dostupná pole v tabulce. K tomu dojde, pokud do příkazu zadáte hvězdičku „*“. Pokud potřebujete vybrat nějakou ukázkovou hodnotu, napište toto:

SELECT protokol, předat tabulku FROM WHERE id = '1'

Nutno podotknout, že schopnost pracovat s databázemi nebude stačit. Chcete-li vytvořit profesionální internetový projekt, budete se muset naučit přidávat data z databáze na stránky. Chcete-li to provést, seznamte se s webovým programovacím jazykem PHP. Pomůže vám s tím cool kurz Michaila Rusakova .


Smazání tabulky

Vyskytuje se pomocí požadavku DROP. K tomu napíšeme následující řádky:

stůl DROP TABLE;

Zobrazení záznamu z tabulky na základě konkrétní podmínky

Zvažte tento kód:

SELECT id, country, city FROM table WHERE people>150000000

Zobrazí záznamy zemí s více než sto padesáti miliony obyvatel.

Sdružení

Je možné propojit více stolů dohromady pomocí Join. Podívejte se, jak to funguje podrobněji v tomto videu:

PHP a MySQL

Ještě jednou chci zdůraznit, že požadavky při vytváření internetového projektu jsou samozřejmostí. Chcete-li je použít v dokumentech PHP, postupujte podle následujícího algoritmu:

  • Připojte se k databázi pomocí příkazu mysql_connect();
  • Pomocí mysql_select_db() vybereme požadovanou databázi;
  • Žádost zpracujeme pomocí mysql_fetch_array();
  • Uzavřete připojení pomocí příkazu mysql_close().

Důležité! Práce s databází není náročná. Hlavní je správně napsat žádost.

Začínající webmasteři o tom budou přemýšlet. Co byste si na toto téma měli přečíst? Rád bych doporučil knihu Martina Grabera " SQL pro obyčejné smrtelníky " Je psána tak, aby začátečníci všemu rozuměli. Použijte ji jako referenční knihu.

Ale to je teorie. Jak to funguje v praxi? Ve skutečnosti musí být internetový projekt nejen vytvořen, ale také uveden na vrchol Googlu a Yandexu. Video kurz vám s tím pomůže“ Tvorba a propagace webových stránek ».


Video návod

Máte ještě otázky? Podívejte se na online video pro další podrobnosti.

Závěr

Takže zjistit, jak psát dotazy SQL, není tak obtížné, jak se zdá, ale musí to udělat každý webmaster. S tím pomohou výše popsané videokurzy. Přihlásit se k odběru moje skupina VKontakte být první, kdo se dozví, když se objeví nové zajímavé informace.

Většina moderní web aplikace komunikují s databázemi, obvykle používají jazyk tzv SQL. Naštěstí pro nás se tento jazyk velmi snadno učí. V tomto článku se podíváme na jednoduché SQL dotazy a naučte se je používat k interakci MySQL databáze.

Co budete potřebovat?

SQL (Structured Query Language) jazyk speciálně navržený pro rozhraní se systémy správy databází, jako je např MySQL, Oracle, Sqlite a další... Na doplnění SQL požadavky v tomto článku, doporučuji vám nainstalovat MySQL na místní počítač. Doporučuji také používat phpMyAdmin jako vizuální rozhraní.

To vše je k dispozici v oblíbeném Denveru. Myslím, že každý by měl vědět, co to je a kde to sehnat :). Může použijte také WAMP nebo MAMP.

Denver má vestavěný MySQL utěšit. To je to, co budeme používat.

VYTVOŘIT DATABÁZI:vytvoření databáze

Zde je naše první žádost. Vytvoříme naši první databázi pro další práci.

Chcete-li začít, otevřete MySQL konzole a přihlaste se. Pro WAMP Výchozí heslo je prázdné. Teda nic :). Pro MAMP - "kořen". Co se týče Denveru, musíme si to ujasnit.

Po přihlášení zadejte další řádek a stiskněte Zadejte:

CREATE DATABASE my_first_db;

Všimněte si, že na konec dotazu je přidán středník (;), stejně jako v jiných jazycích.

Také příkazy v SQL rozlišují velká a malá písmena. Píšeme je velkými písmeny.

Možnosti formálně: Sada znakůA Kompletace

Pokud chcete nainstalovat znaková sada (znaková sada) a řazení (porovnání) může být napsat další příkaz:

CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Vyhledá seznam znakových sad, které jsou podporovány v MySQL.

ZOBRAZIT DATABÁZE:zobrazí seznam všech databází

Tento příkaz se používá k výpisu všech dostupných databází.

DROP DATABASE:smazání databáze

Pomocí tohoto dotazu můžete odstranit existující DB.

Buďte opatrní s tímto příkazem, protože běží bez varování. Pokud jsou ve vaší databázi data, budou všechna smazána.

POUŽITÍ:Výběr databáze

Technicky to není dotaz, ale prohlášení a nevyžaduje středník na konci.

Říká to MySQL vyberte výchozí databázi pro aktuální relaci. Nyní jsme připraveni vytvářet tabulky a dělat další věci s databází.

Co je tabulka v databázi?

Tabulku v databázi můžete reprezentovat jako Excel soubor.

Stejně jako na obrázku mají tabulky názvy sloupců, řádky a informace. Pomocí SQL dotazy můžeme takové tabulky vytvořit. Můžeme také přidávat, číst, aktualizovat a mazat informace.

VYTVOŘIT TABULKU: Vytvoření tabulky

C Pomocí tohoto dotazu můžeme vytvářet tabulky v databázi. Bohužel dokumentace MySQL pro začátečníky není v této otázce příliš jasná. Struktura tohoto typu dotazu může být velmi složitá, ale začneme jednoduše.

Následující dotaz vytvoří tabulku se 2 sloupci.

CREATE TABLE uživatelé (uživatelské jméno VARCHAR(20), datum vytvoření DATE);

Vezměte prosím na vědomí, že naše dotazy můžeme psát na více řádků a s tabulátory pro odsazení.

První řádek je jednoduchý. Jednoduše vytvoříme tabulku s názvem „uživatelé“. Dále v závorkách, oddělených čárkami, je seznam všech sloupců. Za každým názvem sloupce máme informační typy, jako je VARCHAR nebo DATE.

VARCHAR(20) znamená, že sloupec je typu string a může mít maximálně 20 znaků. DATUM je také informační typ, který se používá k ukládání dat v následujícím formátu: "RRRR - MM-DD".

PRIMÁRNÍ KLÍČ ( primární klíčh)

Než spustíme další dotaz, musíme také zahrnout sloupec pro „user_id“, což bude náš primární klíč. PRIMÁRNÍ KLÍČ si můžete představit jako informaci, která se používá k identifikaci každého řádku v tabulce.

CREATE TABLE uživatelé (id_uživatele INT AUTO_INCREMENT PRIMARY KEY, uživatelské jméno VARCHAR(20), datum vytvoření DATE);

INT dělá to 32 bit celý typ(například čísla). AUTO_INCREMENT automaticky vygeneruje novou hodnotu ID pokaždé, když přidáme novou řadu informací. Není to nutné, ale celý proces to usnadňuje.

Tento sloupec nemusí být celočíselná hodnota, ale nejčastěji se používá. Dostupnost Primární klíč také volitelný, ale doporučený pro architekturu a výkon databáze.

Spustíme dotaz:

ZOBRAZIT TABULKY:zobrazit všechny tabulky

Tento dotaz umožňuje získat seznam tabulek, které jsou v databázi.

VYSVĚTLIT:Zobrazit strukturu tabulky

Chcete-li zobrazit strukturu existující tabulky, můžete použít tento dotaz.

Zobrazí se sloupce se všemi vlastnostmi.

DOP TABLE:smazat tabulku

Stejné jako DROP DATABASES, tento dotaz odstraní tabulku a její obsah bez varování.

ALTER TABULKA: změnit stůl

Tento dotaz může také obsahovat složitou strukturu kvůli více změny, které může u stolu provést. Podívejme se na příklady.

(pokud jste tabulku v předchozím kroku smazali, vytvořte ji znovu pro testy)

PŘIDÁNÍ SLOUPCE

ALTER TABLE uživatelé PŘIDAT e-mail VARCHAR(100) AFTER uživatelské jméno;

Vzhledem k dobré čitelnosti SQL si myslím, že nemá smysl to podrobně vysvětlovat. Přidáváme nový sloupec„e-mail“ za „uživatelským jménem“.

ODSTRANĚNÍ SLOUPCE

Bylo to také velmi snadné. Používejte tento požadavek opatrně, protože vaše data mohou být bez varování smazána.

Obnovte sloupec, který jste právě odstranili, pro další experimenty.

PROVÁDĚNÍ ZMĚN VE SLOUPCI

Někdy můžete chtít provést změny ve vlastnostech sloupce a nemusíte ho k tomu úplně odstranit.

Tento dotaz přejmenoval sloupec uživatele na "user_name" a změnil jeho typ z VARCHAR(20) na VARCHAR(30). Tato změna by neměla změnit údaje v tabulce.

VLOŽIT: Přidání informací do tabulky

Pomocí následujícího dotazu doplníme do tabulky nějaké informace.

Jak vidíte, VALUES() obsahuje seznam hodnot oddělených čárkami. Všechny hodnoty jsou uzavřeny v jednotlivých sloupcích. A hodnoty musí být v pořadí sloupců, které byly definovány při vytváření tabulky.

Všimněte si, že první hodnota je NULL pro pole PRIMARY KEY s názvem "user_id". Děláme to tak, že ID se generuje automaticky, protože sloupec má vlastnost AUTO_INCREMENT. Když jsou informace přidány poprvé, ID bude 1. Další řádek bude 2 a tak dále...

ALTERNATIVNÍ MOŽNOST

Existuje další možnost dotazu pro přidání řádků.

Tentokrát používáme klíčové slovo SET místo VALUES a nemá závorky. Existuje několik nuancí:

Sloupec můžete přeskočit. Například jsme nepřiřadili hodnotu "user_id", která by měla výchozí hodnotu AUTO_INCREMENT. Pokud vynecháte sloupec s typem VARCHAR, bude přidán prázdný řádek.

Každý sloupec musí být označen jménem. Z tohoto důvodu mohou být uvedeny v libovolném pořadí, na rozdíl od předchozí verze.

ALTERNATIVNÍ MOŽNOST 2

Zde je další možnost.

Opět, protože existují odkazy na název sloupce, můžete hodnoty nastavit v libovolném pořadí.

LAST_INSERT_ID()

Tento dotaz můžete použít k získání ID, pro které bylo AUTO_INCREMENT poslední řada aktuální relace.

TEĎ()

Nyní je čas ukázat, jak můžete použít funkci MySQL v dotazech.

Výstup funkce NOW(). aktuální datum. Můžete jej tedy použít k automatickému nastavení data sloupce na aktuální, když vložíte nový řádek.

Upozorňujeme, že jsme obdrželi 1 upozornění, ale ignorujte ho. Důvodem je, že NOW() také slouží k výstupu dočasných informací.

VYBRAT: Čtení dat z tabulky

Pokud přidáme informace do tabulky, pak by bylo logické naučit se je číst odtud. Zde nám pomůže dotaz SELECT.

Níže je uveden nejjednodušší možný dotaz SELECT pro čtení tabulky.

V tomto případě hvězdička (*) znamená, že jsme si vyžádali všechna pole z tabulky. Pokud chcete pouze určité sloupce, bude dotaz vypadat takto.

StavKDE

Nejčastěji nás nezajímají všechny sloupce, ale jen některé. Předpokládejme například, že pouze potřebujeme e-mailová adresa pro uživatele "nettuts".

WHERE umožňuje nastavit podmínky v dotazu a provádět podrobné výběry.

Všimněte si, že pro rovnost se používá jedno rovnítko (=), nikoli dvě, jako při programování.

Můžete také použít přirovnání.

A nebo NEBO lze použít ke kombinaci podmínek:

Všimněte si, že číselné hodnoty nesmí být v uvozovkách.

V()

To je užitečné pro vzorkování více hodnot

JAKO

Umožňuje zadávat požadavky „zástupné karty“.

Ikona % se používá jako „zástupný znak“.

StavTo znamená, že na svém místě může být cokoli.

OBJEDNAT PODLE

Pokud chcete získat výsledek v uspořádané podobě podle jakéhokoli kritéria

Výchozí pořadí je ASC (od nejmenšího po největší). Pro opak se používá DESC.

LIMIT ... OFFSET ...

Můžete omezit počet vrácených výsledků.

LIMIT 2 bere pouze první 2 výsledky. LIMIT 1 OFFSET 2 získá 1 výsledek po prvních 2. LIMIT 2, 1 znamená totéž (na prvním místě je offset a poté limit ). AKTUALIZOVAT:

Proveďte změny informací v tabulce

Tento dotaz se používá ke změně informací v tabulce.

Ve většině případů se používá ve spojení s klauzulí WHERE, protože s největší pravděpodobností budete chtít provést změny v určitých sloupcích. Pokud klauzule WHERE není, změny ovlivní všechny řádky.

Můžete také použít LIMIT k omezení počtu řádků, ve kterých je třeba provést změny. VYMAZAT:

Odstranění informací z tabulky

Stejně jako UPDATE se tento dotaz používá s WHERE:

ODSTRANIT OD uživatelů;

Ale je lepší použít ZKRÁTIT

Kromě smazání tento požadavek také resetuje hodnoty AUTO_INCREMENT a při opětovném přidávání řádků začne odpočítávání od nuly. VYMAZAT to neudělá a odpočítávání pokračuje.

Zakázání hodnot malých písmen a speciálních slov

Hodnoty řetězce

Některé znaky je třeba deaktivovat ( uniknout ), nebo mohou nastat problémy.

K tomu se používá zpětné lomítko.(\).

Zvláštní slova

Protože v MySQL existuje mnoho speciálních slov ( VYBRAT nebo AKTUALIZOVAT ), abyste předešli chybám při jejich používání, musíte použít uvozovky. Ale ne obyčejné citáty, ale takhle(`).

To znamená, že budete muset přidat sloupec s názvem " vymazat “, musíte to udělat takto:

Závěr

Děkuji, že jste dočetli až do konce. Doufám, že vám tento článek pomohl. Ještě není konec! Bude pokračování :).




Nahoru