1. Bases de dades relacionals

1.12. Altres utilitats de MySQL

Juntament amb l’inventari d’ordres que interactuen amb la nostra base de dades emprant el llenguatge SQL, el SGBD MySQL proporciona un conjunt d’aplicacions elementals per assistir-nos a l’hora de treballar amb el sistema.

Per exemple, l’ordre help mostra per pantalla un breu manual d’ajuda sobre cada instrucció de MySQL.

Per poder paginar, pantalla a pantalla, sobre les entrades del manual hem d’executar abans l’aplicació pager. Aquesta ordre ens permet vincular una aplicació de paginació del terminal de Linux amb l’intèrpret de MySQL (per exemple, el programa more).

mysql> pager more;

PAGER set to 'more'

mysql> help DROP TABLE;

Name: 'DROP TABLE'
Description:
Syntax:
DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

DROP TABLE removes one or more tables. You must have the DROP privilege for each table. 
All table data and the table definition are removed, so be careful with this statement!
If any of the tables named in the argument list do not exist, MySQL returns an error 
indicating by name which nonexisting tables it was unable to drop, but it also drops 
all the tables in the list that do exist.
-- More --

L’ordre source permet executar fitxers de text que inclouen ordres MySQL amb la seqüència d’instruccions precises per realitzar una determinada tasca. Per exemple, podem editar un fitxer de text des del nostre terminal amb les primeres ordres que executem en entrar en el sistema:

USE cataleg;
SHOW TABLES;
DESCRIBE gens;
---------------------------------------------------------
mysql> source ordres.sql;

Database changed

+--------------------+
| Tables_in_cataleg  |
+--------------------+
| anotacions         |
| funcions           |
| gens               |
| genomes            |
+--------------------+
4 rows in set (0.00 sec)

+--------------+------------------+------+-----+---------+-------+
| Field        | Type             | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+-------+
| nom          | varchar(20)      | NO   | PRI | NULL    |       |
| cromosoma    | varchar(5)       | YES  |     | NULL    |       |
| cadena       | varchar(1)       | YES  |     | NULL    |       |
| inici        | int(11)          | YES  |     | NULL    |       |
| final        | int(11)          | YES  |     | NULL    |       |
| proteina     | varchar(20)      | YES  |     | NULL    |       |
| especie      | varchar(100)     | YES  | MUL | NULL    |       |
+--------------+------------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

L’ordre status permet veure la configuració del sistema:

mysql> status;

mysql  Ver 14.14 Distrib 5.7.17, for Linux (i686) using EditLine wrapper
Connection id:          7
Current database:       cataleg
Current user:           student@localhost
SSL:                    Not in use
Current pager:          more
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.17-0ubuntu0.16.04.1 (Ubuntu)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db characterset:        latin1
Client characterset:    utf8
Conn. characterset:     utf8
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 4 hours 14 min 12 sec
Threads:                1  Questions: 101  Slow queries: 0  Opens: 129 
Flush tables:           1  Open tables: 42  Queries per second avg: 0.006

Si en algun instant necessitem accedir al terminal de Linux, podem emprar l’ordre system per invocar les seves ordres des de l’interior de MySQL:

mysql> system (ls /home/student);

Desktop  Documents  Downloads Music  Pictures  Public  Templates  Videos

mysql> system (cat ordres.sql);

USE cataleg;

SHOW TABLES;

DESCRIBE gens;