Průvodci

Co je SQL? Jazyk databází jednoduše vysvětlený

SQL (Structured Query Language, říká se „ES-KU-EL“ nebo „sequel“) je standardní jazyk pro práci s relačními databázemi, tedy s těmi, které ukládají data do tabulek s řádky a sloupci, například Postgres, MySQL, SQLite a SQL Server. SQL používáte, když se na data ptáte („kteří zákazníci si tento měsíc rezervovali?“) a když přidáváte, měníte nebo odstraňujete záznamy. Existuje od 70. let, je mezinárodním standardem a pohání velkou část aplikací na světě.

Proč na SQL záleží, když stavíte s AI

Když po nástroji na tvorbu aplikací s AI chcete „ukládat objednávky“ nebo „ukázat seznam nadcházejících rezervací“, musí s databází něco komunikovat. A ve většině aplikací je to SQL, buď napsané přímo, nebo vygenerované přes ORM.

SQL psát nemusíte, ale trochu porozumění se vyplatí:

  • Můžete kontrolovat svá data. Krátký dotaz odpoví na „kolik registrací jsme tento týden získali?“ rychleji, než když postavíte novou obrazovku.
  • Můžete si objednat lepší přehledy. „Seskup tržby podle měsíce a služby“ je pojem ze SQL. Když ho znáte, je váš požadavek jasnější.
  • Můžete odhalit nebezpečné změny. DELETE nebo UPDATE bez klauzule WHERE ovlivní každý řádek. To stojí za to zachytit, než se spustí.
  • Vaše data nejsou uzamčená. SQL je sdílený standard, takže data v SQL databázi mohou číst a přesouvat mnohé nástroje.

Každodenní přirovnání

Představte si velmi dobře uspořádanou knihovnu s knihovnicí, která mluví jen přesným a jednoduchým jazykem.

Regály neprocházíte sami. Knihovnici předáte lístek: „Najdi všechny knihy tohoto autora, vydané po roce 2010, nejnovější jako první.“ Knihovnice budovu zná zevnitř a vrátí přesně tyto knihy ve správném pořadí.

SQL je jazyk na tom lístku. Říkáte, co chcete, ne jak to najít. Databáze si sama určí nejrychlejší cestu.

Jak SQL funguje: tabulky, řádky a sloupce

Relační databáze drží data v tabulkách. Každá tabulka obsahuje jeden druh věcí, každý řádek je jeden záznam a každý sloupec je jeden údaj:

customers

idnameemailcity
1Lena Ortizlena@example.comLisbon
2Sam Patelsam@example.comLeeds

orders

idcustomer_idtotalplaced_at
101142.002026-09-20
102218.502026-09-22
103125.002026-09-27

Sloupec customer_id propojuje každou objednávku se zákazníkem. Právě toto propojení dělá databázi „relační“.

Praktický příklad: odpovídání na skutečné otázky

1. Čtení dat — „ukaž mi všechny zákazníky z Lisabonu“:

SELECT name, email
FROM customers
WHERE city = 'Lisbon';

2. Řazení a omezení — „pět nejnovějších objednávek“:

SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;

3. Spojení tabulek — „každá objednávka se jménem zákazníka“:

SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;

4. Souhrn — „celkem utraceno na zákazníka“:

SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;

S ukázkovými daty to vrátí Lenu Ortiz s 67,00 a Sama Patela s 18,50.

5. Změna dat:

INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');

UPDATE customers SET city = 'Porto' WHERE id = 1;

DELETE FROM orders WHERE id = 102;

To odpovídá čtyřem základním akcím téměř každé aplikace: vytvořit, číst, upravit a smazat, známým jako CRUD.

Jedno varování: UPDATE customers SET city = 'Porto'; bez klauzule WHERE změní každého zákazníka. Vždy zkontrolujte WHERE, než změnu spustíte.

Hlavní části SQL

PříkazCo dělá
SELECTČte data
INSERTPřidává nové řádky
UPDATEMění existující řádky
DELETEOdstraňuje řádky
CREATE TABLE / ALTER TABLEVytvoří nebo změní strukturu tabulky
WHEREFiltruje, které řádky jsou ovlivněny
JOINSpojuje související tabulky
GROUP BYShrnuje řádky do skupin pomocí COUNT, SUM, AVG
ORDER BY / LIMITŘadí výsledky a omezuje jejich počet

SQL je standardizované, ale každá databáze přidává vlastní rozšíření, kterému se říká dialekt. Postgres, MySQL i SQLite rozumí výše uvedeným příkladům, ale detaily, jako jsou funkce pro datum, se mírně liší.

Klíčové pojmy

PojemVýznam
Dotaz (query)Příkaz SQL, zejména ten, který čte data.
Tabulka / řádek / sloupecDruh věci / jeden záznam / jeden atribut.
Primární klíčSloupec, který jednoznačně identifikuje každý řádek, obvykle id.
Cizí klíčSloupec ukazující na řádek v jiné tabulce, například customer_id.
IndexVyhledávací struktura, která hledání ve sloupci výrazně zrychlí.
SchémaStruktura všech tabulek a sloupců.
TransakceSkupina změn, které buď všechny uspějí, nebo všechny selžou.
SQL injectionÚtok, při kterém se uživatelský vstup propašuje do dotazu. Předchází mu parametrizované dotazy.

Časté mylné představy

  • „SQL je databáze.“ SQL je jazyk; Postgres, MySQL a SQLite jsou databáze, které ním mluví.
  • „SQL je staré, takže je zastaralé.“ Je vyspělé, ne zastaralé. Moderní databáze a datové nástroje ho pořád používají a nové často přidávají podporu SQL.
  • „SQL používají jen vývojáři.“ Analytici, marketéři a zakladatelé používají jednoduché dotazy každý den.
  • „SQL nezvládne pružná data.“ Mnoho SQL databází ukládá také JSON. Postgres má například typ jsonb. Viz SQL vs NoSQL.
  • „Nechat AI spouštět libovolné SQL na produkci je v pořádku.“ Čtení je málo riskantní; změny a mazání na živých datech si zaslouží zálohu a druhý pohled. Viz jak zálohovat databázi své aplikace.

Na co se ptát svého AI nástroje

  • „Ukaž mi tabulky v mé databázi a co znamená každý sloupec.“
  • „Napiš dotaz jen pro čtení: kolik nových registrací bylo za každý den za posledních 30 dní?“
  • „Před spuštěním jakéhokoli UPDATE nebo DELETE mi ukaž dotaz a kolik řádků ovlivní.“
  • „Přidej indexy na sloupce, podle kterých nejčastěji filtrujeme a řadíme.“
  • „Zajisti, aby každý dotaz, který používá uživatelský vstup, byl parametrizovaný.“
  • „Obal aktualizace objednávek a plateb do transakce, aby se nemohly zdařit jen napůl.“

SQL v Mythexu

Když vaše aplikace potřebuje ukládat data, Mythex do projektu přidá vyhrazenou Postgres databázi. Požádejte o ni v chatu, například „ulož e-maily z čekací listiny do databáze“, nebo použijte příkaz /database (Databáze). Agent vytvoří tabulky a napíše dotazy a v režimu Ask ho můžete požádat, aby jakýkoli dotaz srozumitelně vysvětlil. Více o samotné databázi najdete v článku co je Postgres.

Otázky

Co je SQL jednoduše řečeno?

SQL (Structured Query Language) je standardní jazyk pro práci s relačními databázemi. Používá se k tomu, abyste se na data ptali, například „které objednávky přišly tento týden“, a abyste přidávali, měnili nebo mazali záznamy.

Jak se SQL vyslovuje?

Obě výslovnosti, „es-kú-el“ (vyslovení jednotlivých písmen) i „sequel“, jsou běžné a správné. Jazyk se původně jmenoval SEQUEL, odtud pochází druhá výslovnost.

Je SQL programovací jazyk?

SQL je dotazovací jazyk navržený pro správu dat. Popíšete, jaký výsledek chcete, a databáze si sama zjistí, jak ho získat. Samo o sobě se jím nestavějí celé aplikace, ale je součástí téměř každé aplikace, která používá relační databázi.

Je SQL těžké naučit se?

Základy jsou přístupné: SELECT, WHERE, ORDER BY, INSERT, UPDATE a DELETE pokrývají většinu běžných potřeb a čtou se téměř jako angličtina. Spojení tabulek, seskupování a ladění výkonu zvládnete déle.

Potřebuji znát SQL, abych s AI postavil aplikaci?

Ne. Nástroj s AI napíše SQL nebo kód databáze za vás. Trochu znalostí se ale hodí, když chcete zkontrolovat svá data, požádat o přehledy nebo odhalit rizikové změny dřív, než nastanou.

Mythex · Pricing · Vytvořte cokoli s AI · Šablony webů a aplikací · Mythex v porovnání · Slovník tvorby aplikací s AI · Bezplatné nástroje pro tvorbu aplikací s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)