ΠΈΠ»ΠΈ
INDEX [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°] (ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...)
ΠΈΠ»ΠΈ
UNIQUE [INDEX] [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°]
(ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...)
ΠΈΠ»ΠΈ
FULLTEXT [INDEX] [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°]
(ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...)
ΠΈΠ»ΠΈ
[CONSTRAINT symbol]
FOREIGN KEY [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°]
(ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...)
[reference_definition]
ΠΈΠ»ΠΈ
CHECK (expr)
ΠΡΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ (ΡΡΠΎΠ»Π±ΡΠΎΠ²), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ° [(Π΄Π»ΠΈΠ½Π°_ΠΈΠ½Π΄Π΅ΠΊΡΠ°)]
FOREIGN KEY, CHECK ΠΈ REFERENCES Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π² MySQL. ΠΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ SQL-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π½Π° Π½ΠΈΡ ΠΌΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ.
ΠΡΠΎΠΌΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΠΎΠΏΡΠΈΠΈ_ΡΠ°Π±Π»ΠΈΡΡ), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅:
- ΡΠΈΠΏ ΡΠ°Π±Π»ΠΈΡΡ: TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }
- Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°: AUTO_INCREMENT = ΡΠΈΡΠ»ΠΎ
- ΡΡΠ΅Π΄Π½ΡΡ Π΄Π»ΠΈΠ½Π° ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅: AVG_ROW_LENGTH = ΡΠΈΡΠ»ΠΎ
- ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ (ΡΡΡΠΎΠΊΠ° ΠΈΠ· 60 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²): COMMENT = "ΡΡΡΠΎΠΊΠ°"
- ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ: MAX_ROWS = ΡΠΈΡΠ»ΠΎ ΠΈ MIN_ROWS = ΡΠΈΡΠ»ΠΎ
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ (ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ) ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ CREATE β ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ SELECT (select_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅). Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ:
[IGNORE | REPLACE] SELECT ...
(Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ SELECT)
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ CREATE ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ SELECT, ΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π²ΡΠ±ΠΎΡΠΊΠΎΠΉ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΡΠΈΠΌΠ΅Ρ 10.1. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Persons, ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 10.1.
mysql>CREATE TABLE Persons
(id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50), last_name
VARCHAR(100), death_date INT,
description TEXT, photo INT,
citienship CHAR(50) DEFAULT 'Russia');
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠΉ Π΄Π»Ρ MySql ΠΊΠΎΠΌΠ°Π½Π΄Ρ SHOW ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ°Π±Π»ΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ :
mysql>SHOW databases;
Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ book ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π² Π½Π΅ΠΉ:
mysql>use book;
mysql>show tables;
ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Persons:
mysql> show columns from Persons;
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ DROP TABLE
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ DROP TABLE ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡ. ΠΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΄Π°Π»ΡΡΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
DROP TABLE [IF EXISTS] ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ
[, ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ,...]
[RESTRICT | CASCADE]
Π Π²Π΅ΡΡΠΈΠΈ MySQL 3.22 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° IF EXISTS, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ.
ΠΠΏΡΠΈΠΈ RESTRICT ΠΈ CASCADE ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π΄ΡΡΠ³ΠΈΡ Π‘Π£ΠΠ. Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½ΠΈ Π½Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ.
mysql> DROP TABLE IF EXISTS Persons,
Artifacts, test;
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΡΠΎΠ»Π±ΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΎΠ»Π±ΡΡ Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π΅Π΅ ΡΠΈΠΏ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ALTER [IGNORE] TABLE ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ
alter_specification
[, alter_specification ...]
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ (Π²ΡΠ΅ ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² alter_specification):
ADD [COLUMN] ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠΎΠ»Π±ΡΠ°
[FIRST | AFTER ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ° ]
ΠΈΠ»ΠΈ
ADD [COLUMN] (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠΎΠ»Π±ΡΠ°,
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠΎΠ»Π±ΡΠ°,...)
ΠΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΈ Π΄Π°Π»Π΅Π΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠΎΠ»Π±ΡΠ° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ.
ADD INDEX [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°] (ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...) ΠΈΠ»ΠΈ ADD PRIMARY KEY (ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...) ΠΈΠ»ΠΈ ADD UNIQUE [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°] (ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...) ΠΈΠ»ΠΈ ADD FULLTEXT [ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°] (ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ_ΡΡΠΎΠ»Π±ΡΠ°,...)
ALTER [COLUMN] ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ° {SET DEFAULT literal | DROP DEFAULT} ΠΈΠ»ΠΈ CHANGE [COLUMN] ΡΡΠ°ΡΠΎΠ΅_ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠΎΠ»Π±ΡΠ° ΠΈΠ»ΠΈ MODIFY [COLUMN] ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠΎΠ»Π±ΡΠ°
DROP [COLUMN] ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ°
DROP PRIMARY KEY
DROP INDEX ΠΈΠΌΡ_ΠΈΠ½Π΄Π΅ΠΊΡΠ°
RENAME [TO] Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ
ORDER BY ΠΏΠΎΠ»Π΅
ΠΈΠ»ΠΈ
ΠΎΠΏΡΠΈΠΈ_ΡΠ°Π±Π»ΠΈΡΡ
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΡΠΎΠ»Π±ΡΠ°, Π½ΠΎ DESCRIBE ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΎΠ»Π±Π΅Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ, ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, MySQL ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ VARCHAR Π½Π° CHAR MySQL Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ VARCHAR, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. Π’ΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΠΊΠΎΠΏΠΈΠΈ, Π·Π°ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ, Π° Π½ΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² Π½ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π²ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ Π½Π΅ΡΠ΄Π°Π²ΡΠΈΡ ΡΡ. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ALTER TABLE ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²Π° Π½ΠΎΠ²Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ ALTER TABLE, ΠΊΡΠΎΠΌΠ΅ RENAME, MySQL Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΈ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ°).
ΠΡΠΈΠΌΠ΅Ρ10.3. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Persons ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π³ΠΎΠ΄Π° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°:
mysql> ALTER TABLE Persons
ADD bday INTEGER AFTER last_name;
ΠΡΠ°ΠΊ, ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ: ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ . Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ Ρ ΡΠ°Π½ΡΡΡΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ, Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π±Π»ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ ΡΡΠΎΠ»Π±ΡΡ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ (select_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ), ΡΠ°Π±Π»ΠΈΡΡ (table_references), ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠ°, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠ»ΠΎΠ²ΠΈΠ΅ (where_definition), ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠΈΡ ΡΡΠΎΠ»Π±ΡΠ°Ρ , ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π±Π΅Π· ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ, ΡΠ΅ΠΌΡ ΡΠ°Π²Π½ΠΎ 2*2, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ
mysql> SELECT 2*2;
Π£ΠΏΡΠΎΡΠ΅Π½Π½ΠΎ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° SELECT ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
SELECT select_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅1, select_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅2,
...
[FROM table_references
[WHERE where_definition]
[ORDER BY {ΡΠΈΡΠ»ΠΎ | ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ° |
ΡΠΎΡΠΌΡΠ»Π°}
[ASC | DESC], ...]]
ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ [ ] ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎΡΡ Π² Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡΠ° | ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². ΠΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ORDER BY ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΡ ΡΡΠΎΠ»Π±ΡΠ°, ΡΠΈΡΠ»ΠΎ (ΡΠ΅Π»ΠΎΠ΅ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅) ΠΈΠ»ΠΈ ΡΠΎΡΠΌΡΠ»Ρ ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ (ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ β ASC, ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ β DESC). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π² select_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Β«*Β», ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ. ΠΡΠΎΠΌΠ΅ Β«*Β» Π² select_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° max, min ΠΈ avg.
ΠΡΠΈΠΌΠ΅Ρ 10.4. ΠΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Persons Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»Π΅ first_name ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 'ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ':
mysql> SELECT * FROM Persons
WHERE first_name='ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ';
ΠΡΠ±ΡΠ°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ (title, description) Π°ΡΡΠ΅ΡΠ°ΠΊΡΠ° ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 10:
mysql> SELECT title,description
FROM Artifacts WHERE id=10;
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ INSERT
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ INSERT Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠΌ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠΎΡΠΌΠ°Ρ Π·Π°Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²Π½Π΅ΡΠ΅Π½Ρ ΡΡΡΠΎΠΊΠΈ. Π‘ΡΠΎΠ»Π±ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠΌΠ΅Π½ ΡΡΠΎΠ»Π±ΡΠΎΠ² (ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ°) ΠΈΠ»ΠΈ Π² ΡΠ°ΡΡΠΈ SET.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] ΠΈΠΌΡ_ΡΠ°Π±Π»ΠΈΡΡ [(ΠΈΠΌΡ_ΡΡΠΎΠ»Π±ΡΠ°,...)]
VALUES (Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅,...),(...),...
ΠΡΠ° ΡΠΎΡΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ INSERT Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ ΡΡΠΎΠ»Π±ΡΡ, Π° ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° VALUES β ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
mysql> INSERT INTO Persons
(last_name, bday) VALUES
('ΠΠ²Π°Π½ΠΎΠ²', '1934');
Π²ΡΡΠ°Π²ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ Persons ΡΡΡΠΎΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ (last_name) ΠΈ Π΄Π°ΡΡ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ (bday) Π±ΡΠ΄ΡΡ Π·Π°Π΄Π°Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Β«ΠΠ²Π°Π½ΠΎΠ²Β» ΠΈ Β«1934Β».
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]