11 Advance MySQL databáze "Otázky a odpovědi k rozhovorům" pro uživatele Linuxu
Již jsme publikovali dva články o MySQL, které Tecmint Community velmi ocenila. Toto je třetí článek o seriálu MySQL Interview a šestnáct ve sloupci Interview Genre Column.
- 15 Základní otázky k rozhovoru s MySQL
- 10 Dotazy k rozhovoru s databází MySQL pro středně pokročilé
Všichni jsme se sem dostali kvůli vaší podpoře a usilujeme o totéž v budoucí podobě vašeho konce. Zde v tomto článku se zaměříme na praktický aspekt MySQL, otázku relevantní pro aspekt rozhovoru.
1. Pomocí příkazu SELECT najděte verzi serveru, na kterém běžíte, a vytiskněte název aktuální databáze?
Odp.: Níže uvedený příkaz MySQL zobrazí verzi serveru a aktuálně vybranou databázi.
mysql> SELECT VERSION(), DATABASE();
+-------------------------+------------+
| VERSION() | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | NULL |
+-------------------------+------------+
1 row in set (0.06 sec)
Ve sloupci Databáze se zobrazuje hodnota NULL, protože jsme nevybrali žádnou databázi. Vyberte tedy databázi, jak je znázorněno v následujícím příkazu.
mysql> use Tecmint;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select VERSION(), DATABASE();
+-------------------------+------------+
| VERSION() | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | tecmint |
+-------------------------+------------+
1 row in set (0.00 sec)
2. POUŽÍVEJTE operátor NOT (!) k výběru všech uživatelů kromě „SAM“ z tabulky, řekněte „Tecmint“
Odpověď: Níže uvedené prohlášení zobrazí všechny sloupce všech uživatelů z tabulky 'Tecmint' kromě uživatele 'SAM'.
mysql> SELECT * FROM Tecmint WHERE user !=SAM;
+---------------------+---------+---------+---------+---------+-------+
| date | user | host | root | local | size |
+---------------------+---------+---------+---------+---------+-------+
| 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 |
| 2001-05-15 08:50:57 | TIM | venus | phil | venus | 978 |
+---------------------+---------+---------+---------+---------+-------+
3. Je možné implementovat ‚AND‘ s operátorem NOT (!)?
Odp.: Operátor AND se používá, když používáme (=), a operátor OR se používá, když používáme (!=). Příklad (=) s operátorem AND.
mysql> SELECT * FROM mail WHERE user = SAM AND root = phil
Příklad (!=) s operátorem OR.
mysql> SELECT * FROM mail WHERE user != SAM OR root != phil
+---------------------+---------+---------+---------+---------+-------+
| date | user | host | root | local | size |
+---------------------+---------+---------+---------+---------+-------+
| 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 |
+---------------------+---------+---------+---------+---------+-------+
- = : znamená Rovná se
- != : Nerovná se
- ! : představuje NOT operátora
A & OR jsou v MySQL považovány za spojující operátory.
4. K čemu se používá příkaz IFNULL() v MySQL?
Odp.: Dotaz v MySQL lze zapsat přesně pomocí příkazu IFNULL(). Příkaz IFNULL() otestuje svůj první argument a vrátí, pokud není NULL, nebo vrátí svůj druhý argument, jinak.
mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;
+---------+---------+
| name | id |
+---------+---------+
| bernina | 198-48 |
| bertha | Unknown |
| ben | Unknown |
| bill | 475-83 |
+---------+---------+
5. Chcete vidět pouze určité řádky ze sady výsledků od začátku nebo konce sady výsledků. jak to uděláš?
Odp.: K dosažení výše popsaného scénáře musíme použít klauzuli LIMIT spolu s ORDER BY.
Zobrazit 1 záznam
mysql> SELECT * FROM name LIMIT 1;
+----+------+------------+-------+----------------------+------+
| id | name | birth | color | foods | cats |
+----+------+------------+-------+----------------------+------+
| 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 |
+----+------+------------+-------+----------------------+------+
Zobrazit 5 záznam
mysql> SELECT * FROM profile LIMIT 5;
+----+------+------------+-------+-----------------------+------+
| id | name | birth | color | foods | cats |
+----+------+------------+-------+-----------------------+------+
| 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 |
| 2 | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3 |
| 3 | Brit | 1957-12-01 | red | burrito,curry,pizza | 1 |
| 4 | Carl | 1973-11-02 | red | eggroll,pizza | 4 |
| 5 | Sean | 1963-07-04 | blue | burrito,curry | 5 |
+----+------+------------+-------+-----------------------+------+
mysql> SELECT * FROM profile ORDER BY birth LIMIT 1;
+----+------+------------+-------+----------------+------+
| id | name | birth | color | foods | cats |
+----+------+------------+-------+----------------+------+
| 9 | Dick | 1952-08-20 | green | lutefisk,fadge | 0 |
+----+------+------------+-------+----------------+------+
6. Oracle vs MySQL. Který a proč?
Odp.: Obojí má své výhody i nevýhody. Časově preferuji MySQL.
Důvod pro výběr MySQL přes Oracle
- Mysql je FOSS.
- MySQL je přenosný.
- MYSQL podporuje jak GUI, tak příkazový řádek.
- Administrace MySQL je podporována přes Query Browser.
7. Jak získáte aktuální datum v MySQL?
Odp.: Získání aktuálního data v MySQL je stejně jednoduché jako provedení níže uvedeného příkazu SELECT.
mysql> SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17 |
+----------------+
8. Jak budete exportovat tabulky jako soubor XML v MySQL?
Odpověď: K exportu tabulky MySQL nebo celé databáze do souboru XML používáme možnost „-e“ (export). U velkých tabulek to možná budeme muset implementovat ručně, ale u malých tabulek to zvládnou aplikace jako phpMyAdmin.
Nativní příkaz MySQL to dokáže.
mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml
Kde USER_NAME je uživatelské jméno databáze, table_name je tabulka, kterou exportujeme do XML a table_name.xml je xml soubor, kde jsou uložena data.
9. Co je MySQL_pconnect? A jak se liší od MySQL_connect?
Odpověď: MySQL_pconnect() otevře připojení, které je trvalé k databázi MySQL, což jednoduše znamená, že databáze není otevřena pokaždé, když se stránka načte, a proto nemůžeme použijte MySQL_close() k uzavření trvalého připojení.
Krátký rozdíl mezi MySQL_pconnect a MySQL_connect je.
Na rozdíl od MySQL_pconnect, MySQL_connect – otevře databázi při každém načtení stránky, kterou lze kdykoli zavřít příkazem MySQL_close().
10. Musíte zobrazit všechny indexy definované v tabulce řekněme „uživatel“ databáze řekněme „mysql“. Jak toho dosáhnete?
Odp.: Následující příkaz zobrazí všechny indexy tabulky ‚user‘.
mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| user | 0 | PRIMARY | 1 | Host | A | NULL | NULL | NULL | | BTREE | | |
| user | 0 | PRIMARY | 2 | User | A | 4 | NULL | NULL | | BTREE | | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)
11. Co jsou tabulky CSV?
Odpověď: CSV je zkratka pro Hodnoty oddělené čárkami alias hodnoty oddělené znaky. CSV tabulka ukládá data ve formátu prostého textu a tabulky. Obvykle obsahuje jeden záznam na řádek.
Každý záznam je oddělen specifickými oddělovači (čárka, středník, …), kde každý záznam má stejnou sekvenci polí. Tabulky CSV se nejrozšířeněji používají k ukládání telefonních kontaktů pro import a export a lze je použít k ukládání jakýchkoli dat ve formátu prostého textu.
To je prozatím vše. Jsem tu znovu s dalším zajímavým článkem, který si lidé rádi přečtou. Do té doby zůstaňte naladěni a připojeni k Tecmint a nezapomeňte nám poskytnout svou cennou zpětnou vazbu v sekci komentářů níže.