Normalerweise fallen normalen Programmierern oder Datenbankadministratoren beim Eingeben von Code plötzlich folgende Fragen ein: Wer bin ich? Wo bin ich? Was mache ich? Wo ist meine Datenbank? Wie habe ich meine Tabelle erstellt? Was soll ich tun? Sie denken vielleicht an den Befehl SHOW DATABASES; Dieser Befehl dient jedoch dazu, die von MySQL verwalteten Datenbanken aufzulisten. Es ist kein Befehl, um zu wissen, wo ich mich befinde. Um welchen Befehl handelt es sich?
Ich habe diesen Befehl gefunden, als jemand alte Bücher durchstöberte:
SELECT DATABASE();
mysql> ();
+----------------+
|. DATABASE() |
+---------- -+
|. test |
+-----------+
1 Zeile im Satz (0,00 Sek.)
mysql>
Natürlich ist dies ein Befehl, der mir sagt, in welcher Datenbank ich mich befinde. Dann wird es bestimmt eine Gruppe junger Leute geben, die fragen: Wenn ich keine Datenbank eingebe, was wird dann angezeigt?
mysql> SELECT DATABASE();
+-----------+
| ----+
|. NULL |
+------------+
1 Zeile im Satz (0,00 Sek.)
Natürlich ist es NULL, was kann es sonst sein? Jetzt haben wir die Datenbank (Test) gefunden, die wir verwenden. Dann ist es an der Zeit, den Tisch zu finden, den Sie suchen, z. B. (pet). Gemäß den Aufzeichnungen in alten Büchern sollten die folgenden Befehle verwendet werden: SHOW TABLES;mysql>
+----------- --- -+
|. Tables_in_test |
+----------------+
| Ereignis |
+-- --- ----------+
2 Zeilen im Satz (0,00 Sek.)
mysql>
Und dann möchte ich den Aufbau der Tabelle wissen. Was soll ich tun?
DESCRIBE pet;
mysql>
+---------+---------- - -+-----+-------+Feld | 🎜>+---------+-------------+------+-----+--------- + -------+
|. varchar(20) | NULL |. char(1) |. NULL |. ---+-------------+------+-----+---- -----+-------+
6 Zeilen im Satz (0,00 Sek.)
mysql>
Alte Treiber kürzen es im Allgemeinen als
-> Article INT(4) UNSIGNED ZEROFILL DEFAULT '0000 ' NICHT NULL,
-> Händler CHAR(20) STANDARD '' NICHT NULL,-> Preis DOUBLE(16,2) STANDARD '0,00' NICHT NULL,
-> Artikel, Händler));Abfrage OK, 0 Zeilen betroffen (0,56 Sek.)
mysql>
Dann fügen Sie einige Daten ein:
INSERT INTO shop VALUES
-> (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);
Abfrage OK, 7 Zeilen betroffen (0,24 Sek.)
mysql> SELECT * FROM shop;
+--------+-------+
| Preis |
+-------+------++---------+--------+-------+
7 Zeilen im Satz (0,00 Sek.)
MySQL>
Dann können wir den folgenden Inhalt lernen
Der Maximalwert der Spalte
+---- -- -------+
|. MAX(Artikel) |+------------+
|. - ----------+1 Zeile im Satz (0,00 Sek.)
mysql>
Beispiel : Um das teuerste Produkt zu finden
gehen Sie wie folgt vor:
SELECT MAX(price) FROM shop;
SELECT MAX(price) FROM shop;
+-- ---------+|. MAX(Preis) |
+-----------+| --- ---------+
1 Zeile im Satz (0,00 Sek.)mysql>
Sie wissen, was die Funktion MAX() macht.
-> WHERE Preis =
-> (MAX(Preis) AUS DEM Shop AUSWÄHLEN);+--------+-- -- ---+
|. Artikel |. Preis |+--------+-------+
|. 0004 |. D |. 19,95 |+--------+-------+
1 Reihe im Satz (0,00 Sek.)
mysql>
Es gibt eine weitere Operation:
SELECT * FROM shop ORDER BY price DESC LIMIT 1;
mysql> SELECT * FROM shop
-> ; BESTELLEN NACH Preis DESC
+---------+-------+
|. Artikel |. Preis |+-------+-------++ ---------+--------+-------+
1 Zeile im Satz (0,00 Sek.)MySQL>
Erstes ist eine verschachtelte Abfrage und letzteres ist nach Preis sortiert, um nur eine anzuzeigen.
Maximalwert der Spalte: nach Gruppe
-> AUS shop
-> GRUPPE NACH artikel;+--------++------+------+
| |
|. 19,95 |+---------+-------+
4 Zeilen im Satz (0,00 Sek.)mysql>
Die Zeile mit dem maximalen Intergruppenwert eines Feldes
Ich nicht Ich verstehe nicht, was der Titel bedeutet. . . .
Kastanie: Finden Sie für jeden Artikel den Händler des teuersten Artikels.
Die Bedienung ist wie folgt:
Artikel, Händler, Preis AUSWÄHLEN
VON Shop s1WHERE s1 .article = s2.article);
MYSQL> SELECT Artikel, Händler, Preis
-> FROM shop s1-> )
-> FROM shop s2-> WHERE s1.article = s2.article);
+--------+- --- ---+|. Artikel |. Preis |
+--------+-------+|. 3,99 |. 0002 |. 0003 |. 19,95 |. -+- -------+-------+
4 Zeilen im Satz (0,00 Sek.)
Der Grund steht nicht im Buch, und ich auch nicht verstehe es durchaus. Wer mehr wissen möchte, kann dies im Kommentarbereich erklären.
Benutzervariablen verwenden
Kastanie: Finden Sie den Artikel mit dem höchsten oder niedrigsten Preis
Die Operation ist wie folgt:
SELECT @min_price:=MIN(price), @max_price:=MAX(price) FORM shop;
SELECT * FROM shop WHERE Preis = @min_price ODER Preis = @max_price;
mysql> SELECT @min_price:=MIN(price), @max_price:=MAX(price) FROM shop;
+-------------------- ------ ----+--------+
| @min_price:=MIN(price) |. max_price:=MAX(price ) |
+------------------------+------------- ----- -----+
|. 19,95 |
+---------+-- ---- ----+
1 Zeile im Satz (0,13 Sek.)
MYSQL> min_price ODER price = @ max_price;
+--------+-------++----------+-------+
|0003 |
| 🎜>+-- -------+--------+-------+
2 Zeilen im Satz (0,09 Sek.)
MySQL>
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 |
+----+-------+--------+-------+ 我错了,网断了。只好拷贝书上的代码了。
`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 Zeile im Satz (0,01 Sek.)
mysql>
Das obige ist der detaillierte Inhalt vonFassen Sie Kenntnisse im Zusammenhang mit MySQL zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!