sql >> Databáze >  >> RDS >> Mysql

Co je MySQL:Přehled

Mnoho programů potřebuje ukládat nebo uchovávat data pro pozdější použití a číst zaznamenaná data. Ačkoli existuje mnoho způsobů, jak toho dosáhnout, nejběžnějším přístupem je použití systému správy relačních databází (RDBMS). MySQL je průmyslový standard open-source RDBMS, který byl široce adoptován projekty vývoje softwaru. Tato příručka poskytuje přehled o MySQL a vysvětluje hlavní koncepty RDBMS.

Co je to relační databáze (RDBMS)?

Databáze je aplikace pro ukládání a získávání dat. Ačkoli se mechanismy liší, většina databází poskytuje rozhraní API umožňující uživatelům přidávat, mazat, přistupovat, vyhledávat a spravovat svá data. Alternativně k použití databáze mohou být data uložena v textových souborech nebo hash tabulkách. Tato technika však není tak rychlá nebo pohodlná jako použití databáze a v moderních systémech se používá jen zřídka.

Rané databázové aplikace se vyvinuly v moderní relační databáze , který uživatelům umožňuje ukládat obrovské množství dat. RDBMS již nenutí uživatele ukládat data do jedné velké tabulky. Poskytuje strukturovanější způsoby rozdělení dat a je navržen pro efektivnější přístup. Aplikace RDBMS jsou optimalizovány pro rychlé čtení a zápis a hromadný přenos informací.

Návrháři databází konceptualizují a organizují data pomocí tabulek , sloupce a řádky . Řádek se také nazývá záznam nebo n-tice. Současné relační databáze strukturují data pomocí následujících konceptů:

  • Každá databáze obsahuje jednu nebo více tabulek.
  • Když uživatel vytvoří tabulku, určí současně sloupce v tabulce.
  • Každý sloupec představuje určitý atribut nebo pole v záznamu. Sloupec je navržen tak, aby obsahoval data určitého datového typu, například VARCHAR , což je zkratka pro řetězec proměnné délky.
  • Tabulka obsahuje shluk řádků.
  • Každý řádek v tabulce představuje jedinečný záznam databáze. Každý sloupec v řádku obsahuje samostatné pole v tomto záznamu.
  • Databázová tabulka je jako matice dva na dva. Každý čtverec uvnitř matice obsahuje část dat.

RDBMS je považován za relační, protože umožňuje uživatelům definovat vztahy v rámci a mezi různými tabulkami pomocí klíčů a indexů. Relační databáze umožňuje uživateli poskytnout nebo vygenerovat primární klíč pro každý řádek. SQL může zaručit, že tento klíč je v tabulce jedinečný. Pole v těchto tabulkách spolu mohou souviset na základě jejich primárního a cizího klíče. Tyto vztahy pomáhají strukturovat a organizovat databázi a omezují množství duplikace dat.

Aplikace RDBMS vždy poskytuje možnosti uvedené níže. Jednotlivé aplikace mohou nabízet více možností.

  • Umožňuje vytváření, definici, úpravy a odstraňování databázových tabulek, sloupců, řádků, primárních klíčů a indexů.
  • Přijímá dotazy SQL a ukládá nebo načítá relevantní data, přičemž podle potřeby kombinuje informace z různých databázových tabulek.
  • Zaručuje integritu dat a odkazů mezi tabulkami. Například cizí klíč vždy ukazuje na platný řádek v jiné tabulce.
  • Automaticky aktualizuje indexy, časová razítka a další interně generované atributy podle potřeby.

Relační databáze používají Structured Query Language (SQL) k dotazování a aktualizaci databáze. Například klient RDBMS používá SQL INSERT příkaz k přidání nového řádku do jedné z databázových tabulek. Když uživatel přidá nový řádek, současně určí hodnotu pro každý sloupec. Další příkazy SQL se používají k úpravě a mazání řádků, správě položek databáze a načtení seznamu záznamů splňujících specifická kritéria.

Zvažte například databázi pro školu. Tato databáze má několik tabulek pro učitele, studenty, kurzy, učebny a tak dále. Definice Students tabulka může obsahovat sloupce pro jméno a příjmení studenta, ID, třídu, rodinu a další. Každý řádek v této tabulce symbolizuje jednotlivého studenta a slouží k reprezentaci a sběru všech relevantních informací o tomto studentovi. Pokud je jméno studenta „Jan“, first_name sloupec v tomto řádku obsahuje John . ID studenta může sloužit jako index a primární klíč a může být použito pro křížové odkazy na studenta v jiných tabulkách.

Například zjednodušené Students tabulku lze definovat pomocí struktury zobrazené níže. Horní řádek představuje názvy sloupců v tabulce. Níže uvedená tabulka aktuálně obsahuje dva řádky dat, jeden pro každého studenta.

first_name příjmení grade family_id id_studenta
Jan Doe 4 1116 5005
Jane Student 5 1224 5350

Jaké jsou některé běžné termíny RDBMS?

V souvislosti s databázemi se často používají následující termíny:

  • Sloupec: Sada hodnot stejného datového typu, představující jeden atribut v tabulce. Sloupce jsou definovány při vytváření tabulky.
  • Složený klíč: Klíč skládající se z více sloupců. Složený klíč se používá, když jeden sloupec nemůže spolehlivě identifikovat řádek.
  • Databáze: Organizovaná skupina dat, která je uložena elektronicky. Databáze je obvykle organizována do menších shluků informací.
  • Zahraniční klíč: Index používaný k propojení položky tabulky s řádkem v jiné tabulce.
  • Index: Metoda rychlejšího přístupu k záznamům databáze. Index lze vytvořit pomocí libovolné kombinace atributů, ale implementace je specifická pro aplikaci. Databázový rejstřík je podobný rejstříku v knize.
  • Primární klíč: Sloupec sloužící jako index k jedinečné identifikaci řádku uvnitř tabulky. Primární klíč může být buď automaticky vygenerován, nebo definován v definici tabulky. Primární klíč lze použít k vyhledání konkrétního řádku v tabulce.
  • Referenční integrita: Vlastnost interní databáze, která zajišťuje, že cizí klíč vždy odkazuje na platný řádek v jiné tabulce.
  • Systém správy relačních databází (RDBMS): Typ databázového systému založený na vztazích mezi tabulkami a položkami.
  • Řádek: Strukturovaný záznam v tabulce sestávající ze sady souvisejících dat. Každý řádek v tabulce má stejnou strukturu, která odpovídá specifikacím sloupců v definici tabulky. Řádek se také označuje jako záznam nebo n-tice.
  • Structured Query Language (SQL): Zjednodušený doménový programovací jazyk používaný ke správě dat v RDBMS.
  • Tabulka: Kolekce databázových záznamů sestávající z řady řádků a sloupců. Tabulku si lze představit jako dvourozměrnou matici informací.

SQL vs. MySQL

Termíny SQL a MySQL jsou často zaměňovány nebo používány zaměnitelně, ale nejsou stejné. SQL je standardní programovací jazyk pro dotazování aplikací RDBMS. Slouží k zápisu databázových dotazů a lze jej použít s jakýmkoli databázovým systémem, který jej podporuje. MySQL je specifická instance RDBMS, která používá SQL. Uživatelé databáze posílají příkazy SQL do RDBMS, jako je MySQL, aby mohli číst a zapisovat data a spravovat databázi. Neexistuje žádná aplikace s názvem SQL, takže nemá smysl porovnávat „SQL vs MySQL“. Nicméně termín SQL databáze se často používá neformálně jako zkratka pro jakoukoli relační databázi.

Jazyk SQL

Jazyk SQL je specifikován jako řada příkazů. Nepovažuje se za univerzální imperativní programovací jazyk jako Python, protože postrádá celou řadu datových struktur a řídicích příkazů. Místo toho je to doménově specifický jazyk určený pro jediný účel. SQL je určen pro dotazování, definici a manipulaci s daty. Je také navržen tak, aby poskytoval kontrolu přístupu k datům. Jednou z výhod SQL je, že může přistupovat k více záznamům pomocí jediného příkazu. Nespecifikuje, jak má databáze přistupovat k záznamu.

Jazyk SQL se skládá z určených klíčových slov, výrazů, dotazů, příkazů, operátorů a volitelných klauzulí. Identifikátory objektů se používají k odkazování na databázové entity, včetně tabulek a sloupců. SQL podporuje velké množství předdefinovaných datových typů, jako je CHAR , pro znak a INTEGER . Některé z nejdůležitějších SQL operátorů zahrnují = , <> , > , < , IN , LIKE , TRUE , FALSE a NOT . Nejnovější verze SQL nyní podporují jednoduchý CASE prohlášení. Dokumentace MySQL obsahuje více informací o struktuře jazyka SQL, datových typech a příkazech.

Některé z nejrozšířenějších příkazů a klauzulí SQL zahrnují následující:

  • ALTER: Upravuje strukturu databázového objektu.
  • VYTVOŘIT: Vytvoří databázový objekt, například tabulku nebo databázi.
  • SMAZAT: Odebere jeden nebo více existujících řádků z databáze.
  • DROP: Trvale odstraní objekt z databáze.
  • OD: Označuje, kterou tabulku použít pro dotaz.
  • GRANT: Autorizuje uživatele databáze k provedení konkrétní akce.
  • GROUP BY: Klauzule pro uspořádání výstupu z SELECT prohlášení.
  • INSERT: Přidá řádky do databáze.
  • PŘIPOJIT SE: Klauzule určující, jak kombinovat a sestavovat data z více tabulek.
  • SLOUČENÍ: Kombinuje data z více tabulek.
  • OBJEDNAT PODLE: Klauzule pro řazení výstupu z dotazu.
  • VYBRAT: Načte data z jedné nebo více tabulek. Tento příkaz nemění databázi ani nemění žádná data.
  • AKTUALIZACE: Upraví jeden nebo více existujících řádků.
  • KDE: Klauzule k identifikaci řádků, na kterých by měl dotaz fungovat. Obvykle se používá s operátorem porovnání.

Zástupný znak * Operátor se často používá ve spojení s SELECT příkaz. Tento příkaz dává SQL pokyn, aby zobrazil všechny sloupce ve výstupu.

Níže je uvedeno několik příkladů SQL dotazů. Následující příkaz SQL zobrazí name každé třídy v Class databáze pro každý řádek, kde je hodnota subject sloupec je math .

SELECT name
    FROM Class
    WHERE subject='math';

Další příkaz SQL vytvoří Class stůl. CREATE definuje každý sloupec v tabulce spolu s jeho datovým typem v sekvenčním pořadí. VARCHAR datový typ se používá k uložení řetězce proměnné délky. SMALLINT datový typ se používá pro malé celočíselné hodnoty z rozsahu -32768 se znaménkem na 32767 .

CREATE TABLE Class (
    classID smallint,
    name varchar(255),
    subject varchar(255),
    level smallint
);

Co je databáze MySQL?

MySQL je RDBMS, který implementuje SQL. Původně byl navržen pro použití s ​​malými až středně velkými databázemi, ale nyní dokáže zpracovat i velmi velké množství uložených dat. MySQL je napsáno v C/C++ a je většinou kompatibilní se standardem SQL. Přidává však mnohá rozšíření a klade důraz na rychlost a spolehlivost před dokonalou shodu. Podrobnější diskusi o souladu s MySQL a SQL lze nalézt v dokumentaci MySQL o standardech souladu.

Základní verzi MySQL distribuuje Oracle Corporation a je k dispozici zdarma pod open-source licencí. Aktuální verze MySQL je 8.0. MySQL lze použít na jakékoli distribuci Linuxu a na většině ostatních platforem. Je důležitou součástí open-sourcezásobníku LAMP , spolu s Linuxem, Apache a programovacím jazykem PHP. Zásobník LAMP je základním kamenem vývoje open-source webových aplikací na Linuxu. MySQL lze použít jako součást systému klient/server nebo jako součást vestavěného systému.

Jako všechny aplikace RDBMS je MySQL relační databáze. Správci a uživatelé definují vztahy v rámci a mezi tabulkami v databázi. Různé sloupce mohou být označeny jako povinné nebo volitelné a mohou sloužit jako primární klíč nebo jako ukazatel na jinou tabulku. MySQL je stabilní, spolehlivý a snadno použitelný. Zde jsou některé konkrétní výhody MySQL:

  • MySQL je vyspělý, oblíbený a dobře zavedený produkt. Má větší podporu komunity než jiné databáze s otevřeným zdrojovým kódem a lepší referenční materiály a dokumentaci.
  • MySQL lze nakonfigurovat tak, aby byla kompatibilní s ACID při použití s ​​úložným systémem InnoDB. Zkratka ACID znamená atomicita, konzistence, izolace a trvanlivost. To znamená, že může zaručit platnost dat navzdory jakýmkoli chybám, selháním nebo výpadkům.
  • Je známý svým vysokým výkonem díky funkcím, jako jsou optimalizované knihovny tříd, komprese, alokace paměti a hashovací tabulky. Podporuje vícevláknová vlákna jádra pro efektivnější provoz na systémech s více CPU.
  • Podporuje velmi rozsáhlé databáze, které ukládají až stovky milionů záznamů a až 64 indexů na tabulku.
  • MySQL poskytuje rozšířené bezpečnostní mechanismy, včetně šifrování všech hesel.
  • Umožňuje replikaci dat a redundanci pro vyšší spolehlivost.
  • MySQL poskytuje podporu pro aliasy v tabulkách a sloupcích a plnou podporu pro mnoho různých znakových sad.
  • MySQL funguje dobře s PHP, které je široce používáno při vývoji webu.
  • Funguje s mnoha různými kompilátory a na mnoha různých platformách a je navržen tak, aby byl přenosný mezi systémy. Klientské programy mohou být napsány v mnoha jazycích. MySQL poskytuje rozhraní API pro C/C++, PHP, Java, Python, Ruby a Perl.
  • MySQL je k dispozici jako knihovna, kterou lze vložit do samostatných aplikací.
  • MySQL obsahuje několik praktických klientských nástrojů, včetně mysqldump a mysqladmin . Uživatelé mohou ověřit, optimalizovat a opravit tabulky pomocí mysqlcheck program.
  • Open source licence MySQL umožňuje vývojářům přizpůsobit MySQL a upravit zdrojový kód tak, aby vyhovoval jejich požadavkům.

MySQL je také k dispozici v plnohodnotnější verzi Enterprise Edition s plnou zákaznickou podporou. Informace o instalaci MySQL na Ubuntu nebo jiných platformách Linuxu najdete v průvodci Linode o instalaci a konfiguraci MySQL na Ubuntu 20.04.

SQL vs. NoSQL

Systémy NoSQL jsou alternativou k tradičním aplikacím RDBMS založeným na SQL. Jak název napovídá, používají ke zpracování dat nerelační model. Obvykle jsou méně strukturované a flexibilnější než RDBMS. NoSQL systémy nejsou standardizované a mohou mít různé formáty. Obvykle jsou však založeny na páru klíč–hodnota, grafu nebo dokumentu, nikoli na základě tabulky. Některé aplikace NoSQL mohou používat strukturované jazyky specifické pro doménu nebo dokonce paralelně přijímat dotazy SQL. Několik příkladů aplikací NoSQL zahrnuje Redis a MongoDB. Další informace o systémech NoSQL najdete v průvodci Linode pro srovnání mezi databázemi SQL a NoSQL.

Co je klient a server MySQL?

Klient MySQL a server MySQL jsou dvě různé součásti, které spolupracují v síťové architektuře. Obvykle je zde jeden centrální server a jeden nebo více klientů. Aplikace databázového serveru MySQL je nainstalována na hostiteli, často jako součást zásobníku LAMP. Tento server ukládá konfiguraci databáze a data a odpovídá na dotazy klientů. Rovněž vynucuje zabezpečení a jakýkoli systém řízení přístupu a podle potřeby replikuje a archivuje data. Stejný server může hostit více databází pro různé klienty.

Klient MySQL umožňuje uživatelům připojit se k serveru MySQL, buď na stejném systému, nebo na jiném hostiteli. Klient zasílá dotazy SQL na server pro čtení nebo zápis do databáze. Klient MySQL také spravuje, udržuje a zabezpečuje klienta. Samostatný klient se doporučuje pro uživatele, kteří se chtějí pouze připojit ke vzdálené databázi a spouštět dotazy. Správci, kteří chtějí hostovat databázi na serveru, musí nainstalovat celý serverový balíček MySQL. Instalace serveru zahrnuje klienta pro vytvoření a správu databáze.

Standardní klientský nástroj příkazového řádku MySQL se jmenuje mysql . Lze jej nainstalovat bez serverové komponenty pomocí příkazu yum install mysql nebo apt-get install mysql-client . Pro přístup ke klientovi MySQL použijte příkaz mysql <database_name> . Uživatelské jméno, heslo a IP adresu serveru lze zadat pomocí dalších parametrů.

Když se uživatel úspěšně přihlásí, klient zobrazí výzvu MySQL mysql> . Uživatel pak může spouštět příkazy SQL. Další informace o instalaci a používání MySQL naleznete v průvodci Linode o tom, jak se připojit k databázi MySQL nebo MariaDB.

K čemu se používá MySQL?

MySQL je všestranný RDBMS pro použití se sadou dat libovolné velikosti. Lze jej považovat za kdykoli, kdy aplikace musí ukládat a načítat data. MySQL byl původně vyvinut pro malé až středně velké konfigurace jednoho serveru. Ale díky nedávným vylepšením výkonu a škálovatelnosti jej lze použít prakticky kdekoli v aplikaci jakékoli velikosti. Dokonce i velké společnosti včetně Uber, Airbnb a Shopify používají MySQL.

Uživatelé musí nainstalovat MySQL, aby mohli nakonfigurovat WordPress. WordPress používá MySQL k ukládání všech svých dat a konfiguračních souborů a dynamicky interaguje s MySQL při zobrazování a vytváření webových stránek. Uživatelé nemusí nutně rozumět SQL, aby mohli používat WordPress. Může se však hodit při provádění pokročilých úprav. V Linuxu se WordPress často instaluje jako balíček spolu s MySQL a zbytkem zásobníku LAMP. Další informace o tom, jak nakonfigurovat MySQL a WordPress, najdete v průvodci Linode o instalaci WordPressu na Ubuntu 20.04.

Mezi další běžné aplikace pro MySQL patří datové sklady, zpracování transakcí, rezervační systémy, elektronické obchodování a webové databáze. Databáze MySQL může například udržovat seznam produktů a inventář pro internetový obchod.

Závěr

Tato příručka odpovídá na často kladenou otázku „Co je databáze MySQL? MySQL je relační databáze, která organizuje data na základě vztahů mezi tabulkami a poli. Jedná se o typ systému správy relačních databází (RDBMS), který ukládá položky jako řádky v tabulkách. Každý řádek se skládá z několika sloupců, které představují různé atributy datového záznamu. Databázový programovací jazyk SQL se používá k ukládání a načítání dat z MySQL. SQL používá řadu samostatných příkazů a je určen pro práci se systémy RDBMS.

MySQL je známé svou schopností ukládat velké tabulky a obrovské množství dat a také svou rychlostí a spolehlivostí. Poskytuje rozhraní API pro mnoho běžných programovacích jazyků a je dodáván s několika užitečnými nástroji. Server MySQL ukládá data a odpovědi na požadavky klientů MySQL. Klient je vždy přibalen k serveru, ale lze jej použít jako samostatnou aplikaci pro komunikaci se vzdálenými databázemi. MySQL se používá v mnoha široce známých společnostech a je nezbytné pro ty, kteří chtějí používat WordPress. Používá se však také ve webových databázích a datových skladech. Další informace o MySQL naleznete v dokumentaci MySQL.

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Oficiální dokumentace MySQL

  1. Jak mohu zabránit Postgresu vložit poddotaz?

  2. Jak Bootstrap MySQL nebo MariaDB Galera Cluster - Aktualizováno

  3. Jak vybrat a seřadit podle sloupců, které nejsou v SQL příkazu Groupy By - Oracle

  4. .NET Core 2.1 Identity získá všechny uživatele s jejich přidruženými rolemi