11 Advance MySQL -tietokanta "haastattelukysymykset ja vastaukset" Linux-käyttäjille


Olemme jo julkaisseet kaksi MySQL-artikkelia, joita Tecmint-yhteisö arvostaa hyvin. Tämä on kolmas artikkeli MySQL-haastattelusarjasta ja kuusitoista haastattelugenre-sarakkeessa.

  1. 15 MySQL-haastattelun peruskysymystä
  2. 10 MySQL-tietokannan haastattelukysymystä välitasolle

Olemme saapuneet tänne tukesi ansiosta ja pyrimme siihen myös tulevaisuudessa. Tässä artikkelissa keskitymme MySQL:n käytännön puoleen, joka on haastattelunäkökulman kannalta tärkeä kysymys.

1. Etsi SELECT-käskyn avulla käyttämäsi palvelimen versio ja tulosta nykyisen tietokannan nimi?

Vastaukset: Alla oleva MySQL-komento näyttää palvelimen version ja valitun tietokannan.

mysql> SELECT VERSION(), DATABASE();

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

Tietokanta-sarakkeessa se näyttää NULL-arvon, koska emme ole valinneet yhtään tietokantaa. Valitse siis tietokanta seuraavan komennon mukaisesti.

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. KÄYTÄ EI operaattoria (!) valitaksesi kaikki käyttäjät paitsi "SAM" taulukosta sano "Tecmint"

Vastaukset: Alla oleva lause näyttää kaikkien taulukon Tecmint käyttäjien sarakkeet paitsi käyttäjän 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. Onko 'AND' mahdollista toteuttaa NOT (!) -operaattorilla.

Vastaukset: AND-operaattoria käytetään, kun käytämme (=) ja operaattoria OR, kun käytämme (!=). Esimerkki (=) AND-operaattorilla.

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

Esimerkki (!=) OR-operaattorilla.

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. = : tarkoittaa yhtä kuin
  2. != : Ei sama kuin
  3. ! : edustaa EI operaattoria

AND & TAI käsitellään MySQL:n yhdistävinä operaattoreina.

4. Mihin IFNULL()-käskyä käytetään MySQL:ssä?

Vastaukset: MySQL:n kysely voidaan kirjoittaa tarkasti IFNULL()-käskyn avulla. IFNULL()-käsky testaa ensimmäisen argumenttinsa ja palauttaa, jos se ei ole NULL, tai palauttaa toisen argumentin muussa tapauksessa.

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

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+
5. Haluat nähdä vain tietyt rivit tulosjoukosta tulosjoukon alusta tai lopusta. Miten aiot tehdä sen?

Vastaukset: Meidän on käytettävä LIMIT-lausetta yhdessä ORDER BY:n kanssa saavuttaaksemme yllä kuvatun skenaarion.

Näytä 1 Record
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
Näytä 5 Record
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. Kumpi ja miksi?

Vastaus: Molemmilla on hyvät ja huonot puolensa. Ajan kysymyksenä pidän mieluummin MySQL:stä.

Syy valinnalle MySQL Oracle sijaan
  1. Mysql on FOSS.
  2. MySQL on kannettava.
  3. MYSQL tukee sekä graafista käyttöliittymää että komentokehotetta.
  4. MySQL-hallintaa tuetaan kyselyselaimen kautta.
7. Kuinka saat nykyisen päivämäärän MySQL:ssä?

Vastaus: Nykyisen päivämäärän saaminen MySQL:stä on yhtä helppoa kuin alla olevan SELECT-lausekkeen suorittaminen.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. Miten taulukot viedään XML-tiedostoina MySQL:ssä?

Vastaukset: Käytämme '-e' (vienti) -vaihtoehtoa MySQL-taulukon tai koko tietokannan viemiseen XML-tiedostoon. Suurissa taulukoissa saatamme joutua toteuttamaan sen manuaalisesti, mutta pienissä taulukoissa sovellukset, kuten phpMyAdmin, voivat tehdä työn.

MySQL:n alkuperäinen komento voi tehdä sen.

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

Kun KÄYTTÄJÄNIMI on tietokannan käyttäjänimi, taulukon_nimi on taulukko, jonka viemme XML-muotoon, ja taulukon_nimi.xml on xml-tiedosto, johon tiedot tallennetaan.

9. Mikä on MySQL_pconnect? Ja miten se eroaa MySQL_connectista?

Vastaus: MySQL_pconnect() avaa yhteyden, joka on pysyvä MySQL-tietokantaan, mikä tarkoittaa yksinkertaisesti sitä, että tietokantaa ei avata joka kerta, kun sivu latautuu, joten emme voi sulje jatkuva yhteys käyttämällä MySQL_close()-funktiota.

Lyhyt ero MySQL_pconnectin ja MySQL_connectin välillä ovat.

Toisin kuin MySQL_pconnect, MySQL_connect – Avaa tietokannan aina, kun sivu ladataan, ja se voidaan sulkea milloin tahansa käskyllä MySQL_close().

10. Sinun on näytettävä kaikki taulukossa määritellyt indeksit sanomalla "tietokannan käyttäjä" sanomalla "mysql". Miten aiot saavuttaa tämän?

Vastaukset: Seuraava komento näyttää kaikki taulukon "käyttäjä" indeksit.

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. Mitä CSV-taulukot ovat?

Vastaus: CSV on lyhenne sanoista Comma-Separated Values alias Character-Separated Values. CSV-taulukko tallentaa tiedot pelkkänä tekstinä ja taulukkomuodossa. Se sisältää yleensä yhden tietueen riviä kohden.

Jokainen tietue on erotettu erityisillä erottimilla (pilkku, puolipiste, …), jossa jokaisella tietueella on sama kenttäsekvenssi. CSV-taulukoita käytetään yleisimmin puhelinyhteystietojen tallentamiseen tuontiin ja vientiin, ja niitä voidaan käyttää kaikenlaisten pelkkää tekstitietojen tallentamiseen.

Tässä kaikki tältä erää. Tulen tänne jälleen toisen mielenkiintoisen artikkelin kanssa, jota te ihmiset rakastatte lukea. Siihen asti pysy kuulolla ja yhteydessä Tecmintiin ja älä unohda antaa meille arvokasta palautetta alla olevassa kommenttiosiossa.