Ricerca nel sito web

11 Database MySQL avanzato "Domande e risposte per interviste" per utenti Linux


Abbiamo già pubblicato due articoli su MySQL, molto apprezzati dalla Comunità Tecmint. Questo è il terzo articolo sulla serie di interviste MySQL e i sedici nella colonna Genere interviste.

  1. 15 domande base per un'intervista su MySQL
  2. 10 domande di intervista sul database MySQL per intermedi

Siamo arrivati fin qui grazie al vostro sostegno e cerchiamo lo stesso in futuro per la vostra fine. Qui in questo articolo ci concentreremo sull'aspetto pratico di MySQL, la domanda rilevante per l'aspetto dell'intervista.

1. Utilizzando l'istruzione SELECT trova la versione del server in esecuzione e stampa il nome del database corrente?

Risposta: Il comando MySQL seguente mostrerà la versione del server e il database attualmente selezionato.

mysql> SELECT VERSION(), DATABASE();

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

Nella colonna Database viene visualizzato il valore NULL perché non abbiamo selezionato alcun database. Quindi, seleziona il database come mostrato nel comando seguente.

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. UTILIZZARE NOT Operatore (!) per selezionare tutti gli utenti tranne "SAM" da una tabella, ad esempio "Tecmint"

Risposta: L'istruzione seguente mostrerà tutte le colonne di tutti gli utenti dalla tabella 'Tecmint' tranne l'utente '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. È possibile implementare "AND" con l'operatore NOT (!).

Risposta: L'operatore AND viene utilizzato quando utilizziamo (=) e l'operatore OR viene utilizzato quando utilizziamo (!=). Un esempio di (=) con operatore AND.

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

Un esempio di (!=) con l'operatore 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 Uguale a
  2. != : Diverso da
  3. ! : rappresenta NON Operatore

AND e OR vengono trattati come operatori di unione in MySQL.

4. A cosa serve l'istruzione IFNULL() in MySQL?

Risposta: La query in MySQL può essere scritta con precisione utilizzando l'istruzione IFNULL(). L'istruzione IFNULL() verifica il suo primo argomento e restituisce se non è NULL, altrimenti restituisce il secondo argomento.

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

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+
5. Si desidera visualizzare solo determinate righe di un set di risultati dall'inizio o dalla fine di un set di risultati. Come lo farai?

Risposta: Dobbiamo utilizzare la clausola LIMIT insieme a ORDER BY per ottenere lo scenario sopra descritto.

Mostra 1 record
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
Mostra 5 registrazioni
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 contro MySQL. Quale e perché?

Risposta: Beh, entrambi hanno i suoi vantaggi e svantaggi. Per una questione di tempo preferisco MySQL.

Motivo della selezione MySQL su Oracle
  1. MySQL è FOSS.
  2. MySQL è portatile.
  3. MYSQL supporta sia la GUI che il prompt dei comandi.
  4. L'amministrazione MySQL è supportata su Query Browser.
7. Come otterrai la data corrente in MySQL?

Risposta: Ottenere la data corrente in MySQL è semplice come eseguire l'istruzione SELECT riportata di seguito.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. Come esporterai le tabelle come file XML in MySQL?

Risposta: Usiamo l'opzione "-e" (esporta) per esportare la tabella MySQL o l'intero database in un file XML. Con tabelle di grandi dimensioni potrebbe essere necessario implementarlo manualmente, ma per tabelle di piccole dimensioni applicazioni come phpMyAdmin possono fare il lavoro.

Un comando nativo di MySQL può farlo.

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

Dove USER_NAME è il nome utente del database, table_name è la tabella che stiamo esportando in XML e table_name.xml è il file xml in cui sono archiviati i dati.

9. Cos'è MySQL_pconnect? E in cosa differisce da MySQL_connect?

Risposta: MySQL_pconnect() apre una connessione persistente al database MySQL che significa semplicemente che il database non viene aperto ogni volta che viene caricata la pagina e quindi non possiamo utilizzare MySQL_close() per chiudere una connessione persistente.

Una breve differenza tra MySQL_pconnect e MySQL_connect è.

A differenza di MySQL_pconnect, MySQL_connect – Apre il database ogni volta che viene caricata la pagina che può essere chiusa in qualsiasi momento utilizzando l'istruzione MySQL_close().

10. È necessario mostrare tutti gli indici definiti in una tabella, ad esempio "utente" del database, ad esempio "mysql". Come riuscirai a raggiungere questo obiettivo?

Risposta: Il comando seguente mostrerà tutti gli indici di una tabella "utente".

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. Cosa sono le tabelle CSV?

Risposta: CSV sta per valori separati da virgole, ovvero valori separati da caratteri. La tabella CSV memorizza i dati in formato testo normale e tabellare. Solitamente contiene un record per riga.

Ogni record è separato da delimitatori specifici (virgola, punto e virgola, ...) in cui ogni record ha la stessa sequenza di campi. Le tabelle CSV sono ampiamente utilizzate per archiviare i contatti telefonici per l'importazione e l'esportazione e possono essere utilizzate per archiviare qualsiasi tipo di dati di testo normale.

È tutto per ora. Sarò di nuovo qui con un altro articolo interessante, voi adorerete leggere. Fino ad allora restate sintonizzati e connessi a Tecmint e non dimenticate di fornirci il vostro prezioso feedback nella sezione commenti qui sotto.