Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 98

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

Π Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π». 8.13 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. Π’ основном Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π΄ΠΎ сих ΠΏΠΎΡ€, достаточно для создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ этот частичный ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π½Π°ΠΌ каТСтся ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.


Π’Π°Π±Π»ΠΈΡ†Π° 8.13

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ API-Π²Ρ‹Π·ΠΎΠ²Π° ОписаниС char *mysql_get_client_info(void); Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ клиСнтской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ char *mysql_get_host_info(MYSQL *connection); Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ сСрвСру char *mysql_get_server_info(MYSQL *connection); Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сСрвСрС, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ char *mysql_info(MYSQL* connection); Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ самом послСднСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ запросС, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с запросами Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ INSERT ΠΈ UPDATE. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ NULL int mysql_select_db(MYSQL *connection, const char *dbname); ЗамСняСт Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π° Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²Π° доступа. Π’ случаС успСха Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ноль int mysql_shutdown(MYSQL* connection, enum mysql_enum_shutdown level); Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²Π°, Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ останова слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ SHUTDOWN_DEFAULT. Π’ случаС успСха Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ноль

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков

БСйчас ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисках ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для доступа ΠΊ этим Π΄Π°Π½Π½Ρ‹ΠΌ. Для простоты Π²Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ΡΡŒ трСмя Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΡ‡Π΅Π½ΡŒ простыми связями ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

НачнитС с создания Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‚Π΅ΠΌ сдСлайтС Π΅Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

mysql> create database blpcd;

Query OK, 1 row affected (0.00 sec)

mysql> use blpcd

Connection id: 10

Current database: blpcd

mysql>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ созданию Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Π°ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†.

Π­Ρ‚Π° вСрсия Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнта ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска: исполнитСля (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ), элСмСнт Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ. Если Π²Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, Π΅Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…, Ρ‚ΠΎ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диск состоит ΠΈΠ· ряда Ρ€Π°Π·Π½Ρ‹Ρ… Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ, Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диски связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ: исполнитСлСм ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ, производящСй ΠΈΡ…, прСдставлСнным ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ стилСм ΠΈ Ρ‚.Π΄.

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ слоТной, ΠΏΠΎΠΏΡ‹Ρ‚Π°Π²ΡˆΠΈΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС эти Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ сСбя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ двумя самыми Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ связями.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диск состоит ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ количСства Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ, поэтому Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠΊΠ΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ исполнитСля (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹) часто нСсколько альбомов, поэтому Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ свСдСния ΠΎΠ± исполнитСлС ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ всС ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диски, записанныС этим исполнитСлСм. Π’Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… исполнитСлСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, выпустили ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π°Π»ΡŒΠ±ΠΎΠΌΡ‹, ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со сборными ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисками β€” Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ структуру вашСй ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ простой!

Бвязи Ρ‚ΠΎΠΆΠ΅ сохраняйтС ΠΎΡ‡Π΅Π½ΡŒ простыми β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ (ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹) выпустил ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диск состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ. Бвязи ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π² вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… прСдставлСны Π½Π° рис. 8.8.

Рис. 8.8

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

БСйчас Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ структуру Ρ‚Π°Π±Π»ΠΈΡ†. НачнитС с основной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ β€” Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков (cd), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится большая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ (id) ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ваши собствСнныС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ понадобится ID-Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ исполнитСлСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ выпустил альбом.

Π’Π°Π±Π»ΠΈΡ†Π° исполнитСлСй (artist) ΠΎΡ‡Π΅Π½ΡŒ проста; сохранитС Π² Π½Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя исполнитСля ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ (id) исполнитСля. Π’Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ (track) Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ проста; Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ID ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ CD относится Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°, Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска:

CREATE TABLE cd (

 id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,

 title VARCHAR(70) NOT NULL,

 artist_id INTEGER NOT NULL,

 catalogue VARCHAR(30) NOT NULL,

 notes VARCHAR(100)

);

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ создаСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ cd со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ столбцами:

β–‘ ΡΡ‚ΠΎΠ»Π±Π΅Ρ† id, содСрТащий Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ автоматичСски увСличиваСтся ΠΈ прСдставляСт собой ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹;

β–‘ ΡΡ‚ΠΎΠ»Π±Π΅Ρ† title Π΄Π»ΠΈΠ½ΠΎΠΉ Π΄ΠΎ 70 символов;

β–‘ ΡΡ‚ΠΎΠ»Π±Π΅Ρ† artist_id β€” Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ artist;

β–‘ ΡΡ‚ΠΎΠ»Π±Π΅Ρ† catalogue β€” Π½ΠΎΠΌΠ΅Ρ€ Π΄Π»ΠΈΠ½ΠΎΠΉ Π΄ΠΎ 30 символов;

β–‘ ΡΡ‚ΠΎΠ»Π±Π΅Ρ† notes Π΄ΠΎ 100 символов.

Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ столбСц notes ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ NULL; Ρƒ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ значСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° artist:

CREATE TABLE artist (

 id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,

 name VARCHAR(100) NOT NULL

);

И снова Ρƒ вас столбСц id ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ для ΠΈΠΌΠ΅Π½ΠΈ исполнитСля.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‚Π°Π±Π»ΠΈΡ†Π° track:

CREATE TABLE track (

 cd_id INTEGER NOT NULL,

 track_id INTEGER NOT NULL,

 title VARCHAR(70),

 PRIMARY KEY(cd_id, track_id)

);

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° этот Ρ€Π°Π· Π²Ρ‹ объявили ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ нСсколько ΠΈΠ½Π°Ρ‡Π΅. Π’Π°Π±Π»ΠΈΡ†Π° track Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ID ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ нСсколько Ρ€Π°Π·, ID любой Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ, скаТСм, Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ 1, Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ нСсколько Ρ€Π°Π· Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисках. Но ΠΈΡ… комбинация всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ, поэтому ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ваш ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π΄Π²ΡƒΡ… столбцов. Π’Π°ΠΊΠΎΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ составным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ эти SQL-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π² Ρ„Π°ΠΉΠ»Π΅, Π½Π°Π·Π²Π°Π½Π½ΠΎΠΌ create_tables.sql, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π΄Π²ΠΈΠ³Π°ΠΉΡ‚Π΅ΡΡŒ дальшС ΠΈ создайтС Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π½Π΅ΠΉ. Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнария содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π² Π½ΠΈΡ… ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ эти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ссли ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚.

$ mysql -u rick -Ρ€

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

mysql> use blpcd;

Database changed

mysql> \. create_tables.sql

Query OK, 0 rows affected (6.04 sec)

Query OK, 0 rows affected (0.10 sec)

Query OK, 0 rows affected (0.00. sec)

mysql>

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \. для получСния Π²Π²ΠΎΠ΄Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° create_tables.sql.

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ SQL ΠΈΠ»ΠΈ просто набирая Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ обозрСватСля запросов MySQL Query Browser.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ созданы, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ MySQL Administrator (рис. 8.9), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ провСряСтС Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ индСксов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… blpcd (ΠΈΠ»ΠΈ схСму, Ссли Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½).

Π’Ρ‹Π±Ρ€Π°Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΡŒΡŽ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Tables (Π’Π°Π±Π»ΠΈΡ†Ρ‹)) ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ столбцах (рис. 8.10).

Рис. 8.9


Рис. 8.10 


Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π΄Π²Π° Π·Π½Π°Ρ‡ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π° рядом со столбцами cd_id ΠΈ track_id Π½Π° рис. 8.10? Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ составного ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Π Π°Π·Ρ€Π΅ΡˆΠΈΠ² названию Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ NULL (условиС NOT NULL Π½Π΅ провСряСтся), Π²Ρ‹ допускаСтС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉΡΡ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ названия.

Вставка Π΄Π°Π½Π½Ρ‹Ρ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ любого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… β€” вставка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ продСмонстрируСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° тСстовых Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ для понимания происходящСго, Ρ‚. ΠΊ. всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π² основном ΠΏΠΎΡ…ΠΎΠΆΠΈ β€” ΠΎΠ½ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π•ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… аспСкта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ здСсь слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

β–‘ Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ удаляСт Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с "чистого листа".