# Tables: ### Voir les tables de la base courante: `mysql [database]> SHOW TABLES;` ```mysql MariaDB [wordpress]> SHOW TABLES; +-----------------------+ | Tables_in_wordpress | +-----------------------+ | wp_commentmeta | | wp_comments | | wp_links | | wp_options | | wp_postmeta | | wp_posts | | wp_term_relationships | | wp_term_taxonomy | | wp_termmeta | | wp_terms | | wp_usermeta | | wp_users | +-----------------------+ 12 rows in set (0.003 sec) ``` ### Structure d’une table: `mysql [database]> DESCRIBE table;` ```mysql MariaDB [wordpress]> DESCRIBE wp_terms; +------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+----------------+ | term_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(200) | NO | MUL | | | | slug | varchar(200) | NO | MUL | | | | term_group | bigint(10) | NO | | 0 | | +------------+---------------------+------+-----+---------+----------------+ 4 rows in set (0.006 sec) ``` ### Renommer une table: `mysql [database]> ALTER TABLE table AS new_table;` ```mysql MariaDB [zenphoto]> ALTER TABLE _tags RENAME AS _new-tags; ``` ### Créer une table: `mysql [database]> CREATE TABLE table;` ```mariadb MariaDB [mydatabase]> CREATE TABLE animal (nom VARCHAR(20), maitre VARCHAR(20), espece VARCHAR(20), sexe CHAR(1), naissance DATE, mort DATE); Query OK, 0 rows affected (0.138 sec) ``` ### Charger des données dans une table: `mysql [database]> INSERT INTO table VALUES ('','');` ```mariadb MariaDB [mydatabase]> INSERT INTO animal VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); Query OK, 1 row affected (0.012 sec) ``` `mysql [database]> LOAD DATA LOCAL INFILE "file.txt" INTO TABLE table;` ```mariadb MariaDB [mydatabase]> LOAD DATA LOCAL INFILE "evenements.txt" INTO TABLE evenement; Query OK, 11 rows affected, 3 warnings (0.017 sec) Records: 11 Deleted: 0 Skipped: 0 Warnings: 3 ``` Le fichier .txt doit être dans le dossier qui contient les tables: ```bash /opt/homebrew/var/mysql/mydatabase master 13:26:16 ❯ ls -la total 208 drwx------ 8 bruno admin 256 sep 6 13:26 . drwxr-xr-x 18 bruno admin 576 sep 4 08:00 .. -rw-rw---- 1 bruno admin 741 sep 4 09:17 animal.frm -rw-rw---- 1 bruno admin 98304 sep 4 09:17 animal.ibd -rw-rw---- 1 bruno admin 67 sep 4 08:00 db.opt -rw-rw---- 1 bruno admin 1377 sep 6 11:18 evenement.frm -rw-rw---- 1 bruno admin 98304 sep 6 11:18 evenement.ibd -rw-r--r-- 1 bruno admin 529 sep 6 13:26 evenements.txt ``` ### Vérification des tables : 2 solutions: **1) CHECK TABLE table;** ```mysql MariaDB [wordpress]> CHECK TABLE wp_terms; +--------------------+-------+----------+----------+ | Table | Op | Msg_type | Msg_text | +--------------------+-------+----------+----------+ | wordpress.wp_terms | check | status | OK | +--------------------+-------+----------+----------+ 1 row in set (0.008 sec) ``` **2) [mysqlcheck](https://mariadb.com/kb/en/library/mysqlcheck/)** mysqlcheck verrouille chaque table en lecture seule (la base est alors inaccessible pour les autres processus pendant ce temps) pour vérification ou réparation. ```bash ❯ mysqlcheck -u root -ppassword wordpress wordpress.wp_commentmeta OK wordpress.wp_comments OK wordpress.wp_links OK wordpress.wp_options OK wordpress.wp_postmeta OK wordpress.wp_posts OK wordpress.wp_term_relationships OK wordpress.wp_term_taxonomy OK wordpress.wp_termmeta OK wordpress.wp_terms OK wordpress.wp_usermeta OK wordpress.wp_users OK ``` ### Optimiser: Les bases InnoDB ne supportent pas l’option OPTIMIZE. A la place,MySQL crée une nouvelle table, y copie toutes les lignes, efface l’ancienne table, renomme la nouvelle et lance ANALYSE ```bash ❯ mysqlcheck -u root -psncfp1p2 -o --all-databases mysql.column_stats Table is already up to date mysql.columns_priv Table is already up to date mysql.db OK mysql.event Table is already up to date ... wordpress.wp_commentmeta note : Table does not support optimize, doing recreate + analyze instead status : OK wordpress.wp_comments note : Table does not support optimize, doing recreate + analyze instead status : OK wordpress.wp_links note : Table does not support optimize, doing recreate + analyze instead status : OK ```