11 Advance MySQL Database "Intervjuja in odgovori" za uporabnike Linuxa


Objavili smo že dva članka MySQL, ki jih je Tecmint Community zelo cenila. To je tretji članek o seriji MySQL Interview in šestnajst v stolpcu Interview Genre.

  1. 15 osnovnih vprašanj za intervju z MySQL
  2. 10 vprašanj za intermediate MySQL za podatkovno bazo

Do vas smo prišli vse zaradi vaše podpore in enako iščemo tudi v prihodnje od vašega konca. V tem članku se bomo osredotočili na praktični vidik MySQL, vprašanje, pomembno za vidik intervjuja.

Odgovori: Spodnji ukaz MySQL bo prikazal različico strežnika in trenutno izbrano bazo podatkov.

mysql> SELECT VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | NULL       |
+-------------------------+------------+
1 row in set (0.06 sec)

V stolpcu zbirke podatkov prikazuje vrednost NULL , ker nismo izbrali nobene baze podatkov. Torej, izberite bazo podatkov, kot je prikazano v naslednjem ukazu.

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)

Odgovori: Spodnja izjava bo prikazala vse stolpce vseh uporabnikov iz tabele ' Tecmint ', razen uporabnika ' 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   | 
+---------------------+---------+---------+---------+---------+-------+

Ans: Operator AND se uporablja, kadar uporabljamo (=), operator ALI pa, ko uporabljamo (! =). Primer (=) z operatorjem AND.

mysql> SELECT * FROM mail WHERE user = SAM AND root = phil

Primer (! =) Z operaterjem 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 | 
+---------------------+---------+---------+---------+---------+-------+

  1. =: pomeni Enako kot
  2. ! = : Ni enako kot
  3. ! : predstavlja NE operaterja

AND & OR se obravnavajo kot pridružujoči se operaterji v MySQL.

Ans: Poizvedbo v MySQL lahko natančno napišete z uporabo stavka IFNULL() . Stavek IFNULL() preizkusi svoj prvi argument in vrne, če ni NULL, ali pa vrne drugi argument, sicer.

mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+

Odgovori: Za dosego zgoraj opisanega scenarija moramo uporabiti stavek LIMIT skupaj z ORDER BY.

mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
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    | 
+----+------+------------+-------+----------------+------+

Ans: Oba ima svoje prednosti in slabosti. Kot vprašanje časa imam raje MySQL.

  1. Mysql je FOSS.
  2. MySQL je prenosljiv.
  3. MYSQL podpira tako GUI kot tudi ukazni poziv.
  4. Upravljanje MySQL je podprto v brskalniku poizvedb.

Ans: Pridobivanje trenutnega datuma v MySQL je tako enostavno kot izvajanje spodnje izjave SELECT.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+

Odgovori: Za izvoz tabele MySQL ali celotne baze podatkov v datoteko XML uporabimo možnost '-e' (izvoz). Pri velikih tabelah ga bomo morda morali implementirati ročno, za majhne tabele pa lahko naloge opravijo aplikacije, kot je phpMyAdmin.

Izvorni ukaz MySQL lahko to stori.

mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml

Kjer je USER_NAME uporabniško ime baze podatkov, je ime_tabele tabela, ki jo izvozimo v XML, ime_tabele.xml pa je datoteka xml, v kateri so shranjeni podatki.

Ans: MySQL_pconnect() odpre trajno povezavo do zbirke podatkov MySQL, kar preprosto pomeni, da se baza podatkov ne odpre vsakič, ko se stran naloži in s tem ne more uporabiti MySQL_close() za zapiranje trajne povezave.

Kratka razlika med MySQL_pconnect in MySQL_connect je.

Za razliko od MySQL_pconnect, MySQL_connect - odpre bazo podatkov vsakič, ko se naloži stran, ki jo lahko kadar koli zaprete z uporabo stavka MySQL_close().

Ans: Naslednji ukaz bo prikazal vse indekse tabele ‘uporabnik’.

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)

Ans: CSV pomeni vrednosti, ločene z vejico, tj. vrednosti, ločene z znaki. V tabeli CSV so podatki shranjeni v navadnem besedilu in v obliki tabele. Običajno vsebuje en zapis na vrstico.

Vsak zapis je ločen s posebnimi ločili (vejica, podpičje…), kjer ima vsak zapis enako zaporedje polja. Tabele CSV se najpogosteje uporabljajo za shranjevanje telefonskih stikov pri uvozu in izvozu in se lahko uporabljajo za shranjevanje kakršnih koli navadnih besedilnih podatkov.

To je vse za zdaj. Spet bom tu z drugim Zanimivim člankom, ljudje boste radi brali. Do tedaj ostajajte z nami in povezani s Tecmintom in ne pozabite nam poslati svojih dragocenih povratnih informacij v spodnjem oddelku za komentarje.