Уроци по база данни

РАЗДЕЛ 1 Подготовка на уроци
§ 1 Какво е MySOL?

§ 3 Получаване и инсталация на софтуер
Различни програми, lienty
Console клиент mysqIexe
GUI клиент mysqlgui

§ 4 на релационни бази данни: основни понятия
База данни "страница от дневника на класа"
Какво е ключът?
Каква е връзката?
Релационни оператори избор, дизайн и интеграция
избор на оператор
проекция оператор
оператор съюз
Какво е заявка?
Какъв е резултатът zaprosaf

§ 5 Основи на SQL
Екипът УПОТРЕБА
Синтаксисът на командата ИЗПОЛЗВАНЕТО
Пример команда УПОТРЕБА Използвайте
шоуто
Синтаксисът и примери за използване на командния SHOW
CREATE DATABASE команда
Синтаксис на поддържа база данни
Пример CREATE DATABASE използване команда
Командата CREATE TABLE
Синтаксис Създаване на таблица команда
INSERT команда
INSERT синтаксиса на командите
Пример за използване на вложката
Командата SELECT
SELECT команда синтаксис
част <запрашиваемая информация>
част ОТ
част КЪДЕ
Част от GROUP BY
част КАТО
Част ORDER BY
UPDATE команда
UPDATE Синтаксис на командите
Пример използване UPDATE команда
командата за изтриване
Синтаксис Командата за изтриване
Пример за използване на командата за изтриване
Екипът DROP
Синтаксис DROP команда
Пример DROP използване команда

§ 6 Set MySOL в подготовка LAN-клас и администриране на MySOL на инсталиране и конфигуриране на база данни проба в локалната мрежа
Конфигурацията на компютъра на клиента
Конфигурацията на сървърния компютър
Инсталиране на примерна база данни
TABLE студент
събитие на маса
Оценката на маса
Таблица отсъствие
Отношенията между таблици
Конфигуриране на опциите за сигурност
"Кухня" MySOL сигурност

ЧАСТ 1. Получаване

MySQL е свободно да се разпространява релационна система за управление на бази данни (СУБД), построен на клиент-сървър технология. база данни MySQL SU включва SQL-сървър (това често се нарича "сървър на база данни"), клиентски софтуер и придружаващия софтуер (инструментите за администриране, интерфейси за работа с приложения, написани на различни езици за програмиране, както и документация).
Там версии на MySQL за различни операционни системи. Трябва да се подчертае (за тези, които не разполагат с богат опит с клиент-сървър системи, това понякога не е очевидно), че на сървъра на базата данни и клиентски програми могат да работят на различни операционни системи.
Трябва да се отбележи, че ние постоянно се използват системи, базирани на клиент-сървър технология, но като правило, няма нужда да се рови в подробностите на взаимодействието на клиент-сървър. Например, когато погледнем към уеб-страници, хоствани на уеб-сървър, клиентът е нашият браузър (и сървър, разбира се, уеб-сървър). Браузърът (клиент) изпраща заявка, в отговор на което сървърът извършва определени действия, например, браузърът изпраща искания уеб-страницата.
Взаимодействие с SQL-сървър също се произвежда с помощта на заявки в отговор на което сървърът връща исканата информация или да се извършат необходимите изменения на данни. Заявки за SQL сървър, формулирани в езика SQL (Structured Query Language>.
Обикновено програмата за клиента взаимодействие със сървър MySQL се извършва чрез TCP / IP протокол.


§ 3. Получаване и инсталиране на софтуер

Както вече писахме, има версии на MySQL за почти всички общи операционни системи. По наше мнение, най-добрият вариант е да инсталирате SQL-сървър на Linux или FreeBSD. Въпреки това, ние разбираме, че голям брой от нашите читатели предпочитат версията на MySQL за Windows, така че се опише тази опция. Следва да се отбележи, че и Windows-базирана версия на MySQL е изключително стабилна и само за целите на обучението на изпълнението му е повече от достатъчно. Логично е да започне да се инсталира както на сървъра и клиента на един компютър, да ги тествате в работата, а след това изгради мрежа версия.

След приключване на инсталационната директория C: \ MySQL ще изглежда така:
S. \ MySQL
пейка
кофа за боклук
данни
Документи
примери
включва
ИЪ
скриптове
дял
infolist.txt
ми-example.cnf
mysqlbug.txt
Readme
Uninst.isu
Директорията на бин съдържа всички изпълними файлове, включително и самия SQL-сървър и клиент програми. Документация (на английски) се съдържа в директорията с документи. Директорията на данни е предназначен за съхранение на данни. Всяка база данни се съхраняват в отделна папка, чието име е същото като името му. След инсталацията в директорията на данни има две поддиректории (две бази данни са съответно) - MySQL и тест.
Mu-example.cnf файл е конфигурация шаблон файл. Тя трябва да бъде преименуван в my.cnf и го поставете в основната директория на C устройството, но можете да го направите по-късно (по-така, че някои промени трябва да бъдат направени в този файл). Сега много по-интересно да се опита операция SQL-сървър. SQL-сървър работи faylom mysqld.ehe (името на файла се извлича от "MySQL Daemon"), който се намира в кофата за боклук директория. В случай на успешен старт на екрана, вие няма да видите нищо. Сървърът тече тихо. На следващо място, трябва да се работи mysql.ehe файла - клиентски софтуер, който работи в текстов режим. Ако всичко е направено правилно, клиентът започва, се свързва със сървъра и показва поканата, в отговор на което modoyu въведете команди. По-подробна познаване на SQL команди в § 5, в същото време можете да се опитате MySOL в примера на ШОУ БАЗИ ДАННИ команда и изберете (вж. Примери 1 и 2). Резултатът от бази данни на командния шоу е списък на базите данни на разположение на SQL сървър (вж. Пример 1). Екип от SELECT NOW (). USER () съобщава на текущата дата и час (в резултат на NOW ()) и потребителското име, при които програмата за клиента е установил връзка със сървъра (в резултат на USER ()). Имайте предвид, че командите се прекратява с ";". Това е функция на програмата за клиент, а не на изискването за SQL език. Вие също трябва да се обърне внимание на факта, че в пример 2, специално показва как да въведете няколко отбора. Ако низът не завършва с ";", на около един грам MySQL показва следната ред "->", което показва, че екипът се очаква да продължи.
ПРИМЕР 1
С. \ MySQL \ бин> MySQL. Търсейки
Добре дошли в монитора MySQL. Команди завършват с; или \ г.
Вашият MySQL връзка е номер 2 до сървъра версия. 3.23.3 6 -debug
Тип "помощ; "Или" \ ч "за помощ. Тип '\ в ", за да изчистите буфер
MySQL>

MySQL> SELECT ПРЕДПРИЯТИЕТО (),
-> USER ();

Mysqld сървъра винаги трябва да завърши работата си правилно. За да направите това, използвайте следната команда:
C: \ MySQL \ бин> mysqladmin.exe -u корен изключване
mysqladmin.exe програма е в директорията C: \ MySQL \ боклук. По-късно, когато се ръководи от указанията на § 6, тогава се определя паролата за потребителя на корен, програмата за повикване mysqladmin ще трябва да даде паролата:
C: \ mysqi \ бин> mysqiaamin.skhs -u корен изключване -rparol

Konsolyny клиент mysql.exe


Във всички примерите, дадени по този въпрос, както и поуките, които използваме mysql.exe на програмата конзола клиент. Работете с тази програма, меко казано, не е много удобно. Основната му недостатък -
липса на възможност да се промени заявка низове в процеса на въвеждане (след нов ред). Имайте предвид, че този дефицит лишени MySQL клиент версия за Linux и FreeBSD. За улеснение на употреба mysal възможности заявка написани на текстов файл, както и протокол за управление (soottstvuyuschie примери по-долу). И все пак това, желателно е в ранните етапи (и уроци), за да използват този, не е твърде удобен клиент. За всичките си недостатъци, той има един съществен методологичен предимство: прави въведете заявки замислено ", произнасяйки" всеки отчет, на всяка крачка.

§ 4. релационни бази данни Концепции


По-добре? По-добро. Но. Може да се наложи вече се обръща внимание на факта, че ние не правим всичко са предоставени на нашата маса. По-точно, не сме се счита за важна характеристика на оригиналните данни: факта, че в един ден може да се извършва повече от един урок. Разбира се, за да ги запишете в таблицата "уроци" не е проблем, но тъй като ние разбираме от масата "преценява", за които той е изложен урок резултат? Този проблем е решен по същия начин, както ние предлагаме уникални студенти: уроци трябва да получават уникална (за простота - с цифри) идентификатор. Казано по-просто, както и студенти, класа (всички от началото до края на учебната година през) трябва да бъдат преброени. И е посочен в "прогноза" на масата не е датата и номера на уроци. В "Напред", ние също ще се посочи броят на уроци (в края на краищата, студентът може да дойде да се контролира, и обичайната урок да пропусне). Отново промени структурата на таблиците (таблици само промени ще засегнат "оценки", "Уроци" и "Напред").


Вероятно сте забелязали, че ние сме идентифицирали с удебелен шрифт имената на някои полета ( "студент номер" в "студенти" на масата, полета "студент номер" и "брой урок" в "Прогнозите" масата, и т.н.). Маркираните полета са клавиши (ключови области) на съответните таблици. Концепцията за ключов е на ключови понятия бази данни, защо живеят на нея в детайли. От горния пример по-специално, се вижда, че основната маса може да бъде едно поле или набор от полета (в последния случай, се използва терминът "ключов компонент"). Ключ идентифицира еднозначно всеки ред в таблицата, т.е. няма две редици от таблицата не съдържа същата стойност на ключа (6 в случай стойностите на съставните области на композитен ключ може да се повтори, но множеството от тези стойности трябва да бъдат уникални).
Винаги ли Таблицата определя ключовите области. По принцип наличието на ключа не е задължително. Релационни системи за управление на база данни позволяват да създавате таблици, без ключови области. Но като правило, в отсъствието на ключов масата то е причинено от проект бъг база данни. Ето защо, ако видите, че на масата не може да маркирате полето ключ, трябва внимателно да проверите на проекта е вероятно, че нещо в него не е така. Как да се разпределят на ключа? Винаги ли е ключовите области се открояват ясно? Най-общо казано, не. Но това трябва да се разбира, че ключовете в таблиците се открояват не само "да има." Основната цел на ключовете - задължителен таблици.
В нашия пример, маса "студенти" могат да бъдат свързани с таблицата "прогноза" и "Напред" за стойността на полето "студент стая" на. Таблица "школи", могат да бъдат свързани с масите "маркира" и "прескочите" на стойността на полето "Номер на урока." Но какво означава "свързани"?
Каква е връзката?
Най-общо казано, от гледна точка на отношенията между таблици MySQL не съществува. Подобна гледка се държи от някои разработчици и други релационни бази данни. Въпреки, че SQL, има средства, за да опишат отношенията (тяхното използване в MySQL не води до грешка, те са просто игнорира) и, разбира се, комуникация се използва широко при работа с релационни бази данни. Така че това, което е противоречието? Няма противоречие. Маси са свързани, тъй като ние (разработчик на база данни) да си представите. Например, първият ред на таблицата "студенти" ( "студент номер" = 1) съответства на първия и третия "гости" ред на таблицата (с една и съща стойност поле "студент номер"). По този начин, ние считаме, (тъй като ние проектиран на базата данни), че трапезните "ученици" и "оценка" са свързани с ценностите на полета "Броят на студентите" и "студент номер" (тук ние искаме да подчертаем, че над които свързването не се изисква областта имат едно и също име, макар и по-често и да не се объркате). За да се опише отношенията между таблици в SQL, има специални думи препратки и чужд ключ, които се използват в описанието на полета маса. MySQL ги игнорира.
Така че, ние всъщност записва две позиции: за връзка - кореспонденцията между редовете на две маси; връзка между таблиците, от стойностите на някои полета (т.е. масата не може да се свърже "по принцип", те ще се свързва с някаква стойност). избор поле, което се извършва свързване, определя вида на връзката: "един към много", "много към много", "12:59". Понякога, на етапа на проектиране на база данни става ясно, че съществена гледна точка, маси са свързани, но не и в подходящи области за комуникация. Това предполага, че трябва да започнем друг "задължителен" маса (по-долу ще разгледаме съответен например). Ние няма да се обсъди подробно различните видове връзки, за кратко ги описват (подробен разказ за видове могат да бъдат намерени, например, в [2]).
При свързване на таблици А и В, "12:59" всеки ред от таблица А съответства на един и само един ред от таблица Б и обратно. Комуникация "12:59" може да се организира, но те са най-общо казано, не разполагат с много смисъл, защото тяхното присъствие показва, че сме разделени на отделни таблици, които не биха могли да споделят (или дори, може би, не трябва да споделяте) , Въпреки това, понякога се дължи "12:59" се използва, за да се оптимизира работата на базата данни.
Когато свързването таблици А и Б, "едно към много" във всеки ред в таблицата съответства точно един ред от таблица А. Видът на комуникацията, "едно към много" - основен инструмент за разработчици на база данни. По-специално, в горния пример имаме таблица "Студентите" се свързва с таблиците, "оценки" и "Напред" просто като "едно към много". Тя е свързана маса "уроци" и "оценки" и "Уроци" и "Напред". Когато свързването маси, "един към много" на страната "един" винаги се използва ключовата областта на масата. Свързаната с областта на "много" се нарича външен ключ.
Когато свързването на таблици А и Б "много към много" Всеки ред на Таблица А може да съответства на няколко реда в таблицата и обратно. Ако сте проектиране на свързване на базата данни се появява между двете таблици "много към много", тя трябва да бъде елиминиран чрез въвеждане на допълнителна маса. Ето един пример. Да предположим, че искаме да се опише системата "учител - елементи" (които на учителя какво неща са). Ясно е, че едно нещо може да накара някои учители и един учител, това се случва доста често, може да накара някои теми. Списък на учителите ще се съхраняват в "Майстора" в таблицата, списък с елементи - в "Items" таблица: