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

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

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

Если Π²Ρ‹ допустили ΠΎΡˆΠΈΠ±ΠΊΡƒ, MySQL Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ввСсти ΠΈΡ… простым Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши <Enter>.

3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π”Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SQL-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ INSERT. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ столбСц childno ΠΊΠ°ΠΊ AUTO_INCREMENT, Π² Π½Π΅Π³ΠΎ Π½Π΅ вводятся Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ просто Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ MySQL Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€.

mysql> INSERT INTO children(fname, age) VALUES("Jenny", 21);

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO children(fname, age) VALUES("Andrew", 17);

Query OK, 1 row affected (0.00 sec)

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ снова ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΡ…. Π’Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SELECT:

mysql> SELECT childno, fname, age FROM children;

+---------+--------+-----+

| childno | fname  | age |

+---------+--------+-----+

| 1       | Jenny  | 21  |

| 2       | Andrew | 17  |

2 rows in set (0.00 sec) mysql>

ВмСсто явного пСрСчислСния столбцов для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для указания столбцов Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ (*), которая пСрСчислит всС столбцы Π² Π½Π°Π·Π²Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ всСгда слСдуСт явно Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ столбСц ΠΈΠ»ΠΈ столбцы, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСанс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвСру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… rick. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π²Π²Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SQL для создания вашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΡƒΠΆΠ½ΠΎΠ΅ количСство строк для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π½Π°ΠΊΠ° ;, MySQL создала Π²Π°ΡˆΡƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ INSERT для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ² Π² столбцС childno автоматичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ числа. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SELECT для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… вашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ОбъСм Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹ Π½Π΅ позволяСт Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС языка SQL ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² проСктирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ см. Π½Π° Web-сайтС www.mysql.com.

ГрафичСскиС срСдства

Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Ρ…ΠΎΡ€ΠΎΡˆΠ° ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π° Π²ΠΎ всСх ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ…, Π½ΠΎ Π² наши Π΄Π½ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ графичСскиС срСдства.

Π£ Π‘Π£Π Π‘Π” MySQL Π΄Π²Π° основных графичСских срСдства: MySQL Administrator ΠΈ MySQL Query Browser. Π’ΠΎΡ‡Π½ΠΎΠ΅ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° с этими срСдствами зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ дистрибутива; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² дистрибутивах Red Hat ΠΈΡ‰ΠΈΡ‚Π΅ mysql-gui-tools ΠΈ mysql-administrator. Π’ дистрибутивС Ubuntu Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сначала придСтся ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ("Universe") Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ mysql-admin.

MySQL Query Browser

ΠžΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ запросов (query browser) довольно простоС, Π½ΠΎ эффСктивноС срСдство. ПослС установки Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· мСню GUI (graphical user interface, графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ). Запустив ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ экран, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ подробности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (рис. 8.4).

Рис. 8.4


Если Π²Ρ‹ запустили ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ машинС, Ρ‡Ρ‚ΠΎ ΠΈ сСрвСр, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΊΠ°ΠΊ имя сСрвСра.

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ простой GUI (рис. 8.5), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы Π² графичСской ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, прСдоставляя всС прСимущСства рСдактирования Π² графичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΎΠ΄Π½ΠΎ с графичСским способом рСдактирования Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ нСсколькими экранами ΠΏΠΎΠΌΠΎΡ‰ΠΈ с синтаксисом языка SQL.

Рис. 8.5


MySQL Administrator

ΠœΡ‹ ΠΎΡ‡Π΅Π½ΡŒ надССмся Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с MySQL Administrator. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ Π² использовании графичСский интСрфСйс для Π‘Π£Π Π‘Π” MySQL, Π·Π°Ρ€Π°Π½Π΅Π΅ откомпилированная вСрсия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сущСствуСт ΠΊΠ°ΠΊ для ОБ Linux, Ρ‚Π°ΠΊ ΠΈ для Windows (Π΄Π°ΠΆΠ΅ исходный ΠΊΠΎΠ΄ доступСн, Ссли ΠΎΠ½ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½). MySQL Administrator позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сСрвСром MySQL ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SQL Ρ‡Π΅Ρ€Π΅Π· графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠŸΡ€ΠΈ запускС MySQL Administrator выводится экран ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° экран ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ MySQL Query Browser. ПослС Π²Π²ΠΎΠ΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подробностСй Ρƒ вас появится главная страница управлСния (рис. 8.6).

Рис. 8.6


Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сСрвСром MySQL ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ОБ Windows, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Windows-Π²Π΅Ρ€ΡΠΈΡŽ MySQL Administrator ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Web-сайта MySQL, посвящСнного срСдствам GUI. Когда писалась эта ΠΊΠ½ΠΈΠ³Π°, Π² Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ администратор, ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ запросов ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° пСрСноса Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. На рис. 8.7 ΠΏΠΎΠΊΠ°Π·Π°Π½ экран состояния, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΠ½ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ вСрсии Linux,

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

НапоминаСм, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ слСдовали инструкциям, Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΠ»ΠΈ свой сСрвСр MySQL Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ root ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с локальной ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ Π½ΠΈ с ΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² сСти.

ПослС запуска MySQL Administrator Π²Ρ‹ смоТСтС провСсти наблюдСния ΠΏΡ€ΠΈ Ρ€Π°Π·Π½ΠΎΠΉ настройкС ΠΈ отслСТиваСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎΠ΅ Π² использовании срСдство, Π½ΠΎ Ρƒ нас Π½Π΅Ρ‚ возмоТности Π² этой СдинствСнной Π³Π»Π°Π²Π΅ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности.

Рис. 8.7 


Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ MySQL ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° основы Π‘Π£Π Π‘Π” MySQL ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π² сторонС, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим, ΠΊΠ°ΠΊ, Π½Π΅ примСняя графичСскиС срСдства ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ mysql, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π‘Π£Π Π‘Π” MySQL ΠΈΠ· вашСго прилоТСния.

К MySQL ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

β–‘ Π‘;

β–‘ Eiffel;

β–‘ Π‘++;

β–‘ Tcl;

β–‘ Java;

β–‘ Ruby;

β–‘ Perl;

β–‘ Python;

β–‘ PHP.

Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ODBC для доступа ΠΊ MySQL ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ОБ Windows, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Access. БущСствуСт Π΄Π°ΠΆΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ODBC для ОБ Linux, Π½ΠΎ Π² Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ°Π»ΠΎ смысла.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ интСрфСйсом языка Π‘, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ этому языку программирования посвящСна ΠΊΠ½ΠΈΠ³Π° ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… языков.

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… MySQL ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ состоит ΠΈΠ· Π΄Π²ΡƒΡ… шагов:

β–‘ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ структуры ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ дСскриптора ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ;

β–‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ физичСского ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ mysql_init для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ дСскриптора вашСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

#include <mysql.h>

MYSQL *mysql_init(MYSQL*);

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ пСрСдаСтся NULL ΠΈ возвращаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° вновь Π²Ρ‹Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ для структуры дСскриптора ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Если Π²Ρ‹ пСрСсылаСтС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ структуру, ΠΎΠ½Π° инициализируСтся Π·Π°Π½ΠΎΠ²ΠΎ. Π’ случаС ошибки возвращаСтся NULL.

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π²Ρ‹ просто Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ структуру дСскриптора. Но Π²Ρ‹ Π΅Ρ‰Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ mysql_real_connect:

MYSQL *mysql_real_connect(MYSQL *connection,

 const char *server host, const char *sql_user_name,

 const char *sql_password, const char *db_name,

 unsigned int port_number, const char *unix_socket_name,

 unsigned int flags);

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° структуру дСскриптора, ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ mysql_init. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своСм ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹; Π½ΠΎ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ server_host ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ IP-адрСсом. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ локальной машинС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΡƒΠΊΠ°Π·Π°Π² Π² качСствС этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° localhost.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ sql_user_name ΠΈ sql_password ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ своим ΠΈΠΌΠ΅Π½Π°ΠΌ. Если рСгистрационноС имя Ρ€Π°Π²Π½ΠΎ NULL, прСдполагаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ОБ Linux. Если ΠΏΠ°Ρ€ΠΎΠ»ΡŒ β€” NULL, Π²Ρ‹ смоТСтС ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚ΠΎΠΌ сСрвСрС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ доступСн Π±Π΅Π· пароля. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΏΠΎ сСти ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ port_number ΠΈ unix_socket_name Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ 0 ΠΈ NULL соотвСтствСнно, Ссли Π²Ρ‹ Π½Π΅ мСняли стандартных настроСк Π² вашСй установкС MySQL. Π­Ρ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΈΠΌΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ flags позволяСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ OR ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… масок, измСняя Ρ‚Π΅ΠΌ самым ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ характСристики примСняСмого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих Ρ„Π»Π°Π³ΠΎΠ² Π½Π΅ Π²Π°ΠΆΠ΅Π½ Π² Π΄Π°Π½Π½ΠΎΠΉ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ Π³Π»Π°Π²Π΅; всС ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π² руководствС.

Если ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, возвращаСтся NULL. Π’ этом случаС ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° mysql_error.

Когда Π²Ρ‹ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ mysql_close, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅:

void mysql_close(MYSQL * connection);

Π­Ρ‚Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π·ΠΎΡ€Π²Π΅Ρ‚ соСдинСниС с сСрвСром. Если ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΎΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ mysql_init, ΠΏΠ°ΠΌΡΡ‚ΡŒ, отвСдСнная ΠΏΠΎΠ΄ структуру дСскриптора, освободится. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ станСт Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ, ΠΈ Π΅Π³ΠΎ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² дальнСйшСм. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ€Π°ΡΡ‚ΠΎΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ использованиС рСсурсов, Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сопряТСно с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ расходами, поэтому Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅ сами, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ описанныС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.