11 Base de dades MySQL avançada Preguntes i respostes d'entrevista per a usuaris de Linux


Ja hem publicat dos articles de MySQL, molt apreciats per la comunitat Tecmint. Aquest és el tercer article sobre la sèrie d'entrevistes de MySQL i el setze a la columna Gènere d'entrevistes.

  1. 15 preguntes bàsiques d'entrevista de MySQL
  2. 10 preguntes d'entrevista de base de dades MySQL per a intermedis

Hem arribat fins aquí gràcies al vostre suport i busquem el mateix en el futur des del vostre final. Aquí en aquest article ens centrarem en l'aspecte pràctic de MySQL, la pregunta rellevant per a l'aspecte de l'entrevista.

Resposta: L'ordre de MySQL següent mostrarà la versió del servidor i la base de dades seleccionada actualment.

mysql> SELECT VERSION(), DATABASE();

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

A la columna de la base de dades mostra el valor NULL perquè no hem seleccionat cap base de dades. Per tant, seleccioneu la base de dades tal com es mostra a l'ordre següent.

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)

Resposta: La declaració següent mostrarà totes les columnes de tots els usuaris de la taula Tecmint, excepte l'usuari 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   | 
+---------------------+---------+---------+---------+---------+-------+

Resposta: l'operador AND s'utilitza quan fem servir (=) i l'operador OR s'utilitza quan fem servir (!=). Un exemple de (=) amb l'operador AND.

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

Un exemple de (!=) amb l'operador 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. = : significa igual a
  2. != : no és igual a
  3. ! : representa NO l'operador

Els AND i OR es tracten com a operadors d'unió a MySQL.

Resposta: La consulta a MySQL es pot escriure amb precisió utilitzant la instrucció IFNULL(). La sentència IFNULL() prova el seu primer argument i retorna si no és NULL, o retorna el seu segon argument, en cas contrari.

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

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

Resposta: hem d'utilitzar la clàusula LIMIT juntament amb ORDER BY per aconseguir l'escenari descrit anteriorment.

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

Resposta: Tots dos tenen els seus avantatges i desavantatges. Per qüestió de temps prefereixo MySQL.

  1. Mysql és FOSS.
  2. MySQL és portàtil.
  3. MYSQL admet tant la GUI com el símbol del sistema.
  4. L'administració de MySQL és compatible amb el navegador de consultes.

Resposta: Obtenir la data actual a MySQL és tan senzill com executar la instrucció SELECT a continuació.

mysql> SELECT CURRENT_DATE();

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

Resposta: Utilitzem l'opció -e (exportació) per exportar la taula MySQL o tota la base de dades a un fitxer XML. Amb taules grans, potser hauríem d'implementar-lo manualment, però per a taules petites, aplicacions com phpMyAdmin poden fer la feina.

Una comanda nativa de MySQL ho pot fer.

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

On USER_NAME és el nom d'usuari de la base de dades, nom_taula és la taula que estem exportant a XML i nom_taula.xml és el fitxer xml on s'emmagatzemen les dades.

Resposta: MySQL_pconnect() obre una connexió que és persistent a la base de dades MySQL, la qual cosa simplement significa que la base de dades no s'obre cada cop que es carrega la pàgina i, per tant, no es pot utilitzar MySQL_close() per tancar una connexió persistent.

Una breu diferència entre MySQL_pconnect i MySQL_connect són.

A diferència de MySQL_pconnect, MySQL_connect: obre la base de dades cada vegada que es carrega la pàgina, que es pot tancar en qualsevol moment mitjançant la instrucció MySQL_close().

Resposta: L'ordre següent mostrarà tots els índexs d'una taula usuari.

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)

Resposta: CSV significa valors separats per comes, també coneguts com a valors separats per caràcters. La taula CSV emmagatzema les dades en text sense format i en format tabular. Normalment conté un registre per línia.

Cada registre està separat per delimitadors específics (coma, punt i coma, …) on cada registre té la mateixa seqüència de camps. Les taules CSV s'utilitzen més per emmagatzemar contactes del telèfon per importar i exportar i es poden utilitzar per emmagatzemar qualsevol tipus de dades de text sense format.

Això és tot per ara. Tornaré a ser aquí amb un altre article interessant, us encantarà llegir-lo. Fins aleshores estigueu atents i connectats a Tecmint i no us oblideu de proporcionar-nos els vostres valuosos comentaris a la secció de comentaris a continuació.