11 Advance MySQL gagnagrunnur „Viðtalsspurningar og svör“ fyrir Linux notendur


Við höfum þegar birt tvær MySQL greinar, vel þegnar af Tecmint Community. Þetta er þriðja greinin um MySQL viðtalsseríuna og sextán í viðtalstegundinni.

  1. 15 helstu MySQL viðtalsspurningar
  2. 10 MySQL gagnagrunnsviðtalsspurningar fyrir milliliða

Við höfum náð hingað allt vegna stuðnings þíns og við leitum þess sama í framtíðinni frá endalokum þínum. Hér í þessari grein munum við einbeita okkur að hagnýtum þætti MySQL, spurningunni sem skiptir máli fyrir viðtalsþáttinn.

Svar: MySQL skipunin fyrir neðan mun sýna útgáfa miðlara og valinn gagnagrunn.

mysql> SELECT VERSION(), DATABASE();

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

Í gagnagrunnsdálknum sýnir það NULL gildi vegna þess að við höfum ekki valið neinn gagnagrunn. Svo, veldu gagnagrunn eins og sýnt er í eftirfarandi skipun.

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)

Svar: Yfirlýsingin hér að neðan mun sýna alla dálka allra notenda úr töflunni 'Tecmint' nema notandinn ' 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   | 
+---------------------+---------+---------+---------+---------+-------+

Svar: AND rekstraraðilinn er notaður þegar við notum (=) og stjórnandinn OR er notaður þegar við notum (!=). Dæmi um (=) með AND Operator.

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

Dæmi um (!=) með OR Operator.

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. = : þýðir Jafnt
  2. != : Ekki jafn
  3. ! : táknar EKKI rekstraraðila

AND & OR eru meðhöndluð sem sameining rekstraraðila í MySQL.

Svar: Fyrirspurnina í MySQL er hægt að skrifa nákvæmlega með IFNULL() setningu. IFNULL() setningin prófar fyrstu röksemd sína og skilar ef hún er ekki NULL, eða skilar öðrum rökum, annars.

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

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

Svar: Við þurfum að nota LIMIT ákvæði ásamt ORDER BY til að ná ofangreindri atburðarás.

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    | 
+----+------+------------+-------+----------------+------+

Svar: Jæja, hvort tveggja hefur sína kosti og galla. Sem spurning um tíma kýs ég MySQL.

  1. Mysql er FOSS.
  2. MySQL er færanlegt.
  3. MYSQL styður bæði GUI og stjórnskipun.
  4. MySQL stjórnun er studd í gegnum fyrirspurnarvafra.

Svar: Að fá núverandi dagsetningu í MySQL er eins einfalt og að framkvæma SELECT yfirlýsinguna hér að neðan.

mysql> SELECT CURRENT_DATE();

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

Svar: Við notum '-e' (útflutnings) valkostinn til að flytja MySQL töflu eða allan gagnagrunninn út í XML skrá. Með stórum borðum gætum við þurft að innleiða það handvirkt en fyrir lítil töflur geta forrit eins og phpMyAdmin unnið verkið.

Innfædd stjórn á MySQL getur gert það.

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

Þar sem USER_NAME er notandanafn gagnagrunns er table_name taflan sem við erum að flytja út í XML og table_name.xml er xml skráin þar sem gögn eru geymd.

Svar: MySQL_pconnect() opnar tengingu sem er viðvarandi við MySQL gagnagrunninn sem þýðir einfaldlega að gagnagrunnurinn er ekki opnaður í hvert sinn sem síðan hleðst inn og þess vegna getur ekki notað MySQL_close() til að loka viðvarandi tengingu.

Stutt munur á MySQL_pconnect og MySQL_connect eru.

Ólíkt MySQL_pconnect, MySQL_connect - Opnar gagnagrunninn í hvert skipti sem síðan er hlaðið sem hægt er að loka hvenær sem er með setningu MySQL_close().

Svar: Eftirfarandi skipun mun sýna allar vísitölur töflu „notanda“.

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)

Svar: CSV stendur fyrir Comma-Separated Values aka Character-Separated Values. CSV tafla geymir gögn í venjulegum texta og töfluformi. Það inniheldur venjulega eina skrá í hverja línu.

Hver færsla er aðskilin með sérstökum afmörkum (Komma, semípunktur, …) þar sem hver færsla hefur sömu röð af reit. CSV töflur eru mest notaðar til að geyma símatengiliði til að flytja inn og út og er hægt að nota þær til að geyma hvers kyns venjuleg textagögn.

Það er allt í bili. Ég mun vera hér aftur með aðra áhugaverða grein, þú munt elska að lesa. Þangað til fylgstu með og tengdu við Tecmint og ekki gleyma að veita okkur dýrmæt endurgjöf í athugasemdahlutanum hér að neðan.