B.2 Commandes de MySQL 473 Commande DESCRIBE {DESCRIBE | DESC} nomTable {nomAttribut } Permet d’obtenir la description d’une table ou d’un nom d’attribut dans une table. Ce dernier peut contenir les caractères « % » et « _ » avec la même interprétation que dans la commande LIKE. Commande LOCK TABLES LOCK TABLES nomTable, [AS alias ] {READ | [LOW_PRIORITY] WRITE} [, nomTable READ | [LOW_PRIORITY] WRITE ] La commande LOCK permet d’effectuer manuellement les verrouillages, normale- ment automatiques dans un système transactionnel. On peut placer des verrous en lecture ou en écriture et avec différents niveaux de priorité. Pour un non spécialiste des problèmes de concurrence d’accès, l’utilisation de cette commande est peu recommandée car elle a pour effet de bloquer d’autres utilisateurs Commande UNLOCK TABLES UNLOCK TABLES Relâche tous les verrous détenus pour la session courante. Commande SET SET [OPTION] sqlOption = valeur, Permet de donner une valeur à l’un des paramètres suivant pour la session cou- rante. • CHARACTER SET nomCS | DEFAULT. Définit le jeu de caractères utilisé pour interpréter les chaînes de caractères. • PASSWORD [FOR utilisateur ] = PASSWORD()(’motDePasse’). Permet de changer un mot de passe pour un utilisateur. On peut également utiliser la commande GRANT : voir page 448. • SQL_AUTO_IS_NULL = 0 | 1. Si le paramètre est à 1, on peut obtenir la dernière ligne insérée dans une table avec un attribut AUTO_INCREMENT avec la clause WHERE auto_increment_column IS NULL 474 Annexe B. Référence MySQL • SQL_BIG_TABLES = 0 | 1. Un paramètre booléen qui, s’il est à 1, indique que les tables temporaires doivent être stockées sur disque. • SQL_BIG_SELECTS = 0 | 1. Si le paramètre est à 0, MySQL interrompra les jointures qui manipulent plus de max_join_size lignes, ce dernier étant un paramètre du serveur. • SQL_LOW_PRIORITY_UPDATES = 0 | 1. Si le paramètre vaut 1, les mises à jour sur une table attendent qu’il n’y ait plus d’utilisateurs effectuant des lectures. • SQL_SELECT_LIMIT = value | DEFAULT. Permet de fixer une limite au nombre de lignes ramenées par un SELECT. • SQL_LOG_OFF = 0 | 1. Si le paramètre vaut 1, un utilisateur avec le droit process n’engendre pas de mise à jour du fichier log standard. • SQL_LOG_UPDATE = 0 | 1. Si le paramètre vaut 1, un utilisateur avec le droit process n’engendre pas de mise à jour du fichier log des mises à jour. • TIMESTAMP = valeur | DEFAULT. Modifie la valeur du timestamp. • LAST_INSERT_ID = valeur . Définit la valeur retournée par le prochain appel à LAST_INSERT_ID(). • INSERT_ID = valeur . Définit la valeur à utiliser lors de la prochaine inser- tion d’un attribut AUTO_INCREMENT. Commande GRANT GRANT privil`ege [(listeAttributs )] [,privil`ege [(listeAttributs )] ] ON {nomTable |*|*.*|nomBase.*} TO nomUtilisateur [IDENTIFIED BY ’motDePasse’] [, nomUtilisateur [IDENTIFIED BY ’motDePasse’] ] [WITH GRANT OPTION] Définit et modifie les droits d’accès des utilisateurs. Voir page 448. Commande REVOKE REVOKE privil`ege [(listeAttributs )] [,privil`ege [(listeAttributs )] ] ON {nomTable |*|*.*|nomBase.*} FROM nomUtilisateur [, nomUtilisateur ] Retire des droits à un ou plusieurs utilisateur(s). Voir page 448. B.3 Fonctions MySQL 475 Commande CREATE INDEX CREATE [UNIQUE] INDEX nomIndex ON nomTable (nomAttribut [(taille )], ) Création d’un index. Voir page 204. Commande DROP INDEX DROP INDEX nomIndex ON nomTable Suppression d’un index. B.3 FONCTIONS MySQL Les fonctions suivantes peuvent être utilisées dans des requêtes SQL. Pour la plupart, elles constituent un ajout de MySQL à la norme SQL ANSI. ABS (nombre ) Renvoie la valeur absolue de nombre ACOS (nombre ) Renvoie le cosinus inverse de nombre, exprimé en radians ASCII (car ) Renvoie le code ASCII du caractère car ASIN (nombre ) Renvoie le sinus inverse de nombre, exprimé en radians ATAN (number ) Renvoie la tangente inverse de nombre, exprimée en radians. ATAN2 (x, y ) Renvoie la tangente inverse du point x,y. CHAR (code1, [code2, ] ) Renvoie une chaîne obtenue par conversion de chaque code ASCII vers le caractère correspondant. 476 Annexe B. Référence MySQL CONCAT (cha^ıne1, [cha^ıne2, ] ) Renvoie la concaténation de tous les arguments. CONV (nombre, base1, base2 ) Renvoie la conversion de nombre de base1 en base2. La base est un chiffre entre 2 et 36. BIN (d´ecimal ) Renvoie la valeur binaire d’un nombre décimal. BIT_COUNT (nombre ) Renvoie le nombre de bits à 1 dans la représentation binaire de nombre. CEILING (nombre ) Renvoie le plus petit entier supérieur ou égal à nombre. COS (radians ) Renvoie le cosinus de radians. COT (radians ) Renvoie la cotangente de radians. CURDATE () Renvoie la date courante au format AAAAMMJJ ou AAAA-MM-JJ selon que le contexte est numérique ou alphanumérique. Forme équivalente : CURRENT_DATE(). CURTIME () Renvoie l’heure courante au format HHMMSS ou HH:MM:SS selon que le contexte est numérique ou alphanumérique. Forme équivalente : CURRENT_TIME(). DATABASE () Renvoie le nom de la base de données courante. DATE_ADD (date, INTERVAL dur´ee p´eriode ) Ajoute un nombre dur´ee de p´eriode à date. Par exemple DATE_ADD ("2000-12-01", INTERVAL 3 MONTH) renvoie "2001-03-01". Les valeurs autorisées pour p´eriode sont SECOND, MINUTE, HOUR, DAY, MONTH et YEAR. Forme équivalente : ADDDATE(). B.3 Fonctions MySQL 477 DATE_FORMAT (date, format ) Formate une date d’après un format spécifié avec les options suivantes : • %a Nom court du jour (en anglais : « Mon », « Tue », etc.). • %b Nom court du mois (en anglais : « Jan », « Feb », etc.). • %D Jour du mois avec suffixe (en anglais : « 1st », « 2nd », etc.). • %d Jour du mois. • %H Heure, sur 24 heures, et avec deux chiffres. • %h Heure, sur 12 heures. • %i Minutes. • %j Jour de l’année. • %k Heure, sur 24 heures, et avec un ou deux chiffres. • %l Heure, sur 12 heures, et avec un ou deux chiffres. • %M Nom du mois (en anglais). • %m Numéro du mois. • %p AM ou PM. • %r Heure complète (HH::MM::SS), sur 12 heures, avec AM ou PM. • %S Secondes, sur deux chiffres. • %s Secondes, sur un ou deux chiffres. • %T Heure complète (HH::MM::SS), sur 24 heures. • %U Numéro de la semaine (N.B. : la semaine commence le dimanche). • %W Nom du jour (en anglais). • %w Numéro du jour de la semaine (NB : la semaine commence le dimanche, jour 0). • %Y Année sur quatre chiffres. • %y Année sur deux chiffres. • %% Pour écrire « % ». Les quelques fonctions qui suivent fournissent des raccourcis pour des formatages de date courants. DATE_SUB (date,INTERVAL dur´ee p´eriode ) Soustrait une duréee à une date. Voir DATE_ADD() pour les valeurs des paramètres. DAYNAME (date ) Nom du jour (en anglais). DAYOFMONTH (date ) Numéro du jour dans le mois. . B.2 Commandes de MySQL 473 Commande DESCRIBE {DESCRIBE | DESC} nomTable {nomAttribut } Permet d’obtenir la description d’une table ou d’un nom d’attribut dans une table. Ce dernier peut contenir. niveaux de priorité. Pour un non spécialiste des problèmes de concurrence d’accès, l’utilisation de cette commande est peu recommandée car elle a pour effet de bloquer d’autres utilisateurs Commande. courante. Commande SET SET [OPTION] sqlOption = valeur, Permet de donner une valeur à l’un des paramètres suivant pour la session cou- rante. • CHARACTER SET nomCS | DEFAULT. Définit le jeu de caractères