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.

  1. 15 osnovnih MySQL pitanja za intervju
  2. 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 | 
+---------------------+---------+---------+---------+---------+-------+
  1. = : znači jednako
  2. != : Nije jednako
  3. ! : 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
  1. Mysql je FOSS.
  2. MySQL je prenosiv.
  3. MYSQL podržava i GUI kao i komandni redak.
  4. 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.