{"id":102,"date":"2023-01-31T10:05:00","date_gmt":"2023-01-31T09:05:00","guid":{"rendered":"https:\/\/josefnemec.cz\/blog\/?p=102"},"modified":"2024-12-31T10:07:19","modified_gmt":"2024-12-31T09:07:19","slug":"co-je-mysql-a-proc-je-tak-oblibena","status":"publish","type":"post","link":"https:\/\/josefnemec.cz\/blog\/technologie\/co-je-mysql-a-proc-je-tak-oblibena\/","title":{"rendered":"Co je MySQL a pro\u010d je tak obl\u00edben\u00e1?"},"content":{"rendered":"\n<p>MySQL je jedn\u00edm z nejpopul\u00e1rn\u011bj\u0161\u00edch syst\u00e9m\u016f pro spr\u00e1vu rela\u010dn\u00edch datab\u00e1z\u00ed na sv\u011bt\u011b. Byla vytvo\u0159ena v roce 1995 \u0161v\u00e9dskou spole\u010dnost\u00ed MySQL AB a dnes je vlastn\u011bna spole\u010dnost\u00ed Oracle Corporation. MySQL je open-source software, co\u017e znamen\u00e1, \u017ee je zdarma dostupn\u00e1, a z\u00e1rove\u0148 existuje komer\u010dn\u00ed verze s pokro\u010dil\u00fdmi funkcemi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak MySQL funguje?<\/h3>\n\n\n\n<p>MySQL je syst\u00e9m spr\u00e1vy rela\u010dn\u00edch datab\u00e1z\u00ed (RDBMS), co\u017e znamen\u00e1, \u017ee ukl\u00e1d\u00e1 data do tabulek spojen\u00fdch vz\u00e1jemn\u00fdmi relacemi. Data jsou organizov\u00e1na tak, aby byla snadno p\u0159\u00edstupn\u00e1 a spravovateln\u00e1 pomoc\u00ed jazyka SQL (Structured Query Language).<\/p>\n\n\n\n<p>Nap\u0159\u00edklad tabulka <code>uzivatele<\/code> m\u016f\u017ee vypadat takto:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>id<\/th><th>jmeno<\/th><th>email<\/th><\/tr><tr><td>1<\/td><td>Josef<\/td><td><a>josef@email.cz<\/a><\/td><\/tr><tr><td>2<\/td><td>Anna<\/td><td><a>anna@email.cz<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>SQL dotazy v\u00e1m umo\u017e\u0148uj\u00ed data do t\u00e9to tabulky vkl\u00e1dat, \u010d\u00edst, upravovat nebo mazat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pro\u010d pou\u017e\u00edvat MySQL?<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>V\u00fdkon:<\/strong> MySQL je optimalizov\u00e1na pro rychlost a efektivitu, co\u017e ji \u010din\u00ed ide\u00e1ln\u00ed pro webov\u00e9 aplikace.<\/li>\n\n\n\n<li><strong>Snadn\u00e1 integrace:<\/strong> Dob\u0159e spolupracuje s PHP a dal\u0161\u00edmi programovac\u00edmi jazyky.<\/li>\n\n\n\n<li><strong>\u0160k\u00e1lovatelnost:<\/strong> Lze ji pou\u017e\u00edvat pro mal\u00e9 projekty i pro rozs\u00e1hl\u00e9 aplikace.<\/li>\n\n\n\n<li><strong>Podpora komunity:<\/strong> D\u00edky sv\u00e9 popularit\u011b m\u00e1 MySQL rozs\u00e1hlou komunitu, kter\u00e1 poskytuje podporu a sd\u00edl\u00ed n\u00e1stroje.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Jak se p\u0159ipojit k MySQL z PHP<\/h3>\n\n\n\n<p>P\u0159ipojen\u00ed k MySQL z PHP je jednoduch\u00e9 d\u00edky rozhran\u00ed PDO (PHP Data Objects). Uk\u00e1zkov\u00fd k\u00f3d vypad\u00e1 takto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\ntry {\n    $dsn = 'mysql:host=localhost;dbname=mojedb';\n    $username = 'root';\n    $password = '';\n\n    $pdo = new PDO($dsn, $username, $password);\n    $pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n    echo \"P\u0159ipojen\u00ed \u00fasp\u011b\u0161n\u00e9!\";\n} catch (PDOException $e) {\n    echo \"Chyba p\u0159ipojen\u00ed: \" . $e-&gt;getMessage();\n}\n?&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Z\u00e1kladn\u00ed SQL dotazy<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Vlo\u017een\u00ed dat:<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO uzivatele (jmeno, email) VALUES ('Petr', 'petr@email.cz');<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Z\u00edsk\u00e1n\u00ed dat:<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM uzivatele;<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Aktualizace dat:<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>UPDATE uzivatele SET email = 'novy@email.cz' WHERE id = 1;<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Smaz\u00e1n\u00ed dat:<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>DELETE FROM uzivatele WHERE id = 2;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">P\u0159\u00edklad pou\u017eit\u00ed MySQL v re\u00e1ln\u00e9m projektu<\/h3>\n\n\n\n<p>P\u0159edstavme si, \u017ee vytv\u00e1\u0159\u00edte jednoduchou webovou aplikaci, kde si u\u017eivatel\u00e9 mohou vytvo\u0159it \u00fa\u010det. Po registraci jejich data ulo\u017e\u00edte do datab\u00e1ze a p\u0159i p\u0159ihl\u00e1\u0161en\u00ed je ov\u011b\u0159\u00edte.<\/p>\n\n\n\n<p>Registrace:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$stmt = $pdo-&gt;prepare('INSERT INTO uzivatele (jmeno, email) VALUES (?, ?)');\n$stmt-&gt;execute(&#91;'Karel', 'karel@email.cz']);<\/code><\/pre>\n\n\n\n<p>P\u0159ihl\u00e1\u0161en\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$stmt = $pdo-&gt;prepare('SELECT * FROM uzivatele WHERE email = ?');\n$stmt-&gt;execute(&#91;'karel@email.cz']);\n$user = $stmt-&gt;fetch();\nif ($user) {\n    echo \"U\u017eivatel nalezen: \" . $user&#91;'jmeno'];\n} else {\n    echo \"U\u017eivatel neexistuje.\";\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">V\u00fdhody a nev\u00fdhody MySQL<\/h3>\n\n\n\n<p><strong>V\u00fdhody:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rychlost a spolehlivost.<\/li>\n\n\n\n<li>Snadn\u00e1 integrace s programovac\u00edmi jazyky.<\/li>\n\n\n\n<li>\u0160irok\u00e1 podpora komunitou.<\/li>\n\n\n\n<li>Open-source s mo\u017enost\u00ed komer\u010dn\u00edho vyu\u017eit\u00ed.<\/li>\n<\/ul>\n\n\n\n<p><strong>Nev\u00fdhody:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Omezen\u00ed p\u0159i pr\u00e1ci s velmi komplexn\u00edmi dotazy nebo pokro\u010dil\u00fdmi funkcemi.<br>Nevy\u017eaduje transakce, kter\u00e9 jsou nap\u0159\u00edklad v PostgreSql nutnost\u00ed. <\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Jak za\u010d\u00edt s MySQL<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Instalace:<\/strong> Nainstalujte MySQL server (nap\u0159. pomoc\u00ed XAMPP, WAMP nebo Dockeru).<\/li>\n\n\n\n<li><strong>Spr\u00e1va:<\/strong> Pou\u017eijte n\u00e1stroje jako phpMyAdmin nebo MySQL Workbench pro spr\u00e1vu datab\u00e1z\u00ed.<\/li>\n\n\n\n<li><strong>Z\u00e1klady SQL:<\/strong> Nau\u010dte se z\u00e1kladn\u00ed p\u0159\u00edkazy SQL, jako jsou <code>SELECT<\/code>, <code>INSERT<\/code>, <code>UPDATE<\/code> a <code>DELETE<\/code>.<\/li>\n\n\n\n<li><strong>Integrace:<\/strong> Vyzkou\u0161ejte p\u0159ipojen\u00ed MySQL s va\u0161\u00ed aplikac\u00ed v PHP nebo jin\u00e9m jazyce.<\/li>\n<\/ol>\n\n\n\n<p>MySQL je siln\u00fd n\u00e1stroj pro spr\u00e1vu datab\u00e1z\u00ed, kter\u00fd z\u016fst\u00e1v\u00e1 obl\u00edbenou volbou jak pro mal\u00e9 projekty, tak pro rozs\u00e1hl\u00e9 aplikace. D\u00edky sv\u00e9 jednoduchosti a v\u00fdkonu je skv\u011bl\u00fdm v\u00fdchoz\u00edm bodem pro ka\u017ed\u00e9ho v\u00fdvoj\u00e1\u0159e.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MySQL je jedn\u00edm z nejpopul\u00e1rn\u011bj\u0161\u00edch syst\u00e9m\u016f pro spr\u00e1vu rela\u010dn\u00edch datab\u00e1z\u00ed na sv\u011bt\u011b. Byla vytvo\u0159ena v roce 1995 \u0161v\u00e9dskou spole\u010dnost\u00ed MySQL AB a dnes je vlastn\u011bna spole\u010dnost\u00ed Oracle Corporation. MySQL je open-source software, co\u017e znamen\u00e1, \u017ee je zdarma dostupn\u00e1, a z\u00e1rove\u0148<\/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":[22,73,47,74,78],"class_list":["post-102","post","type-post","status-publish","format-standard","hentry","category-technologie","tag-devops","tag-mysql","tag-php","tag-postgrsql","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\/102","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=102"}],"version-history":[{"count":1,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/102\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}