Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
elearning:workbooks:lpic:12:500:l105 [2023/06/26 05:55] – created admin | elearning:workbooks:lpic:12:500:l105 [2024/12/08 15:59] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Version : **2023.01** | + | Version : **2024.01** |
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
Ligne 11: | Ligne 11: | ||
* **Topic 105: Shells and Shell Scripting** | * **Topic 105: Shells and Shell Scripting** | ||
* Contenu du Module | * Contenu du Module | ||
+ | * La commande seq | ||
* Affichage des variables du shell | * Affichage des variables du shell | ||
* Les variables principales | * Les variables principales | ||
Ligne 50: | Ligne 51: | ||
* LAB #1- Scripts de Démarrage | * LAB #1- Scripts de Démarrage | ||
* ~/ | * ~/ | ||
- | * ~/.bashrc | + | * ~/.bashrc |
+ | * Le Langage SQL | ||
+ | * Installation de MariaDB | ||
+ | * Démarrage du Serveur | ||
+ | * Le Service MariaDB | ||
+ | * Invocation Directe | ||
+ | * Arrêt du Serveur | ||
+ | * Le Service MariaDB | ||
+ | * La Commande mysqladmin | ||
+ | * Configuration | ||
+ | * Le Client MySQL | ||
+ | * Utilisation | ||
+ | * Options | ||
+ | * LAB #2 - Configuration de Base | ||
+ | * LAB #3 - Le Langage SQL | ||
+ | |||
+ | =====La commande seq===== | ||
+ | |||
+ | La commande **seq** affiche une séquence de nombres du PREMIER au DERNIER par pas d'un INCREMENT. La commande prend la forme suivante : | ||
+ | |||
+ | * **seq** [options] PREMIER | ||
+ | * **seq** [options] PREMIER DERNIER | ||
+ | * **seq** [options] PREMIER INCREMENT DERNIER | ||
+ | |||
+ | Par exemple : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# seq 10 | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 4 | ||
+ | 5 | ||
+ | 6 | ||
+ | 7 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 | ||
+ | [root@centos7 ~]# seq 20 30 | ||
+ | 20 | ||
+ | 21 | ||
+ | 22 | ||
+ | 23 | ||
+ | 24 | ||
+ | 25 | ||
+ | 26 | ||
+ | 27 | ||
+ | 28 | ||
+ | 29 | ||
+ | 30 | ||
+ | [root@centos7 ~]# seq 20 10 90 | ||
+ | 20 | ||
+ | 30 | ||
+ | 40 | ||
+ | 50 | ||
+ | 60 | ||
+ | 70 | ||
+ | 80 | ||
+ | 90 | ||
+ | [root@centos7 ~]# | ||
+ | </ | ||
+ | |||
+ | ====Options de la commande==== | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | **A faire** : Utilisez l' | ||
+ | </ | ||
===== Affichage des variables du shell===== | ===== Affichage des variables du shell===== | ||
Ligne 369: | Ligne 436: | ||
</ | </ | ||
- | <WRAP center round important> | + | <WRAP center round important |
**Important**: | **Important**: | ||
</ | </ | ||
Ligne 382: | Ligne 449: | ||
</ | </ | ||
- | <WRAP center round important> | + | <WRAP center round important |
**Important** : Notez que dans le deuxième cas, le reste de la ligne après le mot // | **Important** : Notez que dans le deuxième cas, le reste de la ligne après le mot // | ||
</ | </ | ||
Ligne 426: | Ligne 493: | ||
</ | </ | ||
- | <WRAP center round important> | + | <WRAP center round important |
**Important** : La commande **od** (//Octal Dump//) renvoie le contenu d'un fichier ou de l' | **Important** : La commande **od** (//Octal Dump//) renvoie le contenu d'un fichier ou de l' | ||
</ | </ | ||
Ligne 916: | Ligne 983: | ||
</ | </ | ||
- | <WRAP center round important> | + | <WRAP center round important |
**Important** : L' | **Important** : L' | ||
</ | </ | ||
Ligne 973: | Ligne 1040: | ||
====LAB #1- Scripts de Démarrage==== | ====LAB #1- Scripts de Démarrage==== | ||
- | <WRAP center round important> | + | <WRAP center round important |
**A faire** : En utilisant vos connaissances acquises dans ce module, expliquez les scripts suivants ligne par ligne. | **A faire** : En utilisant vos connaissances acquises dans ce module, expliquez les scripts suivants ligne par ligne. | ||
</ | </ | ||
Ligne 1011: | Ligne 1078: | ||
# User specific aliases and functions | # User specific aliases and functions | ||
</ | </ | ||
+ | |||
+ | =====Le Langage SQL===== | ||
+ | |||
+ | ==== Installation de MariaDB==== | ||
+ | |||
+ | Pour installer MariaDB, utilisez yum : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# yum install mariadb mariadb-server | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** Vous pouvez également installer MariaDB à partir des sources disponibles sur le site **[[https:// | ||
+ | </ | ||
+ | |||
+ | ====Démarrage du Serveur==== | ||
+ | |||
+ | Le serveur MariaDB peut être démarré par l' | ||
+ | |||
+ | ===Le Service MariaDB=== | ||
+ | |||
+ | Pour activer le service **mariadb** il convient d' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl enable mariadb | ||
+ | Created symlink from / | ||
+ | </ | ||
+ | |||
+ | Le démarrage se fait également avec systemctl : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl start mariadb | ||
+ | [root@centos7 ~]# systemctl status mariadb | ||
+ | ● mariadb.service - MariaDB database server | ||
+ | | ||
+ | | ||
+ | Process: 9769 ExecStartPost=/ | ||
+ | Process: 9737 ExecStartPre=/ | ||
+ | Main PID: 9768 (mysqld_safe) | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Oct 31 12:34:35 centos7.fenestros.loc systemd[1]: Starting MariaDB database s... | ||
+ | Oct 31 12:34:35 centos7.fenestros.loc mariadb-prepare-db-dir[9737]: | ||
+ | Oct 31 12:34:36 centos7.fenestros.loc mysqld_safe[9768]: | ||
+ | Oct 31 12:34:36 centos7.fenestros.loc mysqld_safe[9768]: | ||
+ | Oct 31 12:34:38 centos7.fenestros.loc systemd[1]: Started MariaDB database se... | ||
+ | Hint: Some lines were ellipsized, use -l to show in full. | ||
+ | </ | ||
+ | |||
+ | Le service mariadb appel un script appelé **mysqld_safe** qui lance le serveur et crée un journal d' | ||
+ | |||
+ | ===Invocation Directe=== | ||
+ | |||
+ | Il est aussi possible d' | ||
+ | |||
+ | < | ||
+ | # / | ||
+ | </ | ||
+ | |||
+ | ====Arrêt du Serveur==== | ||
+ | |||
+ | ===Le Service MariaDB=== | ||
+ | |||
+ | Il est possible d' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl stop mariadb | ||
+ | [root@centos7 ~]# systemctl status mariadb | ||
+ | ● mariadb.service - MariaDB database server | ||
+ | | ||
+ | | ||
+ | Process: 9769 ExecStartPost=/ | ||
+ | Process: 9768 ExecStart=/ | ||
+ | Process: 9737 ExecStartPre=/ | ||
+ | Main PID: 9768 (code=exited, | ||
+ | |||
+ | Oct 31 12:34:35 centos7.fenestros.loc systemd[1]: Starting MariaDB database s... | ||
+ | Oct 31 12:34:35 centos7.fenestros.loc mariadb-prepare-db-dir[9737]: | ||
+ | Oct 31 12:34:36 centos7.fenestros.loc mysqld_safe[9768]: | ||
+ | Oct 31 12:34:36 centos7.fenestros.loc mysqld_safe[9768]: | ||
+ | Oct 31 12:34:38 centos7.fenestros.loc systemd[1]: Started MariaDB database se... | ||
+ | Oct 31 12:38:09 centos7.fenestros.loc systemd[1]: Stopping MariaDB database s... | ||
+ | Oct 31 12:38:12 centos7.fenestros.loc systemd[1]: Stopped MariaDB database se... | ||
+ | Hint: Some lines were ellipsized, use -l to show in full. | ||
+ | [root@centos7 ~]# systemctl start mariadb | ||
+ | [root@centos7 ~]# systemctl status mariadb | ||
+ | ● mariadb.service - MariaDB database server | ||
+ | | ||
+ | | ||
+ | Process: 11254 ExecStartPost=/ | ||
+ | Process: 11222 ExecStartPre=/ | ||
+ | Main PID: 11253 (mysqld_safe) | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Oct 31 12:38:22 centos7.fenestros.loc systemd[1]: Starting MariaDB database s... | ||
+ | Oct 31 12:38:23 centos7.fenestros.loc mariadb-prepare-db-dir[11222]: | ||
+ | Oct 31 12:38:23 centos7.fenestros.loc mysqld_safe[11253]: | ||
+ | Oct 31 12:38:23 centos7.fenestros.loc mysqld_safe[11253]: | ||
+ | Oct 31 12:38:25 centos7.fenestros.loc systemd[1]: Started MariaDB database se... | ||
+ | Hint: Some lines were ellipsized, use -l to show in full. | ||
+ | </ | ||
+ | |||
+ | ===La Commande mysqladmin=== | ||
+ | |||
+ | La comande **mysqladmin** peut aussi être utilisée pour arrêter le serveur à condition que l' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# / | ||
+ | Enter password: | ||
+ | [root@centos7 ~]# systemctl status mariadb | ||
+ | ● mariadb.service - MariaDB database server | ||
+ | | ||
+ | | ||
+ | Process: 11254 ExecStartPost=/ | ||
+ | Process: 11253 ExecStart=/ | ||
+ | Process: 11222 ExecStartPre=/ | ||
+ | Main PID: 11253 (code=exited, | ||
+ | |||
+ | Oct 31 12:38:22 centos7.fenestros.loc systemd[1]: Starting MariaDB database s... | ||
+ | Oct 31 12:38:23 centos7.fenestros.loc mariadb-prepare-db-dir[11222]: | ||
+ | Oct 31 12:38:23 centos7.fenestros.loc mysqld_safe[11253]: | ||
+ | Oct 31 12:38:23 centos7.fenestros.loc mysqld_safe[11253]: | ||
+ | Oct 31 12:38:25 centos7.fenestros.loc systemd[1]: Started MariaDB database se... | ||
+ | Hint: Some lines were ellipsized, use -l to show in full. | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** - Le nom d' | ||
+ | </ | ||
+ | |||
+ | ====Configuration==== | ||
+ | |||
+ | Votre première prise en mains de %%MariaDB%% doit débuter par la commande **mysql** : | ||
+ | |||
+ | ===Le Client MySQL=== | ||
+ | |||
+ | ==Utilisation== | ||
+ | |||
+ | MariaDB dispose d’un outil client permettant de se connecter et d’envoyer des commandes SQL au serveur. | ||
+ | |||
+ | Pour démarrer une connexion au serveur MariaDB nous pouvons utiliser un C.L.I. sous Linux. | ||
+ | |||
+ | Les paramètres les plus courants sont : | ||
+ | |||
+ | $ mysql –u root –p Databasename [Entrée] | ||
+ | |||
+ | Où : | ||
+ | |||
+ | * **-u** | ||
+ | * donne le nom de l’utilisateur. Si vous renoncez à l’option –u , le nom de login sera utilisé sous Unix/Linux et le nom ODBC sous Windows. | ||
+ | |||
+ | * **-p** | ||
+ | * permet de saisir le mot de passe de MariaDB, cette option est obligatoire lorsque les utilisateurs MariaDB sont sécurisés, | ||
+ | |||
+ | * **-h** | ||
+ | * permet de préciser le nom de l’hôte qui héberge MariaDB. Par défaut le port de communication est 3306 il est possible de changer ce port soit en configurant l’instance MariaDB soit en configurant le fichier **My.ini** sous Windows(tm) ou **my.cnf** sous Unix/Linux. (Attention: vérifiez qu’un par feu ne bloque pas ce port). Enfin vous devez vous assurer que le serveur MariaDB est configuré de sorte à autoriser les accès depuis votre ordinateur local. | ||
+ | |||
+ | * **- -protocol = name** | ||
+ | * cette option permet de spécifier le protocole de communication à utiliser. Il est rarement nécessaire d’indiquer cette option, puisque MariaDB choisit le bon protocole par défaut. Lorsque le client mysql et le serveur MariaDB ne tournent pas sur le même ordinateur, le seul protocole réseau possible est le **TCP**, dans ce cas n’oubliez pas de préciser le paramètre –h. | ||
+ | |||
+ | * **-P n** | ||
+ | * permet de préciser le port de communication utilisée pour se connecter à MariaDB. Cette option est effective que lorsque la communication passe par TCP/IP. | ||
+ | |||
+ | * **- -default-character-set = nom** | ||
+ | * cette option indique le jeu de caractères utilisés dans le cadre de communication entre mysql et le serveur MariaDB. En théorie, il s’agit du même jeu de caractères que celui utilisé par défaut dans la vie de commandes sous Windows ou la console sous Linux. Les jeux de caractères pris en charge par MariaDB sont notamment Latin 1 (ISO-8559-1), | ||
+ | |||
+ | * Databasename | ||
+ | * ce dernier paramètre indique à MariaDB le nom d’une base de données, ce qui permet de l’utiliser directement dès l’ouverture de MariaDB. Si vous désirez changer ici de base de données après sa connexion vous pouvez utiliser la commande SQL **USE < | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | $ mysql -u root -p -h server --protocol=tcp [Entrée] | ||
+ | $ Password : ********** [Entrée] | ||
+ | |||
+ | ==Options== | ||
+ | |||
+ | Dans la console MariaDB nous avons diverses options. | ||
+ | |||
+ | ^ Abréviation ^ Commande ^ Signification ^ | ||
+ | | \c | clear | Annule une commande en cours de saisie | | ||
+ | | \h | help | Affiche la liste des commandes | | ||
+ | | \q | exit ou quit | Ferme la connexion à MariaDB. Sous Unix/Linux, il est possible utilisé le raccourci ctrl+D | | ||
+ | | \s | status | Affiche les informations de statut du serveur MariaDB | | ||
+ | | \T[f] | tee[filename] | Enregistre tous ce qui apparaît dans la fenêtre de commandes dans le fichier indiqué | | ||
+ | | L | notee | Ferme tee. Le protocole doit être repris à tout instant avec tee ou \T. Il n’est pas nécessaire de saisir de nouveau le nom de fichier. | | ||
+ | | \u db | use database | La base de données saisie devient la base de données par défaut | | ||
+ | | \. Fn | source file name | exécute les commandes SQL contenues dans le fichier spécifié. Les commandes doivent à séparer par des pointsvirgules. | | ||
+ | |||
+ | NB : la fonction \c n’a aucun effet dans les chaînes de caractères( "" | ||
+ | |||
+ | Notez aussi que MariaDB se souvient des dernières commandes grâce aux touches **flèche vers le haut** et **flèche vers le bas**. | ||
+ | |||
+ | ====LAB #2 - Configuration de Base==== | ||
+ | |||
+ | Saisissez donc la commande **mysql** : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl start mariadb | ||
+ | [root@centos7 ~]# mysql | ||
+ | Welcome to the MariaDB monitor. | ||
+ | Your MariaDB connection id is 2 | ||
+ | Server version: 5.5.56-MariaDB MariaDB Server | ||
+ | |||
+ | Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | MariaDB [(none)]> | ||
+ | </ | ||
+ | |||
+ | pour visualiser la liste des bases de données par défaut : | ||
+ | |||
+ | < | ||
+ | MariaDB [(none)]> | ||
+ | +--------------------+ | ||
+ | | Database | ||
+ | +--------------------+ | ||
+ | | information_schema | | ||
+ | | mysql | | ||
+ | | performance_schema | | ||
+ | | test | | ||
+ | +--------------------+ | ||
+ | 7 rows in set (0.01 sec) | ||
+ | |||
+ | MariaDB [(none)]> | ||
+ | </ | ||
+ | |||
+ | Ensuite changez de base de données avec la commande : | ||
+ | |||
+ | < | ||
+ | MariaDB [(none)]> | ||
+ | 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 | ||
+ | MariaDB [mysql]> | ||
+ | </ | ||
+ | |||
+ | Afin de consulter les tables présentes dans la base, utilisez la commande : | ||
+ | |||
+ | < | ||
+ | MariaDB [mysql]> SHOW TABLES; | ||
+ | +---------------------------+ | ||
+ | | Tables_in_mysql | ||
+ | +---------------------------+ | ||
+ | | columns_priv | ||
+ | | db | | ||
+ | | event | | ||
+ | | func | | ||
+ | | general_log | ||
+ | | help_category | ||
+ | | help_keyword | ||
+ | | help_relation | ||
+ | | help_topic | ||
+ | | host | | ||
+ | | ndb_binlog_index | ||
+ | | plugin | ||
+ | | proc | | ||
+ | | procs_priv | ||
+ | | proxies_priv | ||
+ | | servers | ||
+ | | slow_log | ||
+ | | tables_priv | ||
+ | | time_zone | ||
+ | | time_zone_leap_second | ||
+ | | time_zone_name | ||
+ | | time_zone_transition | ||
+ | | time_zone_transition_type | | ||
+ | | user | | ||
+ | +---------------------------+ | ||
+ | 24 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [mysql]> | ||
+ | </ | ||
+ | |||
+ | Pour consulter une table spécifique, | ||
+ | |||
+ | < | ||
+ | MariaDB [mysql]> DESCRIBE user; | ||
+ | +------------------------+-----------------------------------+------+-----+---------+-------+ | ||
+ | | Field | Type | Null | Key | Default | Extra | | ||
+ | +------------------------+-----------------------------------+------+-----+---------+-------+ | ||
+ | | Host | char(60) | ||
+ | | User | char(16) | ||
+ | | Password | ||
+ | | Select_priv | ||
+ | | Insert_priv | ||
+ | | Update_priv | ||
+ | | Delete_priv | ||
+ | | Create_priv | ||
+ | | Drop_priv | ||
+ | | Reload_priv | ||
+ | | Shutdown_priv | ||
+ | | Process_priv | ||
+ | | File_priv | ||
+ | | Grant_priv | ||
+ | | References_priv | ||
+ | | Index_priv | ||
+ | | Alter_priv | ||
+ | | Show_db_priv | ||
+ | | Super_priv | ||
+ | | Create_tmp_table_priv | ||
+ | | Lock_tables_priv | ||
+ | | Execute_priv | ||
+ | | Repl_slave_priv | ||
+ | | Repl_client_priv | ||
+ | | Create_view_priv | ||
+ | | Show_view_priv | ||
+ | | Create_routine_priv | ||
+ | | Alter_routine_priv | ||
+ | | Create_user_priv | ||
+ | | Event_priv | ||
+ | | Trigger_priv | ||
+ | | Create_tablespace_priv | enum(' | ||
+ | | ssl_type | ||
+ | | ssl_cipher | ||
+ | | x509_issuer | ||
+ | | x509_subject | ||
+ | | max_questions | ||
+ | | max_updates | ||
+ | | max_connections | ||
+ | | max_user_connections | ||
+ | | plugin | ||
+ | | authentication_string | ||
+ | +------------------------+-----------------------------------+------+-----+---------+-------+ | ||
+ | 42 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [mysql]> | ||
+ | </ | ||
+ | |||
+ | Pour visualiser la liste des utilisateurs autorisés pour %%MariaDB%%, | ||
+ | |||
+ | < | ||
+ | MariaDB [mysql]> SELECT host, user, password FROM user; | ||
+ | +-----------------------+-------+-----------+ | ||
+ | | host | user | password | ||
+ | +-----------------------+-------+-----------+ | ||
+ | | localhost | ||
+ | | centos7.fenestros.loc | root | | | ||
+ | | 127.0.0.1 | ||
+ | | ::1 | root | | | ||
+ | +-----------------------+-------+-----------+ | ||
+ | 7 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [mysql]> | ||
+ | </ | ||
+ | |||
+ | Vous noterez que l' | ||
+ | |||
+ | Il faut par conséquence en définir un en urgence ! | ||
+ | |||
+ | Pour sortir de l' | ||
+ | |||
+ | < | ||
+ | MariaDB [mysql]> exit | ||
+ | Bye | ||
+ | [root@centos7 ~]# | ||
+ | </ | ||
+ | |||
+ | Pour définir le mot de passe **fenestros** pour root, il convient de saisir la commande suivante : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mysqladmin -u root password fenestros | ||
+ | </ | ||
+ | |||
+ | Lors de la prochaine tentative de connexion en tant que root, vous obtiendrez un message d' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mysql -u root | ||
+ | ERROR 1045 (28000): Access denied for user ' | ||
+ | </ | ||
+ | |||
+ | Pour vous connecter en tant que l' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mysql -u root -p mysql | ||
+ | Enter password: fenestros | ||
+ | Reading table information for completion of table and column names | ||
+ | You can turn off this feature to get a quicker startup with -A | ||
+ | |||
+ | Welcome to the MariaDB monitor. | ||
+ | Your MariaDB connection id is 5 | ||
+ | Server version: 5.5.56-MariaDB MariaDB Server | ||
+ | |||
+ | Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | MariaDB [mysql]> | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** - Notez l' | ||
+ | </ | ||
+ | |||
+ | Saisissez la commande suivante pour vérifier la table des utilisateurs : | ||
+ | |||
+ | < | ||
+ | MariaDB [mysql]> SELECT host, user, password FROM user; | ||
+ | +-----------------------+-------+-------------------------------------------+ | ||
+ | | host | user | password | ||
+ | +-----------------------+-------+-------------------------------------------+ | ||
+ | | localhost | ||
+ | | centos7.fenestros.loc | root | | | ||
+ | | 127.0.0.1 | ||
+ | | ::1 | root | | | ||
+ | +-----------------------+-------+-------------------------------------------+ | ||
+ | 7 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [mysql]> | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** - Notez que non seulement le mot de passe de root est présent mais qu'il a été crypté. Vous avez aussi la possibilité de sécuriser votre installation de MariaDB en utilisant le script **/ | ||
+ | </ | ||
+ | |||
+ | ====LAB #3 - Le Langage SQL==== | ||
+ | |||
+ | Créez maintenant la base de données **%%CarnetAdresses%%** : | ||
+ | |||
+ | < | ||
+ | mysql> CREATE DATABASE `CarnetAdresses` ; | ||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | mysql> | ||
+ | </ | ||
+ | |||
+ | Créez ensuite deux tables **familles** et **enfants** dans la base **CarnetAdresses** : | ||
+ | |||
+ | < | ||
+ | MariaDB [(none)]> | ||
+ | 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 | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | Query OK, 0 rows affected (0.03 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | Pour plus de facilité, copiez simplement la requête et collez-la dans votre terminal : | ||
+ | |||
+ | <file text familles> | ||
+ | CREATE TABLE familles (CodeFamille BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, Nom VARCHAR(40), | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | Query OK, 0 rows affected (0.02 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | Pour plus de facilité, copiez simplement la requête et collez-la dans votre terminal : | ||
+ | |||
+ | <file text enfants> | ||
+ | CREATE TABLE Enfants ( CodeFamille BIGINT NOT NULL, Prenom VARCHAR(40) NOT NULL, Sexe VARCHAR(1) NOT NULL, DateNaissance DATE NOT NULL, PRIMARY KEY (CodeFamille)); | ||
+ | </ | ||
+ | |||
+ | Utilisez ensuite la commande SHOW pour visualiser le résultat de chaque instruction, | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | +--------------------+ | ||
+ | | Database | ||
+ | +--------------------+ | ||
+ | | information_schema | | ||
+ | | CarnetAdresses | ||
+ | | Nombres | ||
+ | | mysql | | ||
+ | | performance_schema | | ||
+ | | test | | ||
+ | +--------------------+ | ||
+ | 6 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | +--------------------------+ | ||
+ | | Tables_in_CarnetAdresses | | ||
+ | +--------------------------+ | ||
+ | | Enfants | ||
+ | | familles | ||
+ | +--------------------------+ | ||
+ | 2 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | +-------------+-------------+------+-----+---------+----------------+ | ||
+ | | Field | Type | Null | Key | Default | Extra | | ||
+ | +-------------+-------------+------+-----+---------+----------------+ | ||
+ | | CodeFamille | bigint(20) | ||
+ | | Nom | varchar(40) | YES | | NULL | | | ||
+ | | PrenomPere | ||
+ | | PrenomMere | ||
+ | | Adresse1 | ||
+ | | Adresse2 | ||
+ | | CodePostal | ||
+ | | Ville | varchar(40) | YES | | NULL | | | ||
+ | | ProfPere | ||
+ | | ProfMere | ||
+ | +-------------+-------------+------+-----+---------+----------------+ | ||
+ | 10 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | +----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | ||
+ | | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | | ||
+ | +----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | ||
+ | | familles | 0 | PRIMARY | ||
+ | +----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | ||
+ | 1 row in set (0.00 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | +----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | ||
+ | | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | ||
+ | +----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | ||
+ | | Enfants | ||
+ | | familles | InnoDB | 10 | Compact | ||
+ | +----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | ||
+ | 2 rows in set (0.00 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | Créez les enregistrements dans la table **familles** : | ||
+ | |||
+ | <file text data> | ||
+ | INSERT INTO familles (Nom , PrenomPere , PrenomMere , Adresse1 , Adresse2 , CodePostal , Ville , ProfPere , ProfMere) VALUES (' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | MariaDB [CarnetAdresses]> | ||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.01 sec) | ||
+ | |||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | MariaDB [CarnetAdresses]> | ||
+ | </ | ||
+ | |||
+ | |||
+ | Saisissez maintenant chacune des commandes suivantes et expliquez le résultat obtenu. Les instructions sont numérotées pour faciliter vos prises de notes. | ||
+ | |||
+ | | 1 | ALTER TABLE Enfants ADD INDEX (Prenom); | | ||
+ | | 2 | ALTER TABLE Enfants DROP INDEX Prenom; | | ||
+ | | 3 | ALTER TABLE Enfants ADD %%TelPort%% VARCHAR(50) NOT NULL; | | ||
+ | | 4 | ALTER TABLE Enfants CHANGE %%TelPort%% %%TelPort%% VARCHAR( 22 ) NOT NULL; | | ||
+ | | 5 | ALTER TABLE Enfants ADD Test VARCHAR( 40 ) NOT NULL; | | ||
+ | | 6 | ALTER TABLE Enfants DROP Test; | | ||
+ | | 7 | SELECT * FROM familles; | | ||
+ | | 8 | SELECT * FROM familles LIMIT 8,12; | | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** - **LIMIT** - Avec un argument, la valeur spécifie le nombre de lignes à retourner depuis le début du jeu de résultat. Si deux arguments sont donnés, le premier indique le décalage du premier enregistrement à retourner, le second donne le nombre maximum d' | ||
+ | </ | ||
+ | |||
+ | |||
+ | | 9 | UPDATE familles SET Adresse1 = '120 rue de Vaugirard', | ||
+ | | 10 | DELETE FROM familles WHERE Nom = ' | ||
+ | | 11 | DELETE FROM familles WHERE Ville = ' | ||
+ | | 12 | SELECT * FROM familles LIMIT 8,12; | | ||
+ | | 13 | SELECT nom, %%PrenomPere%% FROM familles; | | ||
+ | | 14 | SELECT Nom AS 'Nom de famille', | ||
+ | | 15 | INSERT INTO Enfants (Prenom, Sexe, %%CodeFamille%%) VALUES (' | ||
+ | | 16 | SELECT familles.nom, | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** - Créez la colonne **familles.nb_enfants**. | ||
+ | </ | ||
+ | |||
+ | | 17 | UPDATE familles SET nb_enfants = ' | ||
+ | | 18 | UPDATE familles SET nb_enfants = ' | ||
+ | | 19 | UPDATE familles SET nb_enfants = ' | ||
+ | | 20 | UPDATE familles SET nb_enfants = ' | ||
+ | | 21 | UPDATE familles SET nb_enfants = ' | ||
+ | | 22 | UPDATE familles SET nb_enfants = ' | ||
+ | | 23 | UPDATE familles SET nb_enfants = ' | ||
+ | | 24 | UPDATE familles SET nb_enfants = ' | ||
+ | | 25 | UPDATE familles SET nb_enfants = ' | ||
+ | | 26 | SELECT SUM(nb_enfants) FROM familles; | | ||
+ | | 27 | SELECT MIN(nb_enfants) AS 'Nb enfants minimum', | ||
+ | | 28 | SELECT nom FROM familles WHERE ville = ' | ||
+ | | 29 | SELECT nom FROM familles WHERE ville = ' | ||
+ | | 30 | ALTER TABLE Enfants DROP PRIMARY KEY; | | ||
+ | | 31 | INSERT INTO Enfants (Prenom, Sexe, %%CodeFamille%%) VALUES (' | ||
+ | | 32 | INSERT INTO Enfants (Prenom, Sexe, %%CodeFamille%%) VALUES (' | ||
+ | | 33 | INSERT INTO Enfants (Prenom, Sexe, %%CodeFamille%%) VALUES (' | ||
+ | | 34 | SELECT | ||
+ | | 35 | SELECT familles.nom, | ||
+ | | 36 | SELECT ville, min(nb_enfants) as 'Nb enfants minimum', | ||
+ | | 37 | SELECT * FROM familles ORDER BY nom; | | ||
+ | | 38 | SELECT * FROM familles GROUP BY ville, Nom; | | ||
+ | | 39 | %%UPDATE familles SET Adresse2 = ' | ||
+ | | 40 | %%UPDATE familles SET Adresse2 = ' | ||
+ | | 41 | UPDATE familles SET nb_enfants=4 WHERE Ville = ' | ||
+ | | 42 | UPDATE familles SET nb_enfants=7 LIMIT 4; | | ||
+ | | 43 | UPDATE familles SET nb_enfants=8 ORDER BY Nom LIMIT 3; | | ||
+ | | 44 | DELETE FROM familles WHERE Nom = ' | ||
+ | | 45 | CREATE TABLE loisirs( Nom VARCHAR( 30 ) NOT NULL ); | | ||
+ | | 46 | DROP TABLE loisirs; | | ||
+ | | 47 | INSERT INTO familles (Nom, %%PrenomPere%%) VALUES (' | ||
+ | | 48 | INSERT INTO familles (%%PrenomPere%%) SELECT Enfants.prenom FROM Enfants; | | ||
+ | | 49 | ALTER TABLE familles ADD Sports VARCHAR(50) NOT NULL; | | ||
+ | | 50 | ALTER TABLE familles ADD INDEX (Sports); | | ||
+ | | 51 | ALTER TABLE familles ADD INDEX (%%PrenomPere%%), | ||
+ | | 52 | ALTER TABLE familles CHANGE %%PrenomPere%% Prenom_Pere VARCHAR( 45 ) NOT NULL; | | ||
+ | | 53 | ALTER TABLE familles DROP Sports; | | ||
+ | | 54 | ALTER TABLE familles DROP INDEX %%PrenomPere%%; | ||
+ | | 55 | ALTER TABLE familles DISABLE KEYS; | | ||
+ | | 56 | ALTER TABLE Enfants RENAME familles_enfants; | ||
+ | | 57 | ALTER TABLE familles ORDER BY Prenom_Pere; | ||
+ | | 58 | ALTER TABLE familles ADD Commentaire LONGTEXT NOT NULL ; | | ||
+ | | 59 | ALTER TABLE familles ADD FULLTEXT (Commentaire); | ||
+ | | 60 | UPDATE familles SET Commentaire = 'La vie est un long fleuve tranquille' | ||
+ | | 61 | UPDATE familles SET Commentaire = ' | ||
+ | | 62 | UPDATE familles SET Commentaire = 'Le ruisseau se jette dans la rivière qui se jette dans le FLEUVE' | ||
+ | | 63 | SELECT * FROM familles WHERE MATCH (Commentaire) AGAINST (' | ||
+ | | 64 | SELECT Nom, Commentaire FROM familles WHERE MATCH (Commentaire) AGAINST (' | ||
----- | ----- | ||
- | Copyright © 2023 Hugh Norris. | + | Copyright © 2024 Hugh Norris. |