Телевизори и проектори 

MySQL - Windows конзолни команди. MySQL команди в Linux Mysql Windows конзолни команди

За Win 32 изберете дистрибуцията: Windows (x86, 32-bit), Zip-Архив.

За Win 64: Windows (x86, 64-bit), Zip-Архив.

След като щракнете върху бутона Изтегляне, ще видите регистрационен формуляр, можете да го пропуснете, като щракнете върху връзката по-долу - Не, благодаря, просто ме отведете до изтеглянията.

2. Създайте инсталационна папка. например . И разопаковайте съдържанието на архива в него, така че папките bin, данни, документи и другибяха в корена на инсталационната папка.

3. Нека да преминем към създаването на конфигурационен файл (my.ini). За основа вземаме един от стандартните файлове:

  • my-small.ini - подходящ за тези, които използват MySQL от време на време и не искат сървърът да заема много ресурси.
  • my-medium.ini също не изисква ресурсна конфигурация, но е подходящ за тези, които използват MySQL постоянно ( добър изборза домашен уеб сървър).
  • my-large.ini и my-huge.ini - за системи, използвани като специален MySQL сървър. Въпреки това my-large.ini може да се използва за домашен сървър, ако имате нужда от допълнителна производителност на MySQL (512 MB RAMне толкова в съвременните времена).
  • my-innodb-heavy-4G - за специализирани сървъри с поне 4 GB RAM и използващи само InnoDB таблици.

В този пример избрах my-medium.ini като основа. Преименувайте го на my.ini и го поставете в корена на инсталационната папка ( C:\Program Files\MySQL\MySQL Server 5.5).

Отворете за редактиране (в обикновен Notepad) и веднага след реда добавете два параметъра:

Basedir=C:/Програмни файлове/MySQL/MySQL Server 5.5 datadir=C:/Програмни файлове/MySQL/MySQL Server 5.5/данни

Обърнете внимание, че пътищата използват наклонени черти (/), а не обратни наклонени черти (\).

basedir е пътят до инсталационната папка.

datadir - път до папката с данни (където се съхраняват всички бази данни). Понякога има смисъл да поставите данни на отделен диск, за да подобрите производителността или да осигурите надеждност.

За всеки случай, ето фрагмент от конфигурационния файл след извършване на промените:

# MySQL сървърът basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M

4. Следващата стъпка е да добавите пътя C:\Program Files\MySQL\MySQL Server 5.5\binкъм променливата на средата PATH, за да улесните стартирането на MySQL от командния ред. За да направите това, отворете System Properties -> Допълнителни опциисистеми -> в раздела Разширени най-долу има бутонът „Променливи на средата...“. В прозореца, който се отваря, превъртете през системните променливи, докато намерим Path. Изберете този ред и щракнете върху „Промяна...“. В края на реда добавяме нашия път, запазвайки съществуващите параметри:

Имайте предвид, че пътищата са разделени с точка и запетая. Уверете се, че има точка и запетая в началото и в края на вашия път.

5. Преди да извършите тестово изпълнение, отворете входящия TCP порт 3306 в защитната стена на Windows:

Ако имате инсталирана допълнителна защитна стена на вашата система, трябва също да отворите TCP порт 3306 за входящи връзки.

6. Сега извършваме тестово пускане. IN команден редработейки като администратор (това е необходимо, ако UAC е активиран на Seven или Vista), изпълнете:

Mysqld --конзола

На екрана ще се покажат няколко реда. Ако стартирането е успешно, последният ред ще изглежда така:

Версия: "5.5.9-log" сокет: "" порт: 3306 MySQL Community Server (GPL)

Оставете този прозорец отворен и отворете друг прозорец на командния ред, в който въвеждаме:

Mysql -u root

Ако връзката е успешна, ще видите команден ред: mysql>

Нека да видим какви бази данни имаме:

Показване на бази данни;

Точката и запетая в края на SQL заявката е ЗАДЪЛЖИТЕЛНА!

Отговор на екипа:

Сега най-накрая сме убедени, че сървърът работи.

7. Нека да преминем към следващата стъпка - трябва да зададете MySQL администраторска парола (root потребител). Няма зададена парола по подразбиране и това трябва да бъде коригирано. В същия прозорец на MySQL въведете следните команди:

Използвайте mysql UPDATE потребител SET парола = ПАРОЛА("вашата_парола") WHERE потребител = "root";

Да проверим резултата:

ИЗБЕРЕТЕ потребител, хост, парола ОТ потребител;

Както можете да видите на екранната снимка, колоната за парола е попълнена, което означава, че паролата е зададена.

Преди да излезете, изпълнете командата:

ПРИВИЛЕГИИ ЗА ПРОМИВАНЕ;

Сега, когато се свързвате, трябва да въведете парола. За да направите това, използвайте ключа -p:

Mysql -u root -p

За да изключите изпълнението на MySQL:

Mysqladmin -u root -p изключване

8. Последната стъпка е да стартирате MySQL като системна услуга Windows.

Уверете се, че няма активни MySQL процеси в системата.

В командния ред, работещ като администратор, изпълнете:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --install

Пътят до mysqld трябва да бъде указан изцяло (дори ако е посочен в PATH)!

За да стартирате услугата, отворете „Управление на компютъра“ и стартирайте ръчно услугата MySQL:

Или по-лесно чрез командния ред:

Нетно стартиране на mysql

За да премахнете услуга, първо я спрете:

Нетно спиране на mysql

и изпълни:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --премахване

Развитието на информационните технологии е една от най-напредналите области на човешката дейност. Следователно в тази област се инвестират огромни средства. От момента, в който започна до наши дни, бяха решени много различни проблеми, които значително опростиха ежедневието на много хора. С развитието на технологиите обаче възникнаха редица проблеми, един от които е прекомерното количество информация, която трябва да се съхранява. Базите данни са предназначени да разрешат ситуацията.

Кратък преглед на системите за управление на бази данни

Тъй като проблемът със съхраняването на големи количества информация е актуален днес, има няколко решения. Всеки от тях е фокусиран върху задачи от определена посока. Въпреки това, заедно те образуват цялостен комплекс, който опростява проблема със съхранението на данни.

Има определена класификация, която определя необходимостта от използване на определена база данни и СУБД (система за управление на база данни). Най-често срещаните в момента се считат клиент-сървъртехнологии за съхранение на данни. Те включват следните видове: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, LINTER, MySQL. Ще се интересуваме от последния вариант - MySQL, чиито команди напълно отговарят на SQL стандартите. Тази технология е една от популярните и често използвана за решаване както на местни приложни, така и на малки производствени проблеми.

Предшествениците на технологията клиент-сървър са файлов сървърСУБД, които са загубили позициите си поради редица съществуващи недостатъци, сред които е необходимостта от разпространение на ядрото на СУБД на всеки компютър и значителното натоварване на локална мрежа, което води до увеличаване на разходите за време. Тази група включва Borland Paradox.

Новите технологии набират популярност

Преди няколко години обаче се появи модерна технология, която набира популярност и е търсена за решаване на малки местни проблеми. Става въпрос за вграденасистеми за управление на бази данни. Основната характеристика на разглежданата СУБД е липсата на сървърна част. Самата система е библиотека, която ви позволява да работите по единен начин с големи количества информация, разположени на локален компютър. Този метод елиминира недостатъците файлов сървърозначава, а също така значително надвишава скоростта клиент-сървъртехнологии.

Примери включват OpenEdge, SQLite, BerkeleyDB, един от вариантите на Firebird, Sav Zigzag, Compact, LINTER, както и един от вариантите на MySQL, чиито команди не се различават от тези, използвани в клиент-сървър СУБД. Въпреки това вграденасистемите могат лесно да загубят своята релевантност, ако задачата престане да бъде локална по природа.

Основни предимства на СУБД MySQL

Системата за управление на бази данни MySQL е една от най-популярните технологии, тъй като може да се използва за решаване на огромен брой проблеми. Ако го сравним със съвременните аналози, можем да подчертаем редица основни предимства.

Основното предимство на руския пазар е неговата наличност, тъй като в повечето случаи е безплатен. Втората характеристика е скоростта. Една от най-популярните системи е MySQL. Командите в него се изпълняват бързо, с минимално време за реакция. Свързването на няколко клиента към сървъра в многонишков режим не влияе на скоростта на обработка на командите поради използването на двигателя InnoDB за поддръжка на бързи транзакции.

Наличието на ODBC драйвер улеснява разработчиците при решаването на много проблеми. Предимствата също включват възможността да се правят записи с фиксирана и променлива дължина. Но основната функция, която е високо ценена сред програмистите, е интерфейсът с езиците C и PHP. Възможностите, предоставени от MySQL, направиха възможно използването на тази СУБД за огромен брой доставчици на интернет хостинг услуги.

А за обикновения човек, който се интересува от съвременните технологии за съхранение на информация, е необходимо да изучава MySQL и техния синтаксис, тъй като специалистите в тази област са широко търсени и високо платени навсякъде по света. Ето защо, ако някой се интересува от тази посока, не се колебайте. Трябва да започнете да учите веднага.

Какво трябва да изучавате

На пръв поглед може да изглежда, че тази област е трудна за самостоятелно изучаване и изисква постоянна комуникация със специалист. Това обаче далеч не е така. Архитектурата и характеристиките на MySQL, основните команди на езика за заявки и всичко свързано с него можете да изучавате сами, без помощта на консултант. За целта е достатъчно да имате желание и да положите усилия, за да продължите напред. Само саморазвитието и изучаването на тази област ще ви позволи да придобиете нови знания, да консолидирате придобитите умения и евентуално да започнете да изграждате кариера и да продължите напред в тази посока.

За да научите основни команди, на първо място, трябва да имате под ръка безплатноверсия на помощната програма MySQL конзола. Тук започва учебният процес. Можете да го изтеглите от официалния сайт на MySQL. Може лесно да се инсталира на всяка операционна система, образувайки сървър и клиент на един компютър, което е много удобно.

След това трябва да потърсите урок, съдържащ основна информация за средата на MySQL. за основно изучаване по правило съдържат и. Има много информация по този въпрос. Изборът обаче трябва да се вземе сериозно. Информацията трябва да бъде представена последователно и ясно структурирана.

Ако имате основни познания английски език, можете да използвате поддръжката, вградена в конзолата. Има специална команда за това помощ, което ви помага да разберете как да използвате помощната програма MySQL.

Основни конзолни команди

Преминавайки плавно от основните характеристики, възможности и предимства, стигаме до списъка с основните команди. Помощната програма MySQL първоначално съдържа само един потребител, който се използва за изучаване. Това е потребител с име корен, паролата за която е напълно идентична с името.

Първото и следващите стартирания на MySQL конзолата ще изискват от потребителя да въведе парола. коренза по-нататъшна работа с MySQL СУБД. Конзолните команди ще бъдат достъпни само след удостоверяване.

След успешна проверка, за удобство можете да покажете съществуващи команди с помощта на командата помощ. След това всички съществуващи команди ще бъдат представени на конзолата и кратко описаниекъм тях.

и дисплей

Сега трябва да преминете към следващата стъпка. За да направите това, трябва да изберете съществуваща или да създадете нова база данни. За да изберете съществуваща база данни, трябва да използвате командата use. И въведете името на базата данни, разделено с интервал. Първоначално има само един в помощната програма - с името тест. Следователно заявката ще изглежда така: използване тест.

За да създадете база данни, трябва да използвате командата създавамкато й дадете ключовата дума база даннии посочване на подходящото име. Структурата ще приеме следната форма: създаване на база данни Име_на_база_данни. За да работите със създадената база данни, трябва да получите достъп до нея чрез командата използване.

Средата предоставя функция, предназначена да показва съществуващи бази данни, таблици, първични ключове или външни връзки и да извежда наличната информация за тях към MySQL конзолата. Командите в този случай винаги трябва да започват с изречение шоу. Например, за да се покаже списък с налични бази данни за текущия потребител, просто въведете следната заявка: шоу бази данни. За да изведете таблица, е достатъчно да промените показвания обект след ключовата дума, като въведете маси.

Команди за управление на таблицата

Преди да продължим, е необходимо да повторим това съответствие със стандартите SQL езикпредоставя широки възможности за разработчиците, независимо от използваните СУБД и операционни системи. Заявките, разработени във всяка среда, която поддържа SQL стандарта, ще се изпълняват успешно (ако има база данни и таблици) в средата на MySQL. Конзолните команди на Windows не се различават от тези, използвани в други операционни системи.

Има редица специфични команди за работа с таблици, които при превод от английски говорят сами за себе си. За отбора създавамбеше споменато по-горе. Може да се използва и за добавяне на таблици към предварително създадена база данни. За да изтриете обекти от база данни, по-специално таблици, използвайте командата капка, към което се добавя името на унищожавания обект. Пример: капка име_ на_ вашият_ маса.

Синтаксисът на извикванията към сървъра на базата данни винаги има обща структура. Следователно, заявка, разработена в Windows, също ще работи успешно в MySQL Linux конзолата. Команди, обработени от сървъра без грешки в една операционна система, не може да доведе до грешки в други.

Изберете команда

Но най-важната команда за работа с таблици, чийто синтаксис е доста прост, е командата изберете. Използва се за избор на данни от базата данни. Първоначалният синтаксис има следната структура: изберете * от маса_ име. Изпращайки такава заявка до сървъра на базата данни, клиентът трябва да извлече всички записи, съхранени в таблицата.

Много хора никога не мислят за това, но когато сърфират в интернет ресурси, MySQL командите се използват непрекъснато чрез SQL синтаксис за показване на съдържанието на каталозите на онлайн магазините или новините социалните мрежи. Вместо знака „*“ след изречението изберете, като правило се предоставя списък на основните полета на таблица или няколко таблици, данните от които трябва да бъдат обработени. В случай на вземане на проби от няколко таблици се използва специална връзка присъединете се, който служи за свързването им чрез съществуващи външни връзки. Това условие обаче може да бъде променено чрез независимо посочване кои полета да се използват за връзката.

Задаване на граници на вземане на проби

Понякога възниква ситуация, при която отговорът, получен от сървъра на базата данни, съдържа дублирани данни. За да се гарантира, че само уникалните записи са видими за потребителя, се използва клаузата distinct. Поставя се преди списъка с искани полета и служи като спомагателен инструмент за скриване на дубликати.

Стартиране и спиране на MySQL сървъра от командния ред

Можете ръчно да стартирате MySQL сървъра по един от двата начина:

Щракнете двукратно върху файла mysqld-nt.exe, намиращ се в поддиректорията bin на директорията, където е инсталиран MySQL.

Отворете прозорец на командния ред на Windows. За да направите това, щракнете върху бутона Старт, изберете Изпълнение от менюто, в прозореца Изпълнение на програма, който се показва, в полето Отвори въведете командата cmd и щракнете върху OK. На екрана ще се появи прозорец на командния ред (фиг. 1.25).

ориз. 1.25.Прозорец на командния ред


В командния ред въведете командата

mysqld-nt

и натиснете Enter. MySQL сървърът ще стартира.

Ако при настройката на сървъра пътят до поддиректорията bin не е добавен към стойността на системната променлива Path, тогава за да стартирате сървъра, трябва да въведете не само името на файла, но и пълния път до него, например :

C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt

Ако искате да видите диагностични съобщения за сървъра в прозореца на командния ред, вместо mysqld-nt, въведете

mysqld-nt –конзола

внимание!

Ако не сте посочили потребителска парола на root при настройването на MySQL сървъра, трябва да зададете парола при първото стартиране на сървъра (в противен случай всеки може да управлява сървъра като root без парола).

За да зададете root парола, отворете нов прозорец на командния ред и въведете следната команда:

mysqladmin -u root парола<пароль>

(или C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root парола<пароль>, ако пътят до поддиректорията bin не е добавен към системната променлива Path при настройването на сървъра) и натиснете Enter.

В бъдеще, ако трябва да промените паролата на root потребител, изпълнете същата команда, само като използвате опцията -r:

mysqladmin -u root -p парола<новый пароль>

Когато се появи подканата за въвеждане на парола, въведете старата си парола и натиснете Enter.

И накрая, ако трябва да спрете MySQL сървъра, изпълнете командата

mysqladmin -u root -p изключване

и при подканата Въведете парола въведете паролата на root потребител. Натиснете Enter. MySQL сървърът ще бъде спрян.

Можете също така да използвате графичната помощна програма MySQL Administrator, за да стартирате и спрете MySQL сървъра.

Стартиране и спиране на MySQL Server чрез MySQL Administrator

За да стартирате MySQL сървъра с помощта на графичната помощна програма MySQL Administrator, следвайте тези стъпки.

1. Стартирайте програмата MySQL Administrator (Старт → Всички програми → MySQL → MySQL Administrator). На екрана ще се появи прозорец за връзка със сървъра (фиг. 1.26).

ориз. 1.26.


2. Натиснете и задръжте клавиша Ctrl и щракнете върху бутона Пропусни, който се появява в долния десен ъгъл на прозореца вместо бутона Отказ. На екрана ще се появи главният прозорец на MySQL Administrator (фиг. 1.27).

ориз. 1.27.Главен прозорец на MySQL Administrator


4. Ако MySQL сървърът не е конфигуриран като услуга на Windows, бутонът Стартиране на услуга, разположен в десния панел на прозореца, е сив. Трябва да се предприемат следните предварителни стъпки:

1) Отидете в раздела Конфигуриране на услугата. Намерете бутона Инсталиране на нова услуга в долната част на раздела и щракнете върху него;

2) в диалоговия прозорец, който се показва, посочете името на услугата и щракнете върху OK;

3) в полето Config Filename въведете пътя до конфигурационния файл my.ini (фиг. 1.28), например C:\Program Files\MySQL\MySQL Server 5.0\my.ini. Червеният цвят на шрифта означава, че файлът не е намерен; ако цветът се промени на нормален, тогава пътят е правилен;

4) в полето Path to binary въведете пътя до файла mysqld-nt.exe, например C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) върнете се към раздела Старт/Стоп услуга.

ориз. 1.28.Раздел Configure Service 5. Щракнете върху бутона Start Service. MySQL сървърът ще стартира.


внимание!

Ако не сте посочили потребителска парола на root при настройването на MySQL сървъра, трябва да я зададете при първото стартиране на сървъра (в противен случай всеки може да управлява сървъра като root без парола). IN текуща версия MySQL Administrator Задаването на root парола не е достъпно и за да извършите тази операция, трябва да използвате помощната програма за команден ред mysqladmin (вижте подраздела „Стартиране и спиране на MySQL сървъра от командния ред“).

За да спрете MySQL сървъра с помощта на MySQL Administrator, следвайте тези стъпки.

1. Стартирайте програмата MySQL Administrator (Старт → Всички програми → MySQL → MySQL Administrator). На екрана ще се появи прозорец за връзка със сървъра (вижте Фигура 1.26).

Server Host – стойност localhost (локален компютър);

Порт – номер на порт, избран при настройка на сървъра (по подразбиране – 3306);

Използвано име – коренна стойност;

Парола – потребителска парола на root. Натиснете OK.

3. В главния прозорец на MySQL Administrator, в левия панел щракнете върху Service Control.

4. В десния панел на прозореца щракнете върху бутона Stop Service. MySQL сървърът ще бъде спрян.

В следващия подраздел ще научите как да стартирате MySQL сървър с помощта на административни инструменти на Windows.

Стартиране и спиране на MySQL сървъра от контролния панел

Ако MySQL сървърът е конфигуриран като услуга на Windows с помощта на съветника за настройка (вижте подраздел „Конфигуриране на MySQL сървър“) или с помощта на помощната програма MySQL Administrator (вижте подраздел „Стартиране и спиране на MySQL сървъра с помощта на MySQL Administrator“), тогава стартирайте и спрете Можете да използвате компонента Услуги на контролния панел.

За достъп до компонента Услуги щракнете върху бутона Старт, изберете Контролен панел от менюто, след това щракнете двукратно върху Административни инструменти в Контролния панел и накрая щракнете двукратно върху Услуги в прозореца на Административни инструменти. На екрана ще се появи прозорецът Услуги (фиг. 1.29) със списък на всички локални услуги.

ориз. 1.29. MySQL услуга в контролния панел


В прозореца Услуги щракнете върху името на MySQL услугата (името се определя при създаването на услугата в съветника за конфигуриране или в MySQL Administrator). След това щракнете върху желаната връзка под името на услугата: Стартиране на услуга, Стоп на услугата или Рестартиране на услуга.

След като MySQL сървърът работи, можете да се свържете с него. В следващите подраздели ще научите как да направите това.

Свързване към сървъра от командния ред

За да се свържете с MySQL сървъра от командния ред, следвайте тези стъпки.

1. Отворете прозорец на Windows Command Prompt. За да направите това, щракнете върху бутона Старт, изберете Изпълнение от менюто, в прозореца Изпълнение на програма, който се показва, въведете cmd в полето Отвори и щракнете върху OK.

2. В командния ред (вижте Фигура 1.25), въведете командата

mysql -h<Имя компьютера>-u<Имя пользователя>-стр

(Къде<Имя компьютера>е името на компютъра, на който работи сървърът) и натиснете Enter. Когато бъдете подканени да въведете парола, въведете паролата на потребителя.

Ако трябва да се свържете към MySQL сървър, работещ на същия компютър, името на компютъра (localhost) може да бъде пропуснато, напр.

mysql -u root -p

След свързване със сървъра подканата на командния ред ще се промени на mysql> (Фигура 1.30). Сега можете да започнете да работите с базата данни: да добавяте таблици, да въвеждате и заявявате данни, да регистрирате нови потребители и т.н.

ориз. 1.30.Свързване към MySQL сървъра от командния ред


За да прекъснете връзката със сървъра, просто въведете командата в командния ред

и натиснете Enter.

Алтернативен начин за свързване към MySQL сървъра се предоставя от графичната помощна програма MySQL Query Browser.

Свързване към сървъра чрез MySQL Query Browser

Помощната програма MySQL Query Browser е интерфейс за създаване, редактиране и изпълнение на SQL изрази. По-удобно е от командния ред. Ако решите да използвате MySQL Query Browser за работа с базата данни, следвайте тези стъпки, за да се свържете със сървъра.

1. Стартирайте програмата MySQL Query Browser (Старт → Всички програми → MySQL → MySQL Query Browser). На екрана ще се появи прозорец за връзка със сървъра (фиг. 1.31).

ориз. 1.31.Прозорец за свързване към MySQL сървър


2. В полетата на прозореца за връзка със сървъра въведете параметрите на връзката:

Server Host – името на компютъра, на който работи MySQL сървъра;

Порт – номер на порт, избран при настройка на сървъра (по подразбиране – 330 6);

Username – потребителско име;

Парола – потребителска парола;

Схема по подразбиране – Името на базата данни, с която ще работите (това може да е съществуваща база данни или нова).

3. Щракнете върху OK. Ако сте въвели име за новата база данни, след това в диалоговия прозорец, който се появява, щракнете върху Да, за да създадете тази база данни.

След свързване със сървъра на екрана ще се появи основният прозорец на MySQL Query Browser (фиг. 1.32). В него можете да извършвате всякакви операции с базата данни: добавяне на таблици, въвеждане и запитване на данни, регистриране на нови потребители и др.

ориз. 1.32.Главен прозорец на MySQL Query Browser


внимание!

Шрифтът по подразбиране, използван в MySQL Query Browser за показване на SQL заявки, не поддържа руски букви. За да въведете руски букви в текстовете на заявките, трябва да изберете различен шрифт (например Arial или Book Antiqua). За да направите това, в главния прозорец на MySQL Query Browser отворете менюто Tools и изберете Options. В прозореца с опции, който се появява, в лявата област щракнете върху Общи опции и в дясната област, в полето Шрифт на кода, изберете желания шрифт от списъка. Щракнете върху бутона Приложи.

За да прекъснете връзката със сървъра, просто затворете прозореца на MySQL Query Browser.

Това приключва нашето въведение в MySQL и преминава към обобщаване на резултатите.

1.6. Резюме

Тази глава разгледа MySQL DBMS и графичните помощни програми MySQL Administrator и MySQL Query Browser. Усвоихте доста сложна процедура за инсталиране и конфигуриране на MySQL сървър, научихте как да управлявате сървъра и да се свързвате с него. Освен това научихте как работи релационна база данни и как да проектирате своя собствена база данни.

И така, следващата стъпка е изграждането на база данни в MySQL. Втората глава е посветена на това. Ще ви покаже как да създавате таблици, да въвеждате информация в тях и да намирате необходимата информация в базата данни.

Глава 2
Управление на бази данни с SQL

В тази глава ще научите как да работите с данни в СУБД MySQL, как да определяте структурата им и как да добавяте, променяте и изтривате данни. Тези операции се извършват от SQL, универсален структуриран език за заявки, който е стандартно средство за достъп до релационни бази данни.

Можете да използвате всяко от многото клиентски приложения на MySQL сървър, за да изпълнявате SQL команди. Тази глава няма да обхваща приложения на трети страни. Ще се запознаете само с приложенията, създадени от MySQL AB: помощната програма за команден ред mysql и графичната помощна програма MySQL Query Browser.

Всички операции с данни са налични и в двете помощни програми. В MySQL Query Browser е удобно да работите с базата данни: нейните компоненти са ясно представени, можете директно да редактирате данни (без да използвате оператора SQL UPDATE), да работите със заявки, например, да ги изграждате с помощта на специален инструмент (и вие не е необходимо да въвеждате имената на таблици и колони ръчно), запазване на заявки във файл, експортиране на резултати от заявки и много други. Можете да научите за всички възможности на MySQL Query Browser, като се обърнете към документацията на руски език, която можете да намерите на връзката http://dev.mysql.com/doc/query-browser/ru/index.html.

Първо ще научите как да изпълнявате SQL команди в MySQL Query Browser и командния ред, а след това ще научите само синтаксиса на SQL командите.

2.1. Изпълнение на SQL команди

Преди да изпълните SQL команди, трябва да се свържете с работещ MySQL сървър (как да направите това е описано в Глава 1). В този раздел ще научите как да създавате SQL команди и да ги изпращате на сървъра за изпълнение.

Ако използвате командния ред, за да изпълните SQL командата, въведете нейния текст в прозореца на командния ред и натиснете клавиша Enter, за да изпратите командата до сървъра. За да избегнете проблеми с кодирането на данни на руски език, преди да започнете да работите с данните, изпълнете командата

НАБОР ИМЕНА cp866;

Можете да видите резултата от изпълнението на тази команда на фиг. 2.1.

ориз. 2.1.Настройка на кодирането в командния ред


Командата SET NAMES трябва да се повтори, когато всичкисвързване със сървъра чрез командния ред. Тази команда казва на сървъра, че това клиентско приложение (помощна програма mysql) използва CP-866 кодиране (това е кодирането на командния ред на Windows) и сървърът автоматично ще извърши преобразуване на кодиране, когато комуникира с клиентското приложение.

След като промените кодирането, можете да въведете всякакви SQL команди в командния ред. Съобщение за резултата от командата, както и исканите данни, се показват директно в прозореца на командния ред (фиг. 2.2).

ориз. 2.2.Изпълнение на SQL заявка от командния ред


Помощната програма mysql ви позволява да въвеждате многоредови команди (на фиг. 2.3 командата SHOW DATABASES беше въведена по този начин). Ако точка и запетая не е въведена като знак за край на командата, тогава когато натиснете клавиша Enter, помощната програма не изпраща командата до сървъра, но ви подканва да продължите да въвеждате командата. Ако искате да отмените многоредова команда, напишете \c (Фигура 2.3).

ориз. 2.3.Многоредова команда


Ако използвате MySQL Query Browser, тогава не е необходимо да задавате кодирането - тази програма работи в UTF-8 кодиране и сама докладва това на сървъра. Въпреки това, в MySQL Query Browser има проблем с показването на руски букви в областта на заявката (областта, където се въвежда текстът на SQL командите, фиг. 2.4). За да разрешите този проблем, трябва да промените шрифта, използван в областта за заявка (как да направите това беше описано в края на предишната глава). Трябва да смените шрифта само веднъж.

ориз. 2.4.Изпълнение на SQL заявка в MySQL Query Browser


В областта за заявка можете да въведете няколко SQL команди наведнъж, както е показано на Фигура. 2.4. Текущата команда (курсорът е на един от нейните редове) се маркира с бял фон, останалите команди се показват на светлосив фон. За да изпълните текущата команда, можете да щракнете или върху бутона Изпълнение, разположен вдясно от областта за подкана, или върху клавишната комбинация Ctrl+Enter. След изпълнение на командата, исканите данни се показват в областта с резултати, а в долната част на тази област се показва съобщение за резултата от командата.

Сега, след като научихте как да въвеждате SQL команди, нека започнем да управляваме данните с помощта на тези команди. На първо място, ще разгледаме командите, предназначени да работят с базата данни като цяло.

2.2. Създаване на база данни

В този раздел ще научите как да създавате и изтривате база данни, да променяте кодирането по подразбиране за нея, да избирате текущата база данни и също така да видите списък с всички бази данни на даден MySQL сървър.

За да създадете база данни, изпълнете командата

СЪЗДАВАНЕ НА БАЗА ДАННИ<Имя базы данных>;

Например командата

СЪЗДАВАНЕ НА БАЗА ДАННИ SalesDept;

създава база данни с име SalesDept.

Ако по някаква причина трябва да зададете кодиране по подразбиране за нова база данни, което се различава от кодирането, посочено при настройката на MySQL, тогава при създаването на базата данни можете да посочите желаното кодиране (набор от знаци) и/или правило за сравнение (сортиране) за стойности на знаците:

СЪЗДАВАНЕ НА БАЗА ДАННИ<Имя базы данных>

НАБОР ХАРАКТЕРИ<Имя кодировки>

СОРТИРАНЕ<Имя правила сравнения>;

Например, ако импортирате данни в нова база данни, която е в кодиране CP-1251, тогава ние ще посочим това кодиране, когато създаваме базата данни по следния начин:

СЪЗДАВАНЕ НА БАЗА ДАННИ SalesDept

НАБОР ЗНАЦИ cp1251 COLLATE cp1251_general_ci;

съвет

За да видите списъка с кодировки, използвани в MySQL, изпълнете командата SHOW CHARACTER SET; и за да видите списък с правила за сравняване на символни стойности, използвайте командата SHOW COLLATION; В този случай можете да използвате оператора LIKE: например, за да видите всички правила за сравнение за кодирането CP-1251, изпълнете командата SHOW COLLATION LIKE %1251%;. Окончанието “_ci” (нечувствителен към регистър) в името на правилата за сравнение означава, че при сравняване и сортиране не се взема предвид регистърът на знаците, окончанието “_cs” (чувствителен към регистъра) – регистърът се взема предвид, окончанието “_bin” (двоичен) – сравнението и сортирането се извършват чрез цифрови символни кодове. За повечето правила за сравнение можете да намерите описание (т.е. реда на знаците, според който ще бъдат подредени текстовите стойности) на уеб страницата http://www.collation-charts.org/mysql60/.

Кодирането, посочено при създаването на базата данни, ще се използва по подразбиране за таблици в тази база данни, но можете да посочите различно кодиране.

Можете да промените кодирането и/или правилото за сравнение за стойности на символи за базата данни с помощта на командата

ПРОМЯНА НА БАЗАТА ДАННИ<Имя базы данных>

НАБОР ХАРАКТЕРИ<Имя кодировки>

СОРТИРАНЕ<Имя правила сравнения>;

В този случай кодирането, използвано в съществуващите таблици на базата данни, остава същото; Променя се само кодирането по подразбиране за новосъздадените таблици.

За да премахнете ненужна или погрешно създадена база данни, изпълнете командата

ПРЕКРАТЯВАНЕ НА БАЗА ДАННИ<Имя базы данных>;

внимание!

Изтриването на база данни е много важна операция, тъй като изтрива всички таблици в базата данни и данните, съхранени в таблиците. Преди да изтриете, се препоръчва да създадете резервно копиебази данни.

Можете да изберете една от базите данни, създадени на този MySQL сървър като текуща база данни, като използвате командата

ИЗПОЛЗВАНЕ<Имя базы данных>;

например:

ИЗПОЛЗВАЙТЕ SalesDept;

След това можете да извършвате операции върху таблици в тази база данни, без да поставяте пред името на таблицата името на базата данни. Например, за достъп до таблицата Customers в базата данни SalesDept, можете просто да напишете Customers вместо SalesDept.Customers. Като посочите текущата база данни, можете да получите достъп до таблици в други бази данни, но трябва да използвате името на базата данни като префикс. Изборът на текущата база данни се запазва, докато не прекъснете връзката със сървъра или докато не изберете друга текуща база данни.

За да видите списък на всички бази данни, съществуващи на даден MySQL сървър, изпълнете командата

ПОКАЖИ БАЗИ ДАННИ;

Дори ако все още не сте създали бази данни, ще видите три системни бази данни в получения списък.

INFORMATION_SCHEMA е информационна база данни, от която можете да получите информация за всички останали бази данни, структурата на данните в тях и всички видове обекти: таблици, колони, първични и външни ключове, права за достъп, съхранени процедури, кодировки и др. Тази база данни е достъпна Тя е само за четене и е виртуална, което означава, че не се съхранява като директория на диск: цялата информация, поискана от тази база данни, се предоставя динамично от MySQL сървъра.

Mysql е помощна база данни, използвана от MySQL сървъра. Съхранява информация за регистрираните потребители и техните права на достъп, справочна информация и др.

Тестът е празна база данни, която може да се използва за изпробване на неща или просто да се изтрие.

И така, вие сте усвоили основните операции, извършвани с базата данни като цяло: командите CREATE DATABASE (създаване), ALTER DATABASE (промяна), DROP DATABASE (изтриване), USE (избиране на текущата база данни) и SHOW DATABASES (вижте списък на бази данни). След това ще разгледаме операциите с таблици. В този случай ще приемем, че сте избрали база данни като текуща и работите с нейните таблици.

2.3. Работа с таблици

В този раздел ще научите как да създавате, модифицирате и изтривате таблица, как да преглеждате информация за таблица и списък на всички таблици в текущата база данни. Нека започнем с най-трудната команда - създаване на таблица.

Създаване на таблица

За да създадете таблица, изпълнете командата, показана в листинг 2.1.

Списък 2.1.Команда за създаване на таблица

СЪЗДАВАНЕ НА ТАБЛИЦА<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Както можете да видите, командата за създаване на таблица може да включва много параметри, но много от тях не са задължителни (в листинг 2.1 такива параметри са оградени в квадратни скоби). Всъщност, за да създадете таблица, просто трябва да посочите нейното име и имената и типовете на всички колони; други параметри се използват, ако е необходимо.

Нека първо да разгледаме няколко примера, които ще ви помогнат да овладеете командата CREATE TABLE и веднага, без да изучавате многобройните й параметри, да започнете да създавате свои собствени (прости по структура) таблици.

Да приемем, че изграждаме базата данни, която проектирахме в Глава 1. Използвайки командите от предишния раздел, създадохме празна база данни SalesDept и я избрахме като текуща. Сега нека създадем три таблици: Клиенти, Продукти и Поръчки. Листинг 2.2 показва командата за създаване на таблицата Customers.

Списък 2.2.Команда за създаване на таблица Клиенти

СЪЗДАВАНЕ НА ТАБЛИЦА Клиенти

(id SERIAL,

име VARCHAR(100),

телефон VARCHAR(20),

адрес VARCHAR(150),

рейтинг INT,

ПЪРВИЧЕН КЛЮЧ (id))


Тази команда използва параметри: първо, името на таблицата и, второ, имената и типовете на колоните, от които ще се състои таблицата (вижте също Таблица 1.1 в Глава 1).

Id – идентификатор на запис. Вие присвоихте типа SERIAL на тази колона, което ви позволява автоматично да номерирате редовете на таблицата. Ключовата дума SERIAL означава BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Това означава, че големи цели (BIGINT) положителни (UNSIGNED) числа могат да бъдат въведени в колоната, докато липсата на недефинирани и дублирани стойности (NOT NULL UNIQUE) се контролира автоматично. Ако, когато добавяте ред към таблица, не укажете стойност за тази колона, тогава програмата MySQL ще въведе следващия пореден номер (AUTO_INCREMENT) в тази колона.

Забележка

NULL е константа, показваща липсата на стойност. Ако колона съдържа NULL стойност, тогава се счита, че няма дефинирана стойност за тази колона (поради което наричаме NULL също нулева стойност). NULL не трябва да се бърка с празния низ ("") или числото 0. NULL стойностите се третират по различен начин: повечето функции и оператори връщат NULL, ако един от аргументите е NULL. Например резултатът от сравнението 1 = 1 е истинска стойност (TRUE), а резултатът от сравнението NULL = NULL е недефинирана стойност (NULL), тоест две недефинирани стойности не се считат за равни.

Nam е името на клиента, phone е телефонният номер и address е адресът. Присвоихте типа VARCHAR на тези колони, защото те ще съдържат стойности на знаци. Максимумът допустимо количествознака в стойността на колоната.

Трето, вие посочихте, че колоната id ще бъде първичният ключ на таблицата, като включите клауза PRIMARY KEY (id) в командата за създаване на таблица.

Четвърто, вие сте посочили два незадължителни параметъра за тази таблица. Параметърът ENGINE указва типа на таблицата. Вие присвоихте на таблицата Клиенти типа InnoDB, тъй като само този тип гарантира поддържането на целостта на връзките между таблиците (повече подробности за типовете таблици ще бъдат обсъдени в раздела „Незадължителни свойства на таблицата“). Параметърът CHARACTER SET указва кодирането по подразбиране за данните в таблицата. Тъй като не сте задали кодирането отделно за колоните име, телефон и адрес, данните в тези колони ще се съхраняват в UTF-8, което е кодирането по подразбиране за таблицата Клиенти.

Следващият пример, който ще разгледаме, е командата за създаване на таблица Products, показана в листинг 2.3.

Списък 2.3.Команда за създаване на таблица с продукти

CREATE TABLE Продукти

(id SERIAL,

описание VARCHAR(100),

подробности ТЕКСТ,

цена DECIMAL(8,2),

ПЪРВИЧЕН КЛЮЧ (id))

ENGINE InnoDB CHARACTER SET utf8;


Тази команда е много подобна на командата за създаване на таблица Клиенти и се различава само по името на таблицата и набора от колони. Колоните id (номер на продукт) и описание (име на продукт) на таблицата Products имат типове, които вече са ни познати. Колоната с подробности е от тип TEXT. Този тип е полезно да се използва вместо типа VARCHAR, ако колоната ще съдържа дълги стойности: общата дължина на стойностите на всички колони VARCHAR е ограничена до 65 535 байта за всяка таблица и няма ограничение за общата дължина на колоните ТЕКСТ. Недостатъкът на типа TEXT е невъзможността да се включат такива колони във външния ключ на таблицата, тоест да се създаде връзка между таблиците въз основа на тези колони.

Колоната за цена е от тип DECIMAL, предназначена за съхраняване на парични суми и други стойности, за които е важно да се избягват грешки при закръгляване. В скоби сме посочили две числа: първото от тях определя максималния брой цифри в стойността на колоната, второто - максималния брой цифри след десетичния разделител. С други думи, цената на даден продукт може да съдържа до шест цифри в цялата част (6 = 8–2) и до две цифри в дробната част.

И накрая, последният пример е командата за създаване на таблицата Orders, показана в листинг 2.4.

Списък 2.4.Команда за създаване на таблица с поръчки

СЪЗДАВАЙТЕ ПОРЪЧКИ НА ТАБЛИЦИ

(id SERIAL,

дата ДАТА,

product_id BIGINT UNSIGNED NOT NULL,

брой INT UNSIGNED,

сума DECIMAL(10,2),

customer_id BIGINT UNSIGNED,

ПЪРВИЧЕН КЛЮЧ (id),

FOREIGN KEY (product_id) РЕФЕРЕНЦИИ Продукти (id)

ПРИ ИЗТРИВАНЕ ОГРАНИЧЕНИЕ НА АКТУАЛИЗАЦИЯ КАСКАДА,

ВЪНШЕН КЛЮЧ (customer_id) РЕФЕРЕНЦИИ Клиенти (id)

НА ИЗТРИВАНЕ ОГРАНИЧЕНИЕ НА АКТУАЛИЗАЦИЯ КАСКАДА)

ENGINE InnoDB CHARACTER SET utf8;


Характеристика на таблицата Orders е наличието на външни ключове: колоната product_id (продукт) съдържа номера на продукти от таблицата Products, а колоната customer_id (customer) съдържа номера на клиенти от таблицата Customers (вижте също Таблица 1.2 в Глава 1) . Тъй като номерата на продуктите и клиентите са големи положителни числа, ние присвоихме на колоните product_id и customer_id тип BIGINT UNSIGNED.

След това, за да гарантираме, че целостта на връзките се поддържа автоматично (говорихме за целостта в глава 1), казахме на MySQL на кой първичен ключ съответства всеки външен ключ. Така конструкцията FOREIGN KEY (customer_id) REFERENCES Customers (id) означава, че колоната customer_id може да съдържа само стойности от колоната id на таблицата Customers и нулеви стойности (NULL), а други стойности са забранени. За колоната product_id зададохме подобно ограничение и присвоихме свойството NOT NULL на тази колона, за да предотвратим регистриране на поръчки с недефиниран продукт. Освен това посочихме правилата за поддържане на целостта на всяка от връзките (ние също ги обсъдихме в Глава 1). Правилото НА ОГРАНИЧЕНИЕ НА ИЗТРИВАНЕ означава, че не можете да изтриете запис на клиент, ако този клиент има регистрирана поръчка, и не можете да изтриете запис на продукт, ако този продукт е поръчан от някой друг. Правилото ON UPDATE CASCADE означава, че когато клиентски номер в таблицата Клиенти или номер на артикул в таблицата Продукти се промени, съответните промени се правят в таблицата Поръчки.

Забележка

Имайте предвид, че създадохме таблицата Orders последна, защото първичните ключове в таблиците Customers и Products трябва да бъдат създадени преди външните ключове в таблицата Orders, които ги препращат. Въпреки това би било възможно да се създават таблици без външни ключове в произволен ред и след това да се добавят външни ключове с помощта на командата ALTER TABLE, която ще разгледаме в подраздела „Промяна на структурата на таблицата“.

В нашите примери разгледахме само някои от параметрите на командата за създаване на таблица. Сега ще изброим всички основни параметри, които могат да ви бъдат полезни при създаването на таблици. В раздела „Типове данни в MySQL“ ще говорим за типове колони, в раздела „Свойства на колони“ ще говорим за настройка на ключови колони и накрая в раздела „Ключови колони и индекси“ ще говорим за незадължителни свойства на таблица .

Типове данни в MySQL

Както вече знаете, когато създавате таблица, трябва да посочите тип данни за всяка колона. MySQL предоставя много типове данни за съхраняване на числа, дати/часове и символни низове (текстове). Освен това има типове данни за съхраняване на пространствени обекти, които няма да бъдат обсъждани в тази книга.

Нека да разгледаме числовите типове данни.

БИТ[(<Количествобитов>)].

Битово число, съдържащо определен брой битове. Ако броят на битовете не е посочен, числото се състои от един бит.

Цяло число в диапазона от -128 до 127 или (ако е посочено свойството UNSIGNED) от 0 до 255.

BOOL или BOOLEAN.

Те са синоними на типа данни TINYINT(1) (числото в скобите е броят цифри за показване, вижте бележката по-долу). В този случай ненулевата стойност се счита за истина (TRUE), а нулевата стойност се счита за невярна (FALSE).

Цяло число в диапазона от -32 768 до 32 767 или (ако е указано свойството UNSIGNED) от 0 до 65 535.

Цяло число в диапазона от -8 388 608 до 8 388 607 или (ако е указано свойството UNSIGNED) от 0 до 16 777 215.

INT или INTEGER.

Цяло число в диапазона от -2 147 483 648 до 2 147 483 647 или (ако е указано свойството UNSIGNED) от 0 до 4 294 967 295.

Цяло число в диапазона от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 или (ако е указано свойството UNSIGNED) от 0 до 18,446,744,073 70 9,551,615.

Синоним на BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (голямо цяло число без знак, което приема автоматично увеличаващи се уникални стойности; стойностите NULL не са разрешени). Използва се за автоматично генериране на уникални стойности в колона с първичен ключ. Ще намерите описание на свойствата UNSIGNED и AUTO_INCREMENT в този подраздел и свойствата NOT NULL и UNIQUE в раздела „Свойства на колона“.

Забележка

За всички цели типове данни, с изключение на BOOL (BOOLEAN) и SERIAL, можете да посочите в скоби броя на показаните цифри, който се използва във връзка с параметъра ZEROFILL: ако числото съдържа по-малко цифри, тогава при извеждане то се допълва в ляво с нули. Например, ако колона на таблица е дефинирана като INT(5) ZEROFILL, тогава стойностите "1234567" и "12345" се показват така, както са, а стойността "123" се показва като "00123". За типа данни BIT размерът на числото, т.е. максималният брой съхранени битове, е посочен в скоби.

Ще ви разкажа малко за това как да използвате базата данни mysql през конзолата, тоест без да използвате стандартния редактор на phpmyadmin. Като цяло в интернет има много материали по тази тема, но там или има твърде много, от които обикновеният потребител не се нуждае, или описанията са твърде оскъдни.

Първи стъпки с mysql

Е, първо, нека започнем с това как да влезете в mysql, за да направите това, трябва да въведете в конзолата:

Mysql -uusername -ppassword -hhost

И така, ние сме в командния ред на mysql. Не забравяйте един важен момент: разделителят на командите в mysql е „;“ (точка и запетая).
Сега трябва да създадете база данни или да изберете вече създадена:

Създаване на база данни db_name; - създаване на нова база данни, наречена db_name, показване на бази данни; - преглед на наличните бази данни с db_name; - изберете база данни с име db_name

Като цяло избрахме (или създадохме) базата данни, от която се нуждаем, и сега нека да разгледаме командите за работа с таблици:

Показване на таблици; - преглед на всички таблици показва колони от table_name; - преглед на колони и техните свойства създава таблица table_name (`id` int(11) AUTO_INCREMENT,`name` varchar(255)); - създаване на таблица с id и име на колони alter table table_name add column1 int(11); - добавяне на колона към таблицата alter table table_name drop column1; - премахване на колона от таблицата

Е, преглеждането, изтриването, добавянето на данни става със стандартни, добре познати команди...
Нека да разгледаме пример с SELECT:

SELECT * FROM table_name;

Най-вероятно ще видите различни безсмислици или въпросителни знаци вместо кирилица, в зависимост от това какво кодиране има във вашата база данни и в конзолата, която използвате. За да коригирате това, просто въведете командата, преди да изберете ИЗБОР

ЗАДАВАНЕ НА ИМЕНА utf8; - по-често за Linux конзоли SET NAMES cp866; - за cmd windows

UPD:в windows трябва да посочите пълния път до файла mysql.exe, например C:/apache2/bin/mysql/mysql.exe

Дизайн на база данни – Диа

Разбира се, за големи проекти създаването на таблици по описания по-горе метод ще отнеме много време и phpmyadmin също не е решение. Ако трябва да създадете голяма база данни и да обмислите взаимодействието на всички таблици една с друга, мога да ви препоръчам отличния редактор на dia. След като създадете таблици в тази програма, запазете я във формат .dia и я конвертирайте във формат .sql:

Tedia2sql -i file.dia -o file.sql

Ако трябва да създадете или качите дъмп на база данни, използвайте:

Mysql -uusername -ppassword -hhost db_name< file_name.sql - залить бд mysqldump -uusername -ppassword -hhost db_name >file_name.sql - прави дъмп на база данни

Можете да качвате от файлове с различни формати, txt например..