Databáze je strukturovaný soubor dat uchovávaných v elektronické podobě. Pojem databáze znali naši předkové ještě v době, kdy neexistovaly počítače, nicméně vytvoření a údržba takové databáze byla velmi zdlouhavá práce. V manuální databázi řekněme 100 stránky, pokud musíte vyhledat všechny zaměstnance, jejichž plat byl nižší než 10 tisíc , jen si pomysli, jak by to bylo těžké.
V dnešním světě prostě nemůžete uniknout z databáze . Právě teď miliony databází po celém světě pracují na ukládání a načítání dat všeho druhu, ať už jde o strategická data, záznamy zaměstnanců nebo webové technologie.
Databáze je často nazývána jako back-endový proces, protože není viditelná pro koncového uživatele ani koncového uživatele interaguje přímo s databází. Pracují na front-end procesu viz., PHP , VB , ASP.NET , atd. a požádejte frontend, aby se zabýval databází v back-endu.
K dispozici je několik databázových serverů a klientů, jako je Oracle , MySQL , MySQLi , MariaDB, MongoDB atd. Syntaxe všech z nich je víceméně stejná. Zvládnout jeden znamená získat kontrolu nad většinou z nich a naučit se dotazy z databáze je velmi snadné a zábavné.
Začněme jednoduchými dotazy na databázi. Budeme používat MySQL který je součástí většiny Linuxu distribucí ve výchozím nastavení, můžete jej nainstalovat ručně z úložiště, pokud ve vašem případě není nainstalován ve výchozím nastavení.
Databázový dotaz je jednoduchý kus kódu, který se odešle do databáze, aby získal vlastní a upřesněný výsledek podle potřeby.
Nainstalujte databázi MySQL
Použijte „yum “ nebo „apt ” správce balíčků k instalaci MySQL Databáze.
# yum install mysql mysql-client mysql-server (on Yum based Systems) # apt-get install mysql mysql-client mysql-server (on Apt based Systems)
Spusťte MySQL
Spusťte MySQL databázová služba jako:
# service mysqld start or # service mysql start
Dobrá instalace MySQL databáze vás přenese do konfigurace, kde budete požádáni o nastavení admin heslo atd. Po dokončení instalace a spuštění serveru přejděte do MySQL výzva.
# mysql -u root -p
Nahraďte root s vaším nakonfigurovaným uživatelským jménem a zadejte heslo po zobrazení výzvy, pokud jsou přihlašovací údaje správné, budete ve svém MySQL mrknutím vašich očí.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 195 Server version: 5.5.31-0+wheezy1 (Debian) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Nyní je provádění dotazů na tuto výzvu velmi poučné a zábavné.
Vytvořte databázový tecmint
mysql> create database tecmint ; Query OK, 1 row affected (0.02 sec) mysql>
Poznámka :Hlásí, že dotaz byl správný, což znamená, že databáze je vytvořena. Nově vytvořenou databázi můžete ověřit jako.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tecmint | | test | +--------------------+ 9 rows in set (0.00 sec) mysql>
Poznámka :Všimněte si své databáze ve výše uvedeném výstupu.
Vyberte databázi
Nyní musíte vybrat databázi, abyste s ní mohli pracovat.
mysql> use tecmint; Database changed mysql>
Vytváření tabulek v MySQL
Zde vytvoříme tabulku „minttec ” se třemi poli jako:
mysql> CREATE TABLE minttec ( -> id Int(3), -> first_name Varchar (15), -> email Varchar(20) -> ); Query OK, 0 rows affected (0.08 sec) mysql>
Poznámka :Výše uvedený dotaz říká OK což znamená, že tabulka byla vytvořena bez chyby. Pro ověření tabulky spusťte níže uvedený dotaz.
mysql> show tables; +-------------------+ | Tables_in_tecmint | +-------------------+ | minttec | +-------------------+ 1 row in set (0.00 sec) mysql>
Věci jdou zatím dobře. ano Sloupce, které jste vytvořili, můžete zobrazit v tabulce „minttec ” jako:
mysql> show columns from minttec; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | first_name | varchar(15) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) mysql>
Nebylo to nic menšího než kouzlo. Každopádně vám řeknu o typech deklarací a jejich významu.
- Int je Integer
- Varchar je char, který má proměnnou délku, jak je definováno. Hodnota za typem je délka pole, do které může ukládat data.
OK, nyní musíme přidat sloupec s názvem „last_name ‘ za sloupcem ‘křestní_jméno ‘.
mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
Nyní to ověřte ve své tabulce.
mysql> show columns from minttec; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | first_name | varchar(15) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) mysql>
Přidat sloupec do MySQL
Nyní přidáme sloupec vpravo, řekněme sloupec „země ‘ napravo od e-mailu .
mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql>
Ověřte výše uvedený dotaz na vkládání sloupců.
mysql> show columns from minttec; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | first_name | varchar(15) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | | country | varchar(15) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) mysql>
Vložte hodnoty do pole
A co vkládání hodnot do pole?
mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email protected]' , 'India' ); Query OK, 1 row affected (0.02 sec) mysql>
Co takhle vložit více než 1 hodnotu v čase ve výše uvedené tabulce.
mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email protected]' , 'India' ), ('3' , 'user' , 'singh' , '[email protected]' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email protected]' , 'India' ); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0
Ověřte výše uvedené vložení.
mysql> select * from minttec; +------+------------+-----------+-------------------+---------+ | id | first_name | last_name | email | country | +------+------------+-----------+-------------------+---------+ | 1 | Ravi | Saive | [email protected] | India | | 2 | Narad | Shrestha | [email protected] | India | | 3 | user | singh | [email protected] | Aus | | 4 | tecmint | [dot]com | [email protected] | India | +------+------------+-----------+-------------------+---------+ 4 rows in set (0.00 sec) mysql>
Smazat hodnoty v poli
Řekněme, že třetí záznam ve výše uvedeném výstupu je neplatný a potřebujeme odstranit třetí záznam.
mysql> DELETE FROM minttec WHERE id = 3; Query OK, 1 row affected (0.02 sec)
Ověřte výše uvedenou operaci.
mysql> select * from minttec; +------+------------+-----------+-------------------+---------+ | id | first_name | last_name | email | country | +------+------------+-----------+-------------------+---------+ | 1 | Ravi | Saive | [email protected] | India | | 2 | Narad | Shrestha | [email protected] | India | | 4 | tecmint | [dot]com | [email protected] | India | +------+------------+-----------+-------------------+---------+ 3 rows in set (0.00 sec)
Aktualizujte hodnoty v poli
ID (=4) je třeba upravit.
mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>
Ověřte výše uvedený dotaz.
mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>
Poznámka :Výše uvedený dotaz tak, jak byl proveden, není dobrý nápad. Změní ID na „4 kde je křestní jméno „tecmint“ . Vždy je dobré použít více než jeden sloupec s klauzulí where, abyste získali minimální chyby, jako:
mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>
Odstranit sloupec v MySQL
Potřebujeme vypustit (smazat) sloupec, o kterém si myslíme, že není důležitý, řekněme „země ‘ zde.
mysql> ALTER TABLE minttec drop country; Query OK, 3 rows affected (0.15 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql>
Ověřte tabulku.
mysql> select * from minttec; +------+------------+-----------+-------------------+ | id | first_name | last_name | email | +------+------------+-----------+-------------------+ | 1 | Ravi | Saive | [email protected] | | 2 | Narad | Shrestha | [email protected] | | 6 | tecmint | [dot]com | [email protected] | +------+------------+-----------+-------------------+ 3 rows in set (0.00 sec) mysql>
Přejmenovat tabulku v MySQL
Nemyslíte si, že se naše tabulka jmenuje „minttec “ není příliš relevantní. Co takhle změnit to na tecmint_table .
mysql> RENAME TABLE minttec TO tecmint_table; Query OK, 0 rows affected (0.03 sec) mysql>
Seznam všech tabulek
Podívejte se na všechny tabulky v aktuální databázi.
mysql> show tables; +-------------------+ | Tables_in_tecmint | +-------------------+ | tecmint_table | +-------------------+ 1 row in set (0.00 sec) mysql>
Tabulka byla přejmenována. Nyní vytvořte zálohu výše uvedeného MySQL databáze na jediném řádku příkazu bez jakéhokoli sofistikovaného nástroje. Spusťte níže uvedený kód na svém terminálu a ne na výzvu mysql.
# mysqldump -u root -p tecmint > tecmint.sql check the dumped file on your desktop which would have contents something like -- MySQL dump 10.13 Distrib 5.5.31, for debian-linux-gnu (i686) -- -- Server version 5.5.31-0+wheezy1 -- Dump completed on 2013-09-02 12:55:37
Vždy je dobré udržovat zálohu databází MySQL. Obnovení zálohované MySQL Data jsou opět jednoduchý řádek kódu, který musíte spustit na příkazovém řádku terminálu a ne na příkazovém řádku mysql.
Nejprve však počkejte, smažeme databázi, abychom ověřili, zda je naše obnova perfektní.
Smazat databázi
mysql> drop database tecmint; Query OK, 1 row affected (0.02 sec)
Zkontrolujte, zda je na vašem databázovém serveru databáze ‚tecmint‘.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | my_database | | mysql | | performance_schema | | phpmyadmin | | sisso | | test | +--------------------+ 7 rows in set (0.00 sec) mysql>
Skvělý! Databáze je ztracena, ale nemusíme se bát, máme zálohu.
Obnovení databáze
Chcete-li obnovit ztracenou databázi, spusťte následující příkaz.
# mysql -u root -p tecmint < tecmint.sql Enter password: ERROR 1049 (42000): Unknown database 'tecmint'
OOPS ! Chyba, hej, nevytvořili jsme databázi tecmint . Přejděte tedy na výzvu mysql a vytvořte databázi ‘tecmint ‘.
mysql> create database tecmint; Query OK, 1 row affected (0.00 sec) mysql>
Nyní je čas spustit příkaz obnovení ve výzvě shellu (přísně).
# mysql -u root -p tecmint < tecmint.sql Enter password:
Ověřte svou databázi.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tecmint | | test | +--------------------+ 8 rows in set (0.00 sec)
Ověřte obsah databáze.
mysql> show tables from tecmint; +-------------------+ | Tables_in_tecmint | +-------------------+ | tecmint_table | +-------------------+ 1 row in set (0.00 sec) mysql>
Ověřte obsah obnovené tabulky.
mysql> select * from tecmint_table; +------+------------+-----------+-------------------+ | id | first_name | last_name | email | +------+------------+-----------+-------------------+ | 1 | Ravi | Saive | [email protected] | | 2 | Narad | Shrestha | [email protected] | | 6 | tecmint | [dot]com | [email protected] | +------+------------+-----------+-------------------+ 3 rows in set (0.00 sec)
Tím to definitivně nekončí, budeme se zabývat konceptem primárního klíče , cizí klíč , více tabulek a spouštění dotazů pomocí jednoduchého PHP skript v další části článku.
Nezapomeňte nám to sdělit , jak jste se cítili při procházení článku. Vaše komentáře jsou vysoce ceněny. Zůstaňte zdraví a Vyladěno , zůstaňte připojeni k Tecmintu .