11 MySQL-i andmebaasi "Intervjuu küsimused ja vastused" Linuxi kasutajatele


Oleme juba avaldanud kaks MySQL-i artiklit, mida Tecmint Community hästi hindab. See on kolmas artikkel MySQL-i intervjuusarja kohta ja kuusteist intervjuu žanri veerus.

  1. 15 MySQL-i intervjuu põhiküsimust
  2. 10 MySQL-i andmebaasi intervjuu küsimust vaheühenditele

Oleme jõudnud siia kõik teie toetuse tõttu ja soovime sama ka tulevikus teie eesmärgi saavutamiseks. Siin artiklis keskendume MySQL-i praktilisele aspektile, mis on intervjuu aspektile oluline küsimus.

Ans: Allpool olev MySQL käsk näitab serveri versiooni ja parajasti valitud andmebaasi.

mysql> SELECT VERSION(), DATABASE();

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

Andmebaasi veerus kuvatakse väärtus NULL , kuna me pole ühtegi andmebaasi valinud. Niisiis, valige andmebaas, nagu on näidatud järgmises käsus.

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)

Ans: Allpool olev lause näitab kõiki tabeli 'Tecmint ' kasutajate veerge, välja arvatud kasutaja ' 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: Operaatorit AND kasutatakse juhul, kui kasutame (=), ja operaatorit OR kasutatakse, kui kasutame (! =). Näide (=) koos operaatoriga AND.

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

Näide (! =) Operaatoriga 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. =: tähendab võrdset
  2. ! = : pole võrdne
  3. ! : tähistab EI operaatorit

AND & OR-i käsitletakse MySQL-is liituvate operaatoritena.

Ans: MySQL-i päringu saab täpselt kirjutada, kasutades lauset IFNULL() . Lause IFNULL() testib oma esimest argumenti ja tagastab, kui see pole NULL, või tagastab muul juhul teise argumendi.

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

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

Ans: ülalkirjeldatud stsenaariumi saavutamiseks peame koos ORDER BY-ga kasutama klauslit LIMIT .

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: Noh, mõlemal on oma eelised ja puudused. Aja jooksul eelistan MySQL-i.

  1. MySQL on FOSS.
  2. MySQL on kaasaskantav.
  3. MYSQL toetab nii GUI-d kui ka käsuviiba.
  4. MySQL-i haldust toetatakse päringubrauseris.

Ans: praeguse kuupäeva hankimine MySQL-is on sama lihtne kui allpool oleva SELECT-lause käivitamine.

mysql> SELECT CURRENT_DATE();

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

Ans: Kasutame valikut ‘-e’ (eksport) MySQL-i tabeli või kogu andmebaasi eksportimiseks XML-faili. Suurte tabelite korral peame selle võib-olla käsitsi rakendama, kuid väikeste tabelite puhul saavad tööd teha sellised rakendused nagu phpMyAdmin.

MySQL-i kohalik käsk suudab seda teha.

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

Kui USER_NAME on andmebaasi kasutajanimi, on tabeli_nimi tabel, mille me ekspordime XML-i, ja table_name.xml on fail xml, kuhu andmed salvestatakse.

Ans: MySQL_pconnect() avab ühenduse, mis on püsiv MySQL-i andmebaasiga, mis tähendab lihtsalt seda, et andmebaasi ei avata iga kord, kui leht laaditakse ja seetõttu me ei saa püsiva ühenduse sulgemiseks kasutada MySQL_close().

Lühike erinevus MySQL_pconnecti ja MySQL_connecti vahel on.

Erinevalt MySQL_pconnect, MySQL_connect - avab andmebaasi iga kord, kui leht on laaditud, mille saab igal ajal sulgeda, kasutades avaldust MySQL_close().

Ans: järgmine käsk kuvab kõik tabeli ‘kasutaja’ indeksid.

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 tähistab komaeraldusega väärtusi ehk tähemärkidega eraldatud väärtusi. CSV-tabel salvestab andmed lihtteksti ja tabelivormingus. Tavaliselt sisaldab see ühte kirjet rea kohta.

Iga kirje on eraldatud konkreetsete eraldajatega (koma, poolkool,…), kus igal kirjel on sama väljade järjestus. CSV-tabeleid kasutatakse kõige enam telefonikontaktide salvestamiseks impordi ja ekspordi jaoks ning neid saab kasutada igasuguste lihttekstide andmete salvestamiseks.

Praeguseks kõik. Ma tulen siia jälle ühe huvitava artikliga, mida teile meeldib lugeda. Kuni olete Tecmintiga kursis ja ühenduses ning ärge unustage, et annate meile oma väärtuslikku tagasisidet allolevas kommentaaride jaotises.