Information concernant MYSQL et les bases de données

Quelques références :
Site de OpenClassRooms, "Concevez votre site web avec PHP et MySQL".
La playlist de Grafikart.fr, sur youtube.
La playlist de Pierre Giraud, sur youtube.
Tutoriel / Cours Complet PhP & MySQL [Chapitre 1/27] : Introduction au PhP, de Pierre Giraud.
Création des tables et des relations en SQL Server #01, de Rahmouni Oussama.
La page de référence sur mySQL

Pour lancer le serveur, tapez depuis un Terminal : sudo /opt/lampp/lampp start
Pour arrêter le serveur, tapez depuis un Terminal : sudo /opt/lampp/lampp stop
Pour allez sur la page principale : http://localhost/web
Pour relier un dossier à la racine de localhost :
sudo unlink /opt/lampp/htdocs/web && sudo ln -s $HOME/website /opt/lampp/htdocs/web   ou
sudo unlink /opt/lampp/htdocs/web && sudo ln -s $HOME/webgisin /opt/lampp/htdocs/web

Pour aller dans la page de gestions phpMyAdmin

Dans phpMyAdmin, on peut exécuter des commandes mySQL en cliquant sur l'onglet SQL
Pour cela, il faut aller sous : phpMyAdmin
Des commandes mySQL, décrites dans les vidéos de Grafikart.fr.
1) Création d'une base de donnée:
CREATE DATABASE formationsql
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci

2) Voir toutes les variables de la base de donnée active
SHOW VARIABLES

3) Supprimer une base de donnée
DROP DATABASE test1

4) Création d'une table dans la base de donnée active
USE formationsql;
CREATE TABLE utilisateurs (
nom VARCHAR(255) NOT NULL,
prenom VARCHAR(255) NOT NULL,
sexe VARCHAR(1) NOT NULL DEFAULT 'h',
date_naissance DATE NOT NULL DEFAULT '0000/00/00'
)
ENGINE=INNODB

5) Voir le code généré par mySQL pour créer une table
USE formationsql;
SHOW CREATE TABLE utilisateurs;

6) Pour supprimer une table
USE formationsql;
DROP TABLE utilisateurs

7) Pour ajouter un champ à une table
ALTER TABLE utilisateurs
ADD ville VARCHAR(255) NOT NULL,
ADD pays VARCHAR(2) NOT NULL

8) Pour supprimer un champ
ALTER TABLE utilisateurs
DROP pays

9) Pour modifier le nom d'un champ
ALTER TABLE utilisateurs
CHANGE date_naissance birthday DATE NOT NULL

10) Modifier le type d'un champ
ALTER TABLE utilisateurs
MODIFY birthday DATETIME NOT NULL

11) Ajouter au début champ indexé ayant une clé primaire, auto-incrément (A_I)
ALTER TABLE utilisateurs
ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST

12) Indexer un champ
ALTER TABLE utilisateurs
ADD INDEX(sexe)
Exercice de : "Apprendre MySQL (6/20): Créer une table" à 22 minutes.
( https://www.youtube.com/watch?v=ve2sEsM6i_w&list=PLjwdMgw5TTLUJLpzUYGBK7K5-hPgZA7zo&index=6 )

USE formationsql;
CREATE TABLE articles (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL,
slug VARCHAR(60) NOT NULL UNIQUE,
contenu LONGTEXT NOT NULL,
date_creation DATETIME NOT NULL DEFAULT current_timestamp(),
date_modification TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp()
)
ENGINE=INNODB
13) Insérer un nouvel utilisateur
INSERT INTO utilisateurs
VALUES(NULL, "Doe", "John", "h", "1988/1/15", "Perpignan");

14) Insérer plusieurs nouveaux utilisateurs
INSERT INTO utilisateurs
VALUES
(NULL, "Doe", "John2", "h", "1988/2/16", "Perpignan"),
(NULL, "Doe", "John3", "h", "1988/3/17", "Perpignan");

15) Insérer un nouvel utilisateur, syntax limitant le nombre de champs
INSERT INTO utilisateurs(nom, prenom, ville)
VALUES('Doe', 'John4', 'Paris');

16) Insérer un nouvel utilisateur, autre syntax limitant le nombre de champs
Ne permet pas d'insertion multiples et n'est pas une syntaxe normée (propre à mySQL).
INSERT INTO utilisateurs SET nom='Doe', prenom='John4', ville='Paris'

17) Effacer un utilisateur
DELETE FROM utilisateurs
WHERE prenom="John2";

17) Effacer un utilisateur, en limitant le nombre de suppression
DELETE FROM utilisateurs
WHERE prenom="John2" AND nom="Doe" LIMIT 1;

18) Effacer l'intégralité d'une table et remet l'id de départ à 1
TRUNCATE TABLE utilisateurs

19) Modifier une donnée d'une table
Si on exécute la requête deux fois, la deuxième fois il n'y a aucun changement, mais pas d'erreur.
UPDATE utilisateurs
SET prenom="Marie", sexe="f"
WHERE nom="Doe" AND prenom="John4"

20) Modifier une donnée d'une table
UPDATE utilisateurs
SET birthday="1998/2/23", ville="Lyon"
WHERE nom="Doe" AND prenom="Marie"

21) Modifier plusieurs entrées d'une table
UPDATE utilisateurs
SET ville="Gennoble"
WHERE sexe="h"

22) Sélectionner des entrées d'une table
SELECT prenom, nom
FROM utilisateurs
WHERE sexe="h" LIMIT 3

23) Sélectionner 3 entrées d'une table en sautant les 2 premiers
SELECT prenom, nom
FROM utilisateurs
WHERE sexe="h" LIMIT 2, 3

24) Sélectionner tous les champs, 3 entrées d'une table en sautant les 2 premiers
SELECT *
FROM utilisateurs
WHERE sexe="h" LIMIT 2, 3

25) Sélectionner des champs et les ordonner (ASC = ascendant, DESC = descendant)
SELECT *
FROM utilisateurs
ORDER BY prenom DESC

25) Sélectionner des champs et les ordonner selon de multiple critères
SELECT *
FROM utilisateurs
ORDER BY prenom, id DESC

26) Compter le nombre de champs
SELECT COUNT(*) AS population
FROM utilisateurs
WHERE sexe='h'

27) Compter le nombre de champs, par groupes
Les champs NULL ne sont pas comptés.
SELECT COUNT(id) AS population, sexe
FROM utilisateurs
GROUP BY sexe

28) Sélectionner le plus grand, par groupes
(Autres fonctions : MIN, AVG)
SELECT MAX(birthday) AS aniversaire, sexe
FROM utilisateurs
GROUP BY sexe

29) Sélectionner le plus grand, par groupes
(Opérateurs : = != <> < > <= >= AND OR NOT)
SELECT *
FROM utilisateurs
WHERE nom="Doe" AND sexe="h"

30) Sélectionner selon une partie d'un champ
SELECT *
FROM utilisateurs
WHERE prenom LIKE "M%"

31) Sélectionner selon une partie d'un champ
SELECT *
FROM utilisateurs
WHERE prenom LIKE "%hn%"

32) Sélectionner selon une condition ayant plusieurs choix
SELECT *
FROM utilisateurs
WHERE id IN (1,4,6)

*** Les fonctions
33) Quelques exemples de fonctions numériques
SELECT ABS(...), ROUND(...), FLOOR(...), SQRT(...), TRUNCATE(...), MOD(22,7), id+2
FROM utilisateurs
WHERE id IN (1,4,6)

34) Quelques exemples de fonctions sur les textes
SELECT *, CONCAT(prenom, ' ', nom) AS nomination
FROM utilisateurs
WHERE id < 6

35) Quelques exemples de fonctions sur les textes
SELECT *, LENGTH(prenom) AS longueur
FROM utilisateurs
WHERE LENGTH(ville) > 5 AND nom LIKE "D%"

36) Quelques exemples de fonctions sur les textes
SELECT *, LOWER(prenom) AS prenomMIN, UPPER(nom) AS nomMAJ, SUBSTR(ville, 2, 3) AS ville3
FROM utilisateurs

37) Quelques exemples de fonctions sur les textes
SELECT *, REPLACE(nom, "Doe", "Dae") AS nom2
FROM utilisateurs

38) Sonorité d'un texte
SELECT *, SOUNDEX(prenom) AS prenom2
FROM utilisateurs

Autres fonctions : REVERSE(...), TRIM(...), ...
Exemple d'utilisation de TRIM, pour éliminer des blancs inutiles :
UPDATE utilisateurs SET prenom = TRIM(BOTH ' ' FROM prenom)

39) Quelques exemples de fonctions sur les dates
SELECT *, ADDDATE(birthday, 10) AS newdate
FROM utilisateurs
WHERE id < 6

SELECT *, ADDDATE(birthday, INTERVAL 1 YEAR) AS newdate
FROM utilisateurs

SELECT *, SUBDATE(birthday, INTERVAL 1 MONTH) AS newdate
FROM utilisateurs

SELECT *, ADDTIME(birthday, '1:0:0') AS newdate
FROM utilisateurs

SELECT *, SUBTIME(birthday, '1 1:0:0') AS newdate
FROM utilisateurs

SELECT *
FROM utilisateurs
WHERE birthday < SUBDATE("2020-10-30", INTERVAL 26 YEAR)

SELECT *, NOW(), CURDATE(), CURTIME()
FROM utilisateurs
WHERE birthday < SUBDATE(CURDATE(), INTERVAL 26 YEAR)

SELECT *, FROM_DAYS(DATEDIFF(CURDATE(), birthday))
FROM utilisateurs

SELECT *, DATE_FORMAT(birthday, "%W %d %M %Y")
FROM utilisateurs

C.f. lc_time_names pour définir la langue utilisée dans les dates.



Plan du Site : Home   arrow   bgweb.html   arrow   exemples.html   arrow   a7mysql1010_informations.html ( = http://www.juggling.ch/gisin/bgweb/a7mysql1010_informations.html )


Page mise à jour le 1 novembre 2020 par Bernard Gisin     ( Envoyer un e-mail )
Hébergement par : www.infomaniak.ch