11 Advanced MySQL Database "Interview Questions and Answers" za Linux korisnike
Već smo objavili dva MySQL članka, koje Tecmint zajednica cijeni. Ovo je treći članak o MySQL Interview seriji i šesnaest u rubrici Interview Genre Column.
- 15 osnovnih MySQL pitanja za intervju
- 10 MySQL pitanja za intervju za srednjake
Stigli smo ovamo sve zbog vaše podrške i to isto tražimo iu budućnosti sa vašeg kraja. Ovdje u ovom članku ćemo se koncentrirati na praktični aspekt MySQL-a, pitanje relevantno za aspekt intervjua.
1. Koristeći SELECT naredbu pronaći verziju servera koji koristite i ispisati ime trenutne baze podataka?
Odgovor: MySQL naredba ispod će prikazati verziju servera i trenutno odabranu bazu podataka.
mysql> SELECT VERSION(), DATABASE();
+-------------------------+------------+
| VERSION() | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | NULL |
+-------------------------+------------+
1 row in set (0.06 sec)
U koloni baze podataka prikazuje vrijednost NULL jer nismo odabrali nijednu bazu podataka. Dakle, odaberite bazu podataka kao što je prikazano u sljedećoj naredbi.
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. NE KORISTITE Operator (!) da odaberete sve korisnike osim 'SAM' iz tabele recite 'Tecmint'
Odgovori: Naredba ispod će prikazati sve kolone svih korisnika iz tabele 'Tecmint' osim korisnika '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. Da li je moguće implementirati 'I' sa NOT (!) Operatorom.
Odgovor: Operator AND se koristi kada koristimo (=), a operator OR se koristi kada koristimo (!=). Primjer (=) sa AND operatorom.
mysql> SELECT * FROM mail WHERE user = SAM AND root = phil
Primjer (!=) sa OR operatorom.
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 |
+---------------------+---------+---------+---------+---------+-------+
- = : znači jednako
- != : Nije jednako
- ! : predstavlja NIJE Operator
I & OR se tretiraju kao operatori spajanja u MySQL-u.
4. Za šta se IFNULL() izraz koristi u MySQL-u?
Odgovor: Upit u MySQL-u se može precizno napisati korištenjem IFNULL() naredbe. Naredba IFNULL() testira svoj prvi argument i vraća ako nije NULL, ili vraća svoj drugi argument, u suprotnom.
mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;
+---------+---------+
| name | id |
+---------+---------+
| bernina | 198-48 |
| bertha | Unknown |
| ben | Unknown |
| bill | 475-83 |
+---------+---------+
5. Želite da vidite samo određene redove iz skupa rezultata od početka ili kraja skupa rezultata. Kako ćeš to uraditi?
Odgovor: Moramo koristiti LIMIT klauzulu zajedno sa ORDER BY da bismo postigli gore opisani scenario.
Prikaži 1 zapis
mysql> SELECT * FROM name LIMIT 1;
+----+------+------------+-------+----------------------+------+
| id | name | birth | color | foods | cats |
+----+------+------------+-------+----------------------+------+
| 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 |
+----+------+------------+-------+----------------------+------+
Prikaži 5 Snimi
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 protiv MySQL. Koji i zašto?
Odgovor: I jedno i drugo ima svoje prednosti i nedostatke. Što se tiče vremena, više volim MySQL.
Razlog za odabir MySQL Over oracle
- Mysql je FOSS.
- MySQL je prenosiv.
- MYSQL podržava i GUI kao i komandni redak.
- MySQL administracija je podržana preko Query Browser-a.
7. Kako ćete dobiti trenutni datum u MySQL-u?
Odgovor: Dobijanje trenutnog datuma u MySQL je jednostavno kao i izvršavanje donje SELECT izjave.
mysql> SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17 |
+----------------+
8. Kako ćete izvesti tabele kao XML fajl u MySQL?
Odgovor: Koristimo opciju '-e' (izvoz) za izvoz MySQL tablice ili cijele baze podataka u XML datoteku. Kod velikih tabela možda ćemo morati da ga implementiramo ručno, ali za male tabele, aplikacije poput phpMyAdmin mogu obaviti posao.
Nativna komanda MySQL-a to može učiniti.
mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml
Gdje je USER_NAME korisničko ime baze podataka, table_name je tabela koju izvozimo u XML, a table_name.xml je xml datoteka u kojoj se pohranjuju podaci.
9. Šta je MySQL_pconnect? I kako se razlikuje od MySQL_connect?
Odgovor: MySQL_pconnect() otvara vezu koja je trajna na MySQL bazu podataka što jednostavno znači da se baza podataka ne otvara svaki put kada se stranica učita i stoga ne možemo koristite MySQL_close() da zatvorite trajnu vezu.
Kratka razlika između MySQL_pconnect i MySQL_connect je.
Za razliku od MySQL_pconnect, MySQL_connect – Otvara bazu podataka svaki put kada se stranica učita koja se može zatvoriti u bilo kojem trenutku pomoću izraza MySQL_close().
10. Trebate prikazati sve indekse definirane u tablici recimo 'korisnik' baze podataka recimo 'mysql'. Kako ćete to postići?
Odgovor: Sljedeća komanda će prikazati sve indekse tabele 'korisnik'.
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. Šta su CSV tabele?
Odgovor: CSV je skraćenica za vrijednosti odvojene zarezima, odnosno vrijednosti razdvojene znakovima. CSV tabela pohranjuje podatke u običnom tekstu i tabelarnom formatu. Obično sadrži jedan zapis po redu.
Svaki zapis je odvojen posebnim graničnicima (zarez, tačka-zarez,...) pri čemu svaki zapis ima isti niz polja. CSV tabele se najčešće koriste za pohranjivanje telefonskih kontakata za uvoz i izvoz i mogu se koristiti za pohranjivanje bilo koje vrste podataka u obliku običnog teksta.
To je sve za sada. Opet ću biti ovdje sa još jednim zanimljivim člankom, vi ćete voljeti da pročitate. Do tada ostanite sa nama i povezani s Tecmint-om i ne zaboravite nam dati svoje vrijedne povratne informacije u odjeljku komentara ispod.