{"id":104,"date":"2023-01-31T10:07:00","date_gmt":"2023-01-31T09:07:00","guid":{"rendered":"https:\/\/josefnemec.cz\/blog\/?p=104"},"modified":"2024-12-31T10:08:47","modified_gmt":"2024-12-31T09:08:47","slug":"co-je-sql-a-proc-je-tak-dulezite","status":"publish","type":"post","link":"https:\/\/josefnemec.cz\/blog\/technologie\/co-je-sql-a-proc-je-tak-dulezite\/","title":{"rendered":"Co je SQL a pro\u010d je tak d\u016fle\u017eit\u00e9?"},"content":{"rendered":"\n<p>SQL (Structured Query Language) je jazyk ur\u010den\u00fd pro komunikaci s datab\u00e1zemi. Umo\u017e\u0148uje u\u017eivatel\u016fm ukl\u00e1dat, manipulovat a na\u010d\u00edtat data ulo\u017een\u00e1 v rela\u010dn\u00edch datab\u00e1z\u00edch. SQL je standardizovan\u00fd jazyk, co\u017e znamen\u00e1, \u017ee jeho z\u00e1kladn\u00ed syntax je univerz\u00e1ln\u00ed a podporuj\u00ed ji r\u016fzn\u00e9 syst\u00e9my pro spr\u00e1vu datab\u00e1z\u00ed (DBMS) jako MySQL, PostgreSQL nebo SQLite.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Z\u00e1kladn\u00ed principy SQL<\/h3>\n\n\n\n<p>SQL pracuje s tabulkami, kter\u00e9 jsou organizov\u00e1ny do sloupc\u016f a \u0159\u00e1dk\u016f. Sloupce ur\u010duj\u00ed typy dat (nap\u0159\u00edklad jm\u00e9no, v\u011bk, email), zat\u00edmco \u0159\u00e1dky p\u0159edstavuj\u00ed jednotliv\u00e9 z\u00e1znamy.<\/p>\n\n\n\n<p>Nap\u0159\u00edklad tabulka <code>produkty<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>id<\/th><th>nazev<\/th><th>cena<\/th><\/tr><tr><td>1<\/td><td>Notebook<\/td><td>20000<\/td><\/tr><tr><td>2<\/td><td>Mobiln\u00ed telefon<\/td><td>15000<\/td><\/tr><tr><td>3<\/td><td>Tablet<\/td><td>10000<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Z\u00e1kladn\u00ed SQL p\u0159\u00edkazy<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>SELECT:<\/strong> Na\u010d\u00edt\u00e1n\u00ed dat z tabulky:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM produkty;<\/code><\/pre>\n\n\n\n<p>Tento p\u0159\u00edkaz vr\u00e1t\u00ed v\u0161echny sloupce a \u0159\u00e1dky z tabulky <code>produkty<\/code>.<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>INSERT:<\/strong> Vlo\u017een\u00ed nov\u00e9ho z\u00e1znamu:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO produkty (nazev, cena) VALUES ('Monitor', 5000);<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>UPDATE:<\/strong> Aktualizace st\u00e1vaj\u00edc\u00edho z\u00e1znamu:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>UPDATE produkty SET cena = 18000 WHERE id = 1;<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>DELETE:<\/strong> Smaz\u00e1n\u00ed z\u00e1znamu:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>DELETE FROM produkty WHERE id = 3;<\/code><\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>WHERE:<\/strong> Filtrov\u00e1n\u00ed v\u00fdsledk\u016f:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM produkty WHERE cena &gt; 10000;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">SQL v kontextu rela\u010dn\u00edch datab\u00e1z\u00ed<\/h3>\n\n\n\n<p>Rela\u010dn\u00ed datab\u00e1ze organizuj\u00ed data do tabulek, kter\u00e9 mohou b\u00fdt propojeny relacemi. SQL umo\u017e\u0148uje spojovat tyto tabulky pomoc\u00ed p\u0159\u00edkaz\u016f jako <code>JOIN<\/code>. Nap\u0159\u00edklad:<\/p>\n\n\n\n<p>Tabulka <code>zakaznici<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>id<\/td><td>jmeno<\/td><\/tr><tr><td>1<\/td><td>Josef<\/td><\/tr><tr><td>2<\/td><td>Anna<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Tabulka <code>objednavky<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>id<\/td><td>produkt_id<\/td><td>zakaznik_id<\/td><\/tr><tr><td>1<\/td><td>2<\/td><td>1<\/td><\/tr><tr><td>2<\/td><td>1<\/td><td>2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>SQL dotaz na z\u00edsk\u00e1n\u00ed v\u0161ech objedn\u00e1vek s informacemi o z\u00e1kazn\u00edc\u00edch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT zakaznici.jmeno, produkty.nazev\nFROM objednavky\nJOIN zakaznici ON objednavky.zakaznik_id = zakaznici.id\nJOIN produkty ON objednavky.produkt_id = produkty.id;<\/code><\/pre>\n\n\n\n<p>V\u00fdsledek:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>jmeno<\/td><td>nazev<\/td><\/tr><tr><td>Josef<\/td><td>Mobiln\u00ed telefon<\/td><\/tr><tr><td>Anna<\/td><td>Notebook<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pro\u010d se u\u010dit SQL?<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Univerz\u00e1lnost:<\/strong> SQL je standardn\u00ed jazyk pro pr\u00e1ci s datab\u00e1zemi, a\u0165 u\u017e jde o mal\u00e9 projekty nebo rozs\u00e1hl\u00e9 aplikace.<\/li>\n\n\n\n<li><strong>Efektivita:<\/strong> SQL umo\u017e\u0148uje rychl\u00e9 a p\u0159esn\u00e9 zpracov\u00e1n\u00ed dat.<\/li>\n\n\n\n<li><strong>\u0160irok\u00e9 vyu\u017eit\u00ed:<\/strong> SQL je z\u00e1kladn\u00ed dovednost pro datov\u00e9 analytiky, v\u00fdvoj\u00e1\u0159e i administr\u00e1tory datab\u00e1z\u00ed.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">P\u0159\u00edklad pou\u017eit\u00ed SQL v re\u00e1ln\u00e9m projektu<\/h3>\n\n\n\n<p>P\u0159edstavte si e-shop, kde jsou produkty a u\u017eivatel\u00e9 ulo\u017eeni v datab\u00e1zi. Pomoc\u00ed SQL m\u016f\u017eete z\u00edskat p\u0159ehled o tom, kte\u0159\u00ed u\u017eivatel\u00e9 nakoupili konkr\u00e9tn\u00ed produkty.<\/p>\n\n\n\n<p>P\u0159\u00edklad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$query = \"SELECT zakaznici.jmeno, produkty.nazev\n          FROM objednavky\n          JOIN zakaznici ON objednavky.zakaznik_id = zakaznici.id\n          JOIN produkty ON objednavky.produkt_id = produkty.id\";\n$result = $pdo-&gt;query($query);\n\nforeach ($result as $row) {\n    echo $row&#91;'jmeno'] . \" nakoupil: \" . $row&#91;'nazev'] . \"&lt;br&gt;\";\n}<\/code><\/pre>\n\n\n\n<p>V\u00fdstup:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Josef nakoupil: Mobiln\u00ed telefon\nAnna nakoupila: Notebook<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">V\u00fdhody a nev\u00fdhody SQL<\/h3>\n\n\n\n<p><strong>V\u00fdhody:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Jednoduchost a \u010ditelnost.<\/li>\n\n\n\n<li>Standardizovan\u00fd jazyk podporovan\u00fd v\u011bt\u0161inou DBMS.<\/li>\n\n\n\n<li>V\u00fdkonnost pro dotazy na velk\u00e9 mno\u017estv\u00ed dat.<\/li>\n<\/ul>\n\n\n\n<p><strong>Nev\u00fdhody:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Slo\u017eit\u011bj\u0161\u00ed \u00fapravy p\u0159i zm\u011bn\u00e1ch struktury datab\u00e1ze.<\/li>\n\n\n\n<li>Omezen\u00e9 mo\u017enosti pr\u00e1ce s nestrukturovan\u00fdmi daty.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Jak za\u010d\u00edt s SQL?<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Zvolte DBMS:<\/strong> Vyberte si syst\u00e9m jako MySQL, PostgreSQL nebo SQLite.<\/li>\n\n\n\n<li><strong>Nau\u010dte se z\u00e1klady:<\/strong> Za\u010dn\u011bte se z\u00e1kladn\u00edmi p\u0159\u00edkazy jako <code>SELECT<\/code>, <code>INSERT<\/code>, <code>UPDATE<\/code>, <code>DELETE<\/code>.<\/li>\n\n\n\n<li><strong>Vyzkou\u0161ejte n\u00e1stroje:<\/strong> Pou\u017eijte rozhran\u00ed jako phpMyAdmin nebo p\u0159\u00edkazovou \u0159\u00e1dku.<\/li>\n\n\n\n<li><strong>Praktikujte:<\/strong> Experimentujte s re\u00e1ln\u00fdmi sc\u00e9n\u00e1\u0159i a daty.<\/li>\n<\/ol>\n\n\n\n<p>SQL je nepostradateln\u00fdm n\u00e1strojem pro ka\u017ed\u00e9ho, kdo pracuje s daty. D\u00edky sv\u00e9 jednoduchosti a univerz\u00e1lnosti z\u016fst\u00e1v\u00e1 jedn\u00edm z nejd\u016fle\u017eit\u011bj\u0161\u00edch jazyk\u016f v oblasti datab\u00e1z\u00ed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL (Structured Query Language) je jazyk ur\u010den\u00fd pro komunikaci s datab\u00e1zemi. Umo\u017e\u0148uje u\u017eivatel\u016fm ukl\u00e1dat, manipulovat a na\u010d\u00edtat data ulo\u017een\u00e1 v rela\u010dn\u00edch datab\u00e1z\u00edch. SQL je standardizovan\u00fd jazyk, co\u017e znamen\u00e1, \u017ee jeho z\u00e1kladn\u00ed syntax je univerz\u00e1ln\u00ed a podporuj\u00ed ji r\u016fzn\u00e9 syst\u00e9my pro<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[77],"tags":[75,73,47,74,49,78],"class_list":["post-104","post","type-post","status-publish","format-standard","hentry","category-technologie","tag-mssql","tag-mysql","tag-php","tag-postgrsql","tag-programovani","tag-sql"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/comments?post=104"}],"version-history":[{"count":1,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"predecessor-version":[{"id":105,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/104\/revisions\/105"}],"wp:attachment":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}