En général, les programmeurs ou les administrateurs de bases de données penseront soudainement à une série de questions comme celle-ci lorsqu'ils tapent du code : Qui suis-je ? Qu'est-ce que je fais ? Où est ma base de données ? Où est ma table ? Comment ai-je créé mon tableau ? Que dois-je faire? Vous pourriez penser à la commande SHOW DATABASES ; Mais cette commande sert à lister les bases de données gérées par MySQL. Ce n'est pas une commande pour savoir où je me trouve. De quelle commande s'agit-il ?
J'ai trouvé cette commande lorsque quelqu'un parcourait des classiques anciens :
SELECT DATABASE();
SELECT DATABASE();
SELECT DATABASE(); ();
+----------------+
| BASE DE DONNÉES() |
+--------- -+
| test |
1 ligne dans l'ensemble (0,00 sec)
mysql>
Évidemment, c'est une commande qui me dit dans quelle base de données je me trouve. Ensuite, il y aura certainement un groupe de jeunes qui demanderont : si je n’entre dans aucune base de données, qu’est-ce qui sera affiché ?
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+-------- ----+
| NULL |
1 ligne dans l'ensemble (0,00 sec)
mysql>
Bien sûr que c'est NULL, qu'est-ce que ça peut être d'autre ?
Maintenant, nous avons trouvé la base de données (test) que nous utilisons. Ensuite, il est temps de trouver la table que vous recherchez, comme (animal de compagnie). Selon les enregistrements des livres anciens, les commandes suivantes doivent être utilisées :
SHOW TABLES;
mysql>
+---------- --- -+
| Tables_in_test |
+----------------+
| événement |
| animal de compagnie |
2 lignes dans l'ensemble (0,00 sec)
mysql>
Et puis je veux connaître la structure du tableau. Que dois-je faire ?
DESCRIBE pet;
mysql> DESCRIBE pet;
+--------------+---------- - -+------+-----+--------+
| Champ Type | Null Clé Par défaut | 🎜>+---------+-------------+------+-----+--------- + -------+
| nom | varchar(20) | OUI | NULL |
| varchar(20) | NULL | sexe | char(1) | OUI | NULL |
+------ ---+-------------+------+-----+---- -----+-------+
6 lignes dans un ensemble (0,00 sec)
mysql>
-> article INT(4) UNSIGNED ZEROFILL DEFAULT '0000 ' PAS NULL,
-> revendeur CHAR(20) PAR DÉFAUT '' PAS NULL, -> prix DOUBLE(16,2) PAR DÉFAUT '0.00' PAS NULL,
-> article, revendeur));
Requête OK, 0 ligne affectée (0,56 sec)
mysql>
-> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
- > (3,' C',1.69),(3,'D',1.25),(4,'D',19.95);Requête OK, 7 lignes affectées (0,24 sec)
Enregistrements : 7 Doublons : 0 Avertissements : 0
mysql>
mysql> SELECT * FROM shop;
+----------+--------+-------+
| article | prix |
+---------+--------+-------+
| 0001 A |
| | 3,99 |
| 10,99 |
| 0003 |
|
+---------+--------+-------+
7 lignes dans l'ensemble (0,00 sec)
mysql>
Ensuite, nous pouvons apprendre le contenu suivant
La valeur maximale de la colonne
Exemple : Quel est le plus grand numéro d'article dans la boutique ?
Le fonctionnement est le suivant :
SELECT MAX(article) FROM shop;
mysql>SELECT MAX(article) FROM shop;
+---- -- -------+| MAX(article) |
+-------------+
|4 |
+--- - ----------+
1 ligne dans l'ensemble (0,00 sec)
mysql>
Exemple : Pour trouver le produit le plus cher
procédez comme suit :
SELECT MAX(price) FROM shop;
mysql> SELECT MAX(price) FROM shop;
+-- ----------+| MAX(prix) |
+------------+
| 19.95 |
+ --- ---------+
1 ligne dans l'ensemble (0,00 sec)
mysql>
Vous savez ce que fait la fonction MAX().
La ligne avec la valeur maximale d'une colonne
Chestnut : Requête le plus cher Informations sur le produit
Le fonctionnement est le suivant :
SELECT * FROM shop WHERE price = (SELECT MAX(price) FROM shop);
mysql>
-> OÙ prix = -> (SELECT MAX(price) FROM shop);
+---------+--------+-- -- ---+
|article | prix revendeur |
+---------+--------+-------+
| 0004 | D | 19.95 |
+---------+--------+-------+
1 ligne dans l'ensemble (0.00 sec)
mysql>
Il existe une autre opération :
SELECT * FROM shop ORDER BY price DESC LIMIT 1;
mysql> -> ; COMMANDER PAR prix DESC
-> LIMITE 1;+--------+--------+-------+
| article | prix |
+--------+--------+-------+
| 19.95 | >+ ---------+--------+-------+
1 ligne dans l'ensemble (0,00 sec)
mysql>
La première est une requête imbriquée, et la seconde est triée par prix pour n'en afficher qu'un seul.
Valeur maximale de colonne : par groupe
Châtaigne : chaque article (article) ? Quel est le prix maximum ?
Le fonctionnement est le suivant :
SELECT article, MAX(price) AS price FROM shop GROUP BY article;
mysql> , MAX( prix) AS prix
-> DE la boutique-> GROUPE PAR article;
+--------+-------+ | article | prix |
+--------+-------+
| 0001 |
| 10,99 |
| |
| 0004 | 19.95 |
+---------+-------+
4 lignes dans l'ensemble (0,00 sec)
mysql>
La ligne avec la valeur inter-groupe maximale d'un champ
Je ne Je ne comprends pas ce que signifie le titre. . . .
Châtaigne : Pour chaque article, trouvez le revendeur de l'article le plus cher.
Le fonctionnement est le suivant :
SELECT article, revendeur, prix
DE la boutique s1OÙ prix = (SELECT MAX(prix)
DE la boutique s2WHERE s1 .article = s2.article);
mysql> SELECT article, revendeur, prix
-> FROM shop s1
-> )
-> OÙ s1.article = s2.article);
+---------+--------+- --- ---+
|article | prix revendeur |
+---------+--------+-------+
| 0001 | B |
| 0002 | A 10,95 |
+-------- -+- -------+-------+
4 lignes dans l'ensemble (0,00 sec)
La raison n'est pas écrite dans le livre, et je ne le fais pas je comprends bien. Ceux qui souhaitent en savoir plus peuvent l'expliquer dans la zone commentaires.
Utiliser les variables utilisateur
Le fonctionnement est le suivant :
SELECT @min_price:=MIN(price), @max_price:=MAX(price) FORM shop;
SELECT * FROM shop OÙ prix = @min_price OU prix = @max_price;
mysql> SELECT @min_price:=MIN(price), @max_price:=MAX(price) FROM shop;
+----------------------------------- ------ ----+--------------+
| @min_price:=MIN(prix) @ max_price:=MAX(prix) |
+------------------------+------------- ----- -----+
| 1.25 | 19.95 |
+------------------------+-- ---- ------------------+
1 ligne dans l'ensemble (0,13 sec)
mysql> SELECT * FROM shop WHERE price=@ min_price OU price = @ max_price;
+---------+--------+-------+
| prix du revendeur |
+--- ------+--------+-------+
| 0003 | 🎜>+-- -------+--------+-------+
2 lignes dans l'ensemble (0,09 sec)
mysql>
Nous en saurons plus sur les variables utilisateur plus tard. Les outardes curieuses peuvent Baidu.
Utiliser des clés étrangères
Je ne veux pas accéder directement à l'opération , il y a un transfert au dessus de Door, c'est très bien.
CREATE TABLE person (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);
<br>
CREATE TABLE shirt (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
PRIMARY KEY (id)
);
<br>
INSERT INTO person VALUES (NULL, 'Antonio Paz');
<br>
SELECT @last := LAST_INSERT_ID();
<br>
INSERT INTO shirt VALUES
(NULL, 'polo', 'blue', @last),
(NULL, 'dress', 'white', @last),
(NULL, 't-shirt', 'blue', @last);
<br>
INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');
<br>
SELECT @last := LAST_INSERT_ID();
<br>
INSERT INTO shirt VALUES
(NULL, 'dress', 'orange', @last),
(NULL, 'polo', 'red', @last),
(NULL, 'dress', 'blue', @last),
(NULL, 't-shirt', 'white', @last);
<br>
SELECT * FROM person;
+----+---------------------+
| id | name |
+----+---------------------+
| 1 | Antonio Paz |
| 2 | Lilliana Angelovska |
+----+---------------------+
<br>
SELECT * FROM shirt;
+----+---------+--------+-------+
| id | style | color | owner |
+----+---------+--------+-------+
| 1 | polo | blue | 1 |
| 2 | dress | white | 1 |
| 3 | t-shirt | blue | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
| 7 | t-shirt | white | 2 |
+----+---------+--------+-------+
<br>
<br>
SELECT s.* FROM person p, shirt s
WHERE p.name LIKE 'Lilliana%'
AND s.owner = p.id
AND s.color <> 'white';
<br>
+----+-------+--------+-------+
| id | style | color | owner |
+----+-------+--------+-------+
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
+----+-------+--------+-------+ 我错了,网断了。只好拷贝书上的代码了。
Tableau : chemise
Créer une table : CREATE TABLE `shirt` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`style` enum('t-shirt','polo','dress') NOT NULL ,
`color` enum('red','blue','orange','white','black') NOT NULL,
`owner` smallint(5) unsigned NOT NULL,
PRIMARY KEY ( `id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
1 ligne dans l'ensemble (0,01 sec)
mysql>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!