Аппараттық және бағдарламалық қамтамасыз етуді орнату

MySQL жұмысын бастау және деректерді импорттау. PHP тілі және MySQL деректер қорымен жұмыс Mysql оқыту

MySQL – реляциялық деректер қорының бір түрі. MySQL — әртүрлі пайдаланушылар қосыла алатын сервер.

Интернетке қосылған кезде логин мен парольді, сонымен қатар қосылатын сервердің атын енгізесіз бе? MySQL-мен жұмыс істегенде дәл осындай жүйе қолданылады.

Тағы бір мәселе: реляциялық деректер базасы дегеніміз не? Реляциялық кестеге негізделген дегенді білдіреді. Атақты электронды редактор Excel кестелері Microsoft-тан шын мәнінде реляциялық дерекқор редакторы болып табылады.

MySQL серверіне қосылу

PHP MySQL серверіне қосылу үшін mysqli_connect() функциясын пайдаланады. Бұл функцияүш аргумент қабылдайды: сервер аты, пайдаланушы аты және құпия сөз.

mysqli_connect() функциясы айнымалы мәнде сақталатын, содан кейін дерекқорлармен жұмыс істеу үшін пайдаланылатын қосылым идентификаторын қайтарады.

MySQL серверінің қосылым коды:

$link = mysqli_connect("localhost", "root", "");

Бұл жағдайда мен жұмыс істеп жатырмын жергілікті компьютер Denwere сайтында, сондықтан хост атауы жергілікті хост, аты түбірлік пайдаланушыжәне құпия сөз жоқ.

MySQL аяқталған кезде қосылым да жабылуы керек. Mysqli_close() функциясы қосылымды жабу үшін пайдаланылады. Мысалды кеңейту:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Қате"); mysqli_close($link);

Мұнда біз қосылым идентификаторын шындыққа тексердік, егер біздің қосылымымызда бірдеңе дұрыс болмаса, онда бағдарлама орындалмайды, die () функциясы оның орындалуын тоқтатады және браузерде қате туралы хабарды көрсетеді.

Қосылым қателері

Қосылымды тексеру үшін келесі функциялар пайдаланылады:

  • mysqli_connect_errno() - соңғы қосылу әрекетінің қате кодын қайтарады. Қателер болмаса, нөлді қайтарады.
  • mysqli_connect_error() - MySQL серверіне қосылған соңғы қатенің сипаттамасын қайтарады.
define("HOST", "localhost"); define("DB_USER", "түбір"); define("DB_PASSWORD", ""); define("ДҚ", "сынаушы"); $link = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* қосылымды тексеру */ егер (mysqli_connect_errno()) ( printf("Қосылу сәтсіз аяқталды: %s\n", mysqli_connect_error()); exit(); ) else ( printf("Сәтті қосылды: %s\n", mysqli_get_host_info($link)); )

mysqli_get_host_info() функциясы пайдаланылатын қосылым түрін қамтитын жолды қайтарады.

Сондай-ақ, анықтау пәрменін пайдаланып, барлық қосылым параметрлерін тұрақты мәндерде сақтағанымды ескеріңіз. Қашан жазасың үлкен жобалар, және MySQL серверіне қосылатын көптеген файлдар болады, қосылым параметрлерін сақтау ыңғайлы бөлек файлжәне оны қосу немесе талап ету функциясы арқылы енгізіңіз.

Мәліметтер базасын таңдау

MySQL серверінде бірнеше дерекқор болуы мүмкін. Ең алдымен, біз жұмыс істеуге қажетті базаны таңдауымыз керек. PHP-де бұл үшін mysqli_connect() функциясында тағы бір параметр бар - дерекқордың атауы.

Мен өз компьютерімде phpMyAdmin атты сынақшы арқылы жасадым. Біз оған қосыламыз:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Қате"); mysql_close($link);

Сонымен, біз жұмыс істеу үшін мәліметтер базасын таңдадық. Бірақ біз білетіндей, реляциялық мәліметтер базасы кестелерден тұрады, ал біздің деректер базасында әлі кестелер жоқ. Деректер қоры бос, кестелерсіз жасалған. Оған кестелерді бөлек қосу керек. Оған PHP арқылы кестені қосамыз.

Кесте құру

MySQL дерекқорларының атауында SQL бөлігі құрылымдық сұрау тілі ретінде аударылатын Structured Query Language дегенді білдіреді. SQL тілінде біз сұраныстарды жазып, оларды PHP бағдарламасынан MySQL серверіне жібереміз.

Кестені құру үшін бізге тек CREATE TABLE командасын беру керек. Бағандарында пайдаланушылардың логиндері (логин бағаны) және құпия сөздері (пароль бағаны) сақталатын пайдаланушылар деп аталатын кесте құрайық.

$query = "КЕСТЕ ЖАСАУ пайдаланушылар (кіру VARCHAR(20), құпия сөз VARCHAR(20))";

Бұл кодта біз $query айнымалысына мәтін жолын тағайындадық, бұл SQL сұрауы. Біз VARCHAR(20) деректер түрінің екі бағанынан тұратын логин мен құпия сөзді қамтитын пайдаланушылар деп аталатын кесте жасаймыз. Деректер түрлері туралы кейінірек айтатын боламыз, әзірге VARCHAR (20) максималды ұзындығы 20 таңбадан тұратын жол екенін ғана ескертемін.

Сұрауымызды MySQL серверіне жіберу үшін біз қолданамыз PHP функциясы mysqli_query() . Бұл функция операция сәтті болған жағдайда оң санды қайтарады және қате орын алса (сұрау синтаксисі жарамсыз немесе бағдарламаның сұрауды орындауға рұқсаты жоқ) жалған мәнді қайтарады.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Қате"); $query = "КЕСТЕ ЖАСАУ пайдаланушылар (кіру VARCHAR(20), құпия сөз VARCHAR(20))"; mysqli_query($query); mysqli_close($link);

SQL сұрауын айнымалыға жазу міндетті емес, оны бірден mysql_query() функциясына аргумент ретінде жазуға болады. Бұл жай ғана кодты оқуға ыңғайлы етеді.

Бұл сценарийдің бір кемшілігі бар - ол браузерге ештеңе шығармайды. Хабарлама қосайық:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Қате"); $query = "КЕСТЕ ЖАСАУ пайдаланушылар (кіру VARCHAR(20), құпия сөз VARCHAR(20))"; if (mysqli_query($query)) echo "Кесте жасалды."; else echo "Кесте жасалмады."; mysqli_close($link);

Бұл сценарийді орындау үшін қайта іске қоссақ, браузерде «Кесте жасалмады» деген хабарды көреміз. Өйткені, кесте бірінші іске қосылғанда жасалған және сол атаумен кестені қайта құру мүмкін емес. Біз қателік жағдайына тап болдық, сондықтан MySQL-мен жұмыс істеу кезінде қателерді өңдеу туралы айтатын кез келді.

Өңдеу қатесі

Бағдарламаны жөндеу кезінде қате туралы нақты ақпарат қажет болуы мүмкін. MySQL-де қате орын алған кезде, дерекқор сервері қате нөмірін және қатені сипаттайтын жолды орнатады. РНР-де бұл деректерге қол жеткізу үшін арнайы функциялар бар.

  • mysqli_errno() – қате нөмірін қайтарады.
  • mysqli_error() – қатені сипаттайтын жолды қайтарады.

Енді сценарийге mysql_error() функциясын қосамыз:

$link = mysql_connect("localhost", "root", "", "tester"); if (!$link) die("Қате"); $query = "КЕСТЕ ЖАСАУ пайдаланушылар (кіру VARCHAR(20), құпия сөз VARCHAR(20))"; if (mysqli_query($query)) echo "Кесте жасалды."; else echo "Кесте жасалмады: ".mysqli_error(); mysqli_close($link);

Енді біздің сценарий браузерге жолды қайтарады: «Кесте жасалмады: «пайдаланушылар» кестесі бұрыннан бар».

Кестені жою

Сонымен, бізде қазір қажет емес үстел бар. Деректер базасынан кестелерді жоюды үйрену уақыты келді.

Кестені тастау үшін DROP TABLE командасын, содан кейін кесте атауын пайдаланыңыз.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Қате"); $query = "КСТЕНДІ ТҮСІРУ пайдаланушылары"; if (!mysqli_query($query)) echo "Кестені түсіру қатесі: ".mysqli_error(); else echo "Кесте жойылды."; mysqli_close($link);

Нәтижелер

Сонымен біз игердік MySQL негіздері. Біз не істеуді үйрендік:

  • MySQL дерекқорына mysqli_connect() функциясы арқылы қосылыңыз.
  • mysqli_close() функциясын пайдаланып MySQL серверіне қосылымды жабыңыз.
  • mysqli_query() функциясын пайдаланып MySQL серверіне SQL сұрауларын жіберіңіз.
  • Біз кесте құру үшін SQL сұранысын үйрендік: кесте құру.
  • Біз кестені тастауға арналған SQL сұрауын үйрендік: кестені түсіру.
  • Біз mysqli_errno() және mysqli_error() функцияларын пайдаланып қателерді өңдеуді үйрендік.

Содан кейін біз MySQL деректер түрлерін мұқият қарастырамыз.

Келесі сабақты оқыңыз:

MySQL-де жұмысты бастау, ең алдымен, авторизациялау, дерекқор мен кестелерді құру және кестелерді деректермен толтыру болып табылады. Бастапқыда мәліметтерді дерекқор серверіне сұраулар жасау немесе, мысалы, мәтіндік құжаттардан деректерді импорттау арқылы қосуға болады. Құжаттардан кестелерге деректер осылайша жүктеледі ЖЫЛЖЫМАЙТЫН МҮЛІКжәне АДАМДАР.

Бұл материал жалғасы болып табылады.

MySQL жұмысын бастау және деректерді импорттау

mysql -h хост -u пайдаланушы -p

Құпия сөзді енгізіңіз: *********

Сондай-ақ құпия сөзді тікелей енгізуге болады

mysql -h хост -u пайдаланушы -pPASSWORD

-p қосқышы мен құпия сөздің өзі арасында бос орын болмауы керек, әйтпесе құпия сөз дерекқордың аты ретінде қабылданады. Бұл опция нашар, себебі құпия сөз тарихта қалады және оны болашақта көруге болады.

MySQL негіздері

Кез келген сұрау (басқа ҚОЛДАНУ, ШЫҒУжәне тағы бірнеше) нүктелі үтірмен аяқталуы керек. Сұрау бірнеше жолға таралуы мүмкін және нүктелі үтір қойылғаннан кейін ғана орындалады.

ТАҢДАУ
-> *
-> FROM
-> gebwoocommerce_api_keys
-> ;
Бос жиын (0,01 сек)

MariaDB >

Орындау арқылы бірнеше жолды енгізуді енгізгеннен кейін сұрауды орындаудан бас тартуға болады. \c

ТАҢДАУ
-> *
-> FROM
-> gebwoocommerce_api_keys
-> \c

Айтпақшы, MySQL шақыруы сұраудың күйін және сервер әкімшіден не күтетінін түсіне аласыз.

(немесе нұсқалары: mysql > , MariaDB > ) Енгізу күтілуде

2) ->

Келесі сұрау жолы бірнеше жолдан тұрады деп күтілуде

3) ">

Сұрау бір тырнақшадан басталса, келесі сұрау жолының ұзындығы бірнеше жол болуын күтіңіз

4) «>

Сұрау қос тырнақшадан басталған болса, келесі сұрау жолының ұзындығы бірнеше жол болуын күтіңіз

Сұрау кері белгімен («`») басталса, келесі сұрау жолы бірнеше жолдан тұрады деп күтіңіз.
6) /*>

Сұрау түсініктеме белгісінен басталса, келесі сұрау жолы бірнеше жолдан тұрады деп күтіңіз /*

MySQL деректер базасын құру және оны деректермен толтыру

Түбір ретінде іске қосу қажет емес, ең жақсы шешім

Мысалы, пайдаланушы пайдаланушысын қосамыз (сынақ ортасында сіз түбір ретінде де жұмыс істей аласыз). MySQL консоліне кіргеннен кейін дерекқор мен кестелерді жасаңыз

REAL_ESTATE_AGENCY ДЕРЕКТЕР БАЗЫН ЖАСАУ;

Сұрау жарайды, 1 жолға әсер етті (0,00 сек)

+——————————+
| мәліметтер базасы |
+——————————+
| ақпараттық_схема |
| mysql |
| өнімділік_схемасы |
| REAL_ESTATE_AGENCY |
+——————————+
Жиында 4 жол (0,03 сек)

деректер базасын өзгерту

CREATE TABLE REAL_ESTATE (VARCHAR(20 түрі), қала VARCHAR(20), еден кеңістігі INT, аудан VARCHAR(20), көше VARCHAR(20), жалға беруші VARCHAR(20), PRICE VARCHAR(20));

АДАМДАРДЫ ЖАСАУ (аты-жөні VARCHAR(20), мамандығы VARCHAR(20), жасы INT, қала VARCHAR(20), аудан VARCHAR(20), жалға беруші VARCHAR(20), PRICE VARCHAR(20));

Сұрау дұрыс, 0 жол әсер етті (0,01 сек)

+——————————+
| REAL_ESTATE_AGENCYдегі_кестелер |
+——————————+
| АДАМДАР |
| REAL_ESTATE |
+——————————+
Жинақта 2 жол (0,00 сек)

Кесте құрылымы және барлық бар бағандар мен бағандар туралы ақпаратты DESCRIBE командасын беру арқылы алуға болады.

+————+————-+——+——+———+——-+
| өріс | түрі | Нөл | кілт | әдепкі | қосымша |
+————+————-+——+——+———+——-+
| түрі | varchar(20) | ИӘ | | NULL | |
| қала | varchar(20) | ИӘ | | NULL | |
| еден кеңістігі | int(11) | ИӘ | | NULL | |
| аудандық | varchar(20) | ИӘ | | NULL | |
| көше | varchar(20) | ИӘ | | NULL | |,

| жалға беру | varchar(20) | ИӘ | | NULL | |
| БАҒА | varchar(20) | ИӘ | | NULL | |
+————+————-+——+——+———+——-+
Жиында 7 жол (0,00 сек)

Кестенің барлық мазмұнын ең жалпы ТАҢДАУ сұрауын пайдаланып көрсетуге болады (сұраудың бұл түрі жиі пайдаланылады және кейінірек егжей-тегжейлі талқыланады)

ТАҢДАУ * REAL_ESTATE;

Бос жиын (0,00 сек)

Қазір деректер жоқ - кестелерді толтырайық. Мұны қажетті мәндермен ЖАҢАРТУларды орындау немесе мәтіндік құжаттардан деректерді жүктеу арқылы жасауға болады. Бастапқы жүктеу кезеңінде екінші әдіс әлдеқайда ыңғайлы. Қолданайық.

MySQL кестелеріне деректерді жүктеу

Біз ақпаратты /tmp/real_estate.txt файлында сақтаймыз - мәндерді қойындылары бар бағандарға бөлеміз. Осыдан кейін консольде алдымен кестені таңдау арқылы деректерді жүктейміз.

Келесі қате орын алуы мүмкін.

ҚАТЕ 1148 (42000): Пайдаланылған пәрменге осы MySQL нұсқасында рұқсат етілмейді

MySQL-де қате орын алса, опциямен қосылу керек --local-infile=1:

mysql --local-infile=1 -u root -p

"/tmp/real_estate.txt" ЖЕРГІЛІКТІ INFILE ДЕРЕКТЕРІН REAL_ESTATE КЕСТЕСІНЕ ЖҮКТЕЛУ;

Сұрау дұрыс, 13 жол әсер етті (0,00 сек)
Жазбалар: 13 Жойылған: 0 Өткізілген: 0 Ескертулер: 0

SELECT нәтижелері енді басқаша көрінеді:

ТАҢДАУ * REAL_ESTATE;


Егер бағанға немесе жолға NULL мәні қажет болса мәтіндік құжатол \N түрінде көрсетілуі керек. MySQL-де дерекқорлармен және кестелермен жұмысты бастау келесідей көрінеді. Әрі қарай пайдалану негіздерін қарастырайық.

MySQL 8. Мәліметтер қорын жобалау және құру

MySQL - танымал реляциялық деректер базасының серверлерінің бірі. Көптеген сайттар мен мазмұнды басқару жүйелерінде (CMS) қолданылады. Wordpress, Joomla, Drupal, Bitrix және басқа да CMS MySQL ДҚБЖ-мен жұмыс істей алады. Ең танымал РНР фреймворктері MySQL-мен жұмыс істей алады: Laravel, Symfony, yii және т.б. MySQL-ті тиімді пайдалану үшін оның құралдарын, мүмкіндіктерін және мүмкіндіктерін білу қажет.

Әрине «MySQL 8. Веб үшін деректер қорын жобалау және құру»негізгі техникалар мен әдістерді меңгересіз тиімді жұмыс MySQL серверімен 8. Оқыту барысында сіз мәліметтер қорын жобалау және құру кезеңдерін қарастырасыз, SQL операторларын егжей-тегжейлі зерттейсіз, MySQL серверіндегі транзакцияларды басқаруды үйренесіз. Сақталған процедуралар мен триггерлерді жасай аласыз, MySQL серверінің сақтауын («қозғалтқыштары») тиімді пайдалануды үйренесіз. Бұл курс кез келген веб-сайт әзірлеушісі үшін өте маңызды.

Курс MySQL серверін өз тәжірибесінде пайдалануды жоспарлайтын веб-әзірлеушілер мен веб-шеберлерге арналған. Курс PHP және Perl тілдерін қолданатын мамандарды ерекше қызықтырады.

Курстың соңында сіз болашақта жобаларыңызда қолдануға болатын SQL сұрауларының үлкен көлемін жинақтайсыз, таңдалған жоба үшін деректер қорын жасайсыз. Әрбір модуль бар көп саны практикалық тапсырмаларжәне білімді бекітуге арналған тестпен аяқталады. Барлық курс тыңдаушыларына үй тапсырмасы беріледі.

Курс бағдарламасы «Бағдарламашы» кәсіби стандартының талаптарына жауап береді.Курсты сәтті аяқтағаннан кейін біліктілікті арттыру орталығының беделді сертификаты беріледі.

MySQL-ді оқытатын мұғалімдер мен тәлімгерлер түсініктемелерде MySQL-ді үйрену ретін ұйымдастырудың жеке нұсқаларын ұсына алады. осы бөлімоқулық. Сонымен қатар жетекшілік ететін оқырмандар дербес оқу MySQL. MySQL-ті өздігінен үйрену тиімді болуы үшін MySQL-ті оқыту ұсынатын әдістемелік тәжірибеге сүйену қажет. Праймер көмектесуі керек жылдам бастауәзірлеуші.

Мәліметтер қоры: негізгі түсініктер

Құжаттардың мазмұны

Өмірде біз жиі кез келген ақпаратты сақтау қажеттілігіне тап боламыз, сондықтан біз жиі деректер базасымен айналысамыз.

Мысалы, біз қолданамыз дәптердостарыңыздың телефон нөмірлерін сақтау және уақытты жоспарлау үшін. Телефон кітапшасында бір қалада тұратын адамдар туралы ақпарат бар. Мұның бәрі деректер қорының бір түрі. Бұл деректер базасы болғандықтан, оларда деректер қалай сақталатынын көрейік. Мысалы, телефон кітапшасы – кесте (10.1-кесте).

Бұл кестеде деректер шын мәнінде телефон нөмірлері, мекенжайлар және толық атаулар, яғни. «Иванов Иван Иванович», «32-43-12» және т.б. жолдар және осы кестенің бағандарының атаулары, т.б. «Аты-жөні», «Телефон нөмірі» және «Мекенжай» жолдары осы деректердің мағынасын, олардың семантикасын анықтайды.

10.1-кесте. Мәліметтер қорының мысалы: телефон кітапшасы

Енді елестетіп көріңізші, бұл кестеде екі емес, екі мың жазба бар, сіз осы каталогты жасап жатырсыз және бір жерде қате пайда болды (мысалы, мекенжайдағы қате). Шамасы, бұл қатені қолмен табу және түзету қиын болады. Автоматтандырудың қандай да бір түрін пайдалану керек. Басқару үшін үлкен мөлшердеректерді бағдарламашылар (математиктердің көмегінсіз емес) мәліметтер қорын басқару жүйелерін (ДҚБЖ) ойлап тапты. Мәтіндік деректер базасымен салыстырғанда электрондық ДҚБЖ ақпаратты жылдам іздеу мүмкіндігінен, деректердің өзара байланысынан бастап осы деректерді әртүрлі салаларда пайдалануға дейін көптеген артықшылықтарға ие. қолданбалы бағдарламалар ah және бірнеше пайдаланушылардың деректеріне бір уақытта қол жеткізу.

Дәлдік үшін Glossary.ru ұсынған мәліметтер қорының анықтамасын берейік

Мәліметтер базасы - бұл қамтамасыз ететін белгілі бір ережелерге сәйкес ұйымдастырылған байланысты деректер жиынтығы жалпы принциптерқолданбалы бағдарламаларға тәуелсіз сипаттау, сақтау және манипуляциялау. Мәліметтер базасы ақпараттық модель пәндік аймақ. Мәліметтер қорына кіру деректер қорын басқару жүйесі (ДҚБЖ) арқылы жүзеге асырылады. ДҚБЖ мәліметтер қорын құруды, орталықтандырылған басқаруды және әртүрлі пайдаланушылардың оларға қол жеткізуін ұйымдастыруды қамтамасыз етеді.

Сонымен, біз белгілі бір ережелерге сәйкес бір-бірімен байланысып, ұйымдастырылғандай деректерді бағдарламалардан тәуелсіз сақтау орынды деген қорытындыға келдік. Бірақ деректерді қалай сақтау керек, оларды қандай ережелерге сәйкес ұйымдастыру керек деген сұрақтар ашық қалды. Көптеген жолдар бар (айтпақшы, олар презентация немесе деректерді сақтау үлгілері деп аталады). Ең танымалдары объектілік және реляциялық деректер модельдері болып табылады.

Автор қатынас моделіЭ.Кодд мәліметтерді өңдеу үшін жиындар теориясының аппаратын қолдануды бірінші болып ұсынды (бірлесу, қиылысу, айырмашылық, декарттық көбейтінді) және кез келген деректерді ұсыну арнайы типтегі екі өлшемді кестелер жиынына дейін қысқартылатынын көрсетті. , математикада қатынас ретінде белгілі.

Осылайша, реляциялық деректер базасы - бұл бір-бірімен байланыстырылған кестелер жиыны (дәл жоғарыдағымен бірдей). Кестедегі жол нақты әлем нысанына сәйкес келеді (жоғарыдағы мысалда бұл адам туралы ақпарат).

Мысалдар реляциялық ДҚБЖ: MySQL, PostgreSQL. Негіз объектінің моделінысанды-бағытталған бағдарламалау концепциясы құрылды, онда деректер бір-бірімен байланысты объектілер мен сыныптардың жиынтығы ретінде көрсетіледі және объектілермен жұмыс оларда жасырын (инкапсуляцияланған) көмегімен жүзеге асырылады.
әдістері.

Объектілік ДҚБЖ мысалдары: Cache, GemStone (Servio Corporation бойынша), ONTOS (ONTOS).

Жақында ДҚБЖ жеткізушілері осы екі тәсілді біріктіруге және объектілік реляциялық деректерді ұсыну үлгісін қолдауға ұмтылуда. Мұндай ДҚБЖ мысалдары IBM DB2 for Common Servers, Oracle8.

Біз Mysql-мен жұмыс жасайтындықтан, реляциялық деректер қорымен жұмыс істеу аспектілерін ғана талқылаймыз. Бұл саладан бізде тағы екі маңызды тұжырымдама қалды: кілттер және индекстеу, содан кейін біз тілді үйренуді бастай аламыз. SQL сұраулары.

1. Пернелер

Алдымен, келесі сұрақ туралы ойланайық: әңгімелесуші дәл осы адам екенін нақты айта алуы үшін адам туралы қандай ақпарат беру керек, күмән тудыруы мүмкін емес, мұндай екінші жоқ? Фамилияны хабарлау жеткіліксіз екені анық, өйткені аттар бар. Егер әңгімелесуші адам болса, онда біз кім туралы айтып жатқанымызды шамамен түсіндіре аламыз, мысалы, сол адамның жасаған әрекетін немесе басқа жолмен еске түсіреміз. Алайда компьютер мұндай түсініктемені түсінбейді, оның кім екенін анықтаудың нақты ережелері қажет. Мәліметтер базасын басқару жүйелерінде мұндай мәселені шешу үшін тұжырымдама енгізілді бастапқы кілт.

Бастапқы кілт (PK) - кестедегі жазбаны бірегей түрде анықтайтын өрістердің ең аз жиынтығы. Бұл бастапқы кілт ең алдымен кесте өрістерінің жиыны екенін білдіреді, екіншіден, осы өрістердің әрбір мәндер жиыны кестедегі бір жазбаны (жолды) анықтауы керек, үшіншіден, өрістердің бұл жиыны бірдей мүлікке ие болғандардың ең азы.

Бастапқы кілт бір ғана бірегей жазбаны анықтайтындықтан, кестедегі ешбір екі жазба бірдей бастапқы кілт мәніне ие бола алмайды.

Мысалы, біздің кестеде (жоғарыдан қараңыз) толық аты-жөні мен мекенжайы адам туралы жазбаны бір мағыналы таңдауға мүмкіндік береді. Жалпы айтқанда, шешіліп жатқан мәселемен байланыссыз, мұндай білім бізге бір адамды дәл көрсетуге мүмкіндік бермейді, өйткені мұнда аттас адамдар өмір сүреді. әртүрлі қалаларбір мекенжайда. Мұның бәрі өзімізге белгілеген шекаралар туралы. Егер қаланы көрсетпестен толық аты-жөнін, телефон нөмірін және мекенжайын білу біздің мақсаттарымыз үшін жеткілікті деп есептесек, онда бәрі жақсы, онда толық аты-жөні мен мекенжайы өрістері бастапқы кілтті құра алады. Қалай болғанда да, бастапқы кілтті құру мәселесі дерекқорды құрастырушының (деректерді сақтау құрылымын жобалайтын) иығына түседі. Бұл мәселенің шешімі кестедегі жазбаны табиғи түрде анықтайтын сипаттамаларды таңдау (логикалық немесе табиғи деп аталатын PK орнату) немесе кестедегі жазбаларды бірегей анықтау үшін арнайы жасалған қосымша өрісті құру болуы мүмкін. (суррогат деп аталатын, немесе жасанды орнату, П.Қ.).

Логикалық бастапқы кілттің мысалы ретінде тұрғындардың төлқұжат деректерінің дерекқорындағы төлқұжат нөмірі немесе толық аты-жөні мен мекенжайы көрсетілген. телефон кітапшасы(жоғарыдағы кесте). Суррогат бастапқы кілтті орнату үшін біз кестеге id (идентификатор) өрісін қоса аламыз, оның мәні әрбір кесте жолы үшін бірегей бүтін сан болады. Табиғи бастапқы кілт өрістердің үлкен жиыны болса немесе оны алу тривиальды болмаса, мұндай суррогат кілттерді пайдалану мағынасы бар.

Жазбаны бірегей анықтаумен қатар, басқа кестелермен қарым-қатынасты ұйымдастыру үшін бастапқы кілттер пайдаланылады.

Мысалы, бізде үш кесте бар: біреуінде тарихи тұлғалар (Тұлғалар) туралы мәліметтер, бірінде олардың өнертабыстары туралы ақпарат (артефактілер), екіншісінде адамдардың да, артефактілердің де суреттері (Сурет) бар (10.1-сурет).

Барлық осы кестелердегі негізгі кілт id (идентификатор) өрісі болып табылады. Артефактілер кестесінде Тұлғалар кестесіндегі өнертабыс авторына тағайындалған идентификаторды жазатын автор өрісі бар. Бұл өрістің әрбір мәні Persons кестесінің бастапқы кілтінің сыртқы кілті болып табылады. Сонымен қатар, "Тұлғалар" және "Артефактілер" кестелерінде Суреттер кестесіндегі кескінге сілтеме жасайтын фотосурет өрісі бар. Бұл өрістер сонымен қатар Кескіндер кестесінің бастапқы кілтінің сыртқы кілттері болып табылады және Тұлғалар-Суреттер және Артефактілер-Кескіндер арасында бір-бір логикалық қатынасты орнатады. Яғни, егер адам кестесіндегі шетелдік кілт фотосуретінің мәні 10 болса, онда бұл адамның фотосуретінде кескіндер кестесінде id=10 болады. Осылайша, сыртқы кілттер дерекқор кестелері (ата-ана және еншілес) арасындағы қарым-қатынастарды ұйымдастыру және деректердің сілтеме тұтастығын шектеулерін қолдау үшін пайдаланылады.

2. Индекстеу

Мәліметтер қорымен жұмыс істеу кезінде туындайтын негізгі міндеттердің бірі – іздеу міндеті. Сонымен қатар, әдетте деректер базасында ақпарат көп болғандықтан, бағдарламашылар алдында жай ғана іздеу емес, тиімді іздеу міндеті тұр, яғни. салыстырмалы түрде қысқа мерзімде және жеткілікті дәлдікпен іздеу.

Бұл әрекетті орындау үшін (сұрау өнімділігін оңтайландыру үшін) кейбір кесте өрістері индекстеледі. Индекстерді пайдалану берілген жалғыз баған мәні бар жолдарды жылдам табу үшін пайдалы. Индекссіз кесте бірінші жазбадан бастап сәйкес жолдар табылмайынша бүкіл кесте бойынша оқылады. Үстел неғұрлым үлкен болса, соғұрлым үстеме шығын көп болады. Егер кестеде қарастырылып отырған бағандарда индекс болса, онда дерекқор барлық деректерді қарап шықпай-ақ деректер файлының ортасында іздеу орнын жылдам таба алады. Себебі дерекқор индекстелген өрістерді жадқа жақынырақ орналастырады, осылайша олардың мәндерін тезірек табуға болады. 1000 жолды қамтитын кесте үшін бұл барлық жазбаларды қайталаудан кемінде 100 есе жылдамырақ болады. Дегенмен, барлық дерлік 1000 жолға қол жеткізу қажет болған жағдайда, дәйекті оқу жылдамырақ болады, өйткені ол дискілерді іздеуді қажет етпейді. Сондықтан кейде индекстер тек кедергі болып табылады. Мысалы, деректердің үлкен көлемі кестеге көшіріліп жатқан болса, онда индекстердің болмағаны жақсы. Дегенмен, кейбір жағдайларда бірден бірнеше индекстерді пайдалану қажет (мысалы, жиі қолданылатын кестелердегі сұраныстарды өңдеу үшін).

Егер Mysql туралы айтатын болсақ, онда индекстердің үш түрі бар: PRIMARY, UNIQUE және INDEX және кілт (KEY) сөзі индекс (INDEX) сөзінің синонимі ретінде қолданылады. Барлық индекстер жадта В-ағаштары ретінде сақталады.

БАСТАУЫ- бірегей көрсеткіш(кілт) индекстелген барлық өрістерде болуы мүмкін емес шектеумен бос мән(яғни, олар NULL ЕМЕС). Кестеде тек бір негізгі индекс болуы мүмкін, бірақ оның бірнеше өрістері болуы мүмкін.

UNIQUE — тек бірегей мәндері болуы мүмкін өрістерді анықтайтын кілт (индекс).

INDEX – тұрақты индекс (жоғарыда сипатталғандай). Mysql-де жолдың басынан бастап берілген таңбалар саны бойынша жол өрістерін индекстеуге де болады.

3. Mysql ДҚБЖ

Mysql ДҚБЖ туралы әңгімені жалғастырайық. mysql бұл қатынас жүйесімәліметтер базасын басқару. Яғни, оның деректер қорларындағы мәліметтер логикалық өзара байланысқан кестелер түрінде сақталады, оларға SQL сұрау тілі арқылы қол жеткізіледі. Mysql – еркін таратылатын жүйе, яғни. Оны пайдалану үшін ақы төлеудің қажеті жоқ. Сонымен қатар, бұл өте жылдам, сенімді және ең бастысы, тым ғаламдық емес жобалар үшін өте қолайлы ДҚБЖ.

Mysql-мен тек мәтіндік режимде ғана емес, графикалық режимде де жұмыс істеуге болады. Бұл ДҚБЖ-мен жұмыс істеу үшін өте танымал визуалды интерфейс бар (айтпақшы, PHP тілінде жазылған). Ол PhpMyAdmin деп аталады. Бұл интерфейс Mysql-де мәліметтер қорымен жұмыс істеуді айтарлықтай жеңілдетеді.

PhpMyAdmin браузердің барлық артықшылықтарын, соның ішінде экранға сәйкес келмесе, кескінді айналдыруды пайдалануға мүмкіндік береді. PhpMyAdmin жүйесіндегі SQL деректерін өңдеудің негізгі функцияларының көпшілігі интуитивті болып қысқартылды. анық интерфейстержәне Интернеттегі келесі сілтемелерді еске түсіретін әрекеттер. Дегенмен, әлі де мәтіндік режимде жұмыс істеу керек.

SQL тілін егжей-тегжейлі зерттеуге кіріспес бұрын, туралы бірнеше сөз mysql орнатужәне жұмысқа дайындық. Егер сіз серверді басқарғыңыз келмесе, төмендегі ақпарат тек сізге пайдалы болады жалпы даму. Сонымен, Mysql өте қарапайым орнатылады - автоматты түрде, OK түймесін бірнеше рет басыңыз, және болды. Осыдан кейін Mysql.exe, Mysqld.exe және т.б. сияқты файлдар орналасқан каталогқа өтуге болады. (Windows XP жүйесінде бұл c:\Mysql\bin) Соңғы файл Mysql серверін іске қосады. Кейбір жүйелерде сервер қызмет ретінде жұмыс істейді. Серверді іске қосқаннан кейін Mysql.exe бағдарламасын іске қосу арқылы Mysql клиентін іске қосыңыз. Олар тіпті құпия сөзді де сұрамайды. Сонымен қатар, егер сіз shell> Mysql.exe -u root немесе shell>Mysql -u root Mysql деп терсеңіз, Mysql серверінің толық әкімші құқықтарына ие боласыз. Айтпақшы, бұл командаларды Mysql.exe файлдары орналасқан каталогта орындау керек.
Бастау үшін, командалардың егжей-тегжейіне кірмей, біз осы екі кемшілікті түзетеміз (әкімші үшін құпия сөздің болмауы және анонимді пайдаланушыларға кіру мүмкіндігі):

Mysql пайдаланушылар кестесіндегі пайдаланушылар туралы барлық деректерді арнайы дерекқорда сақтайды mysql деректері, оған сервер әкімшісі ғана қол жеткізе алады. Сондықтан кез келген құпия сөзді өзгерту үшін осы кестені өзгерту керек. Құпия сөз енгізілген деректерді кодтайтын PASSWORD функциясы арқылы орнатылады. Әкімші құпия сөзін өзгертуден басқа, логині жоқ барлық пайдаланушыларды жою қажет (DELETE пәрмені). Flush Privileges пәрмені жүйелік дерекқорда (Mysql) орын алған өзгерістердің күшіне енуіне себеп болады.

Енді біз жұмыс істейтін дерекқорды жасайық (біз әлі де сервер әкімшісі ретінде жұмыс істейміз):
mysql>мәліметтер қоры кітабын жасау;

Көріп отырғаныңыздай, Mysql-дегі барлық командалар нүктелі үтірмен аяқталады. Егер сіз бұл белгіні қоюды ұмытып қалсаңыз, ол аяқталғанша оны қоюға шақыру беріледі:

mysql>кестелерді көрсету
->
->

Енді соңғы қадам жасау қарапайым қолданушы, оған құрылған дерекқорға рұқсат беріңіз және жұмыс істей бастаңыз.

Mysql> Кітапқа БАРЛЫҚ АРТЫҚШЫЛЫҚТАРДЫ БЕРІҢІЗ.* TO [электрондық пошта қорғалған]
"123" БОЙЫНША АНЫҚТАЛДЫ;

GRANT командасы серверге сол машинадан (localhost-тен) кірген және «123» паролімен анықталған пайдаланушыға nina, кітап деректер қорындағы барлық кестелерге белгілі құқықтар (бұл жағдайда барлығы) береді. Енді біз жүйеден шығып, сәйкес құпия сөзбен nina пайдаланушысы ретінде кіре аламыз:

shell>Mysql -u nina -p
Құпия сөзді енгізіңіз: ***
MySQL мониторына қош келдіңіз!...
mysql>

Егер сіз дерекқорды басқа біреудің серверінде пайдаланғыңыз келсе, оның әкімшісі сіз үшін жоғарыда сипатталған барлық қадамдарды жасайды, яғни. барлығы пайдаланушы мен дерекқорды орнатады және жасайды. Келесі тарауда Mysql ДҚБЖ сақталған деректермен жұмыс істеу үшін пайдалы SQL пәрмендері сипатталады.

4.

5.

6.

7. Ақпаратты қосу интерфейсін құру

Сонымен, бізде дерекқорда қандай да бір кесте бар. Осы кестеге ақпаратты қосу интерфейсін құру үшін оның құрылымын (яғни оның өрістерінің жиынын) html пішінінде көрсету керек.

Бұл тапсырманы келесі қосалқы тапсырмаларға бөлейік:

  • деректер қорымен байланыс орнату;
  • жұмыс деректер қорын таңдау;
  • кесте өрістерінің тізімін алу;
  • өрістерді html пішінінде көрсету.
Осыдан кейін формаға енгізілген деректер мәліметтер базасына жазылуы керек.

Осы тапсырмалардың барлығын ретімен қарастырайық.

8. Байланыс орнату

Сонымен, ең бірінші істеу керек нәрсе - дерекқорға қосылу.

Mysql_connect функциясын қолданайық.

Mysql_connect синтаксисі

Mysql_connect ресурсы ([жол сервері
[, жол пайдаланушы аты [, жол құпия сөзі
[, логикалық жаңа_сілтеме
[, бүтін клиент_жалаулары]]]]])

Бұл функция байланыс орнатады mysql серверіжәне сол қосылымға көрсеткішті қайтарады немесе сәтсіз болса FALSE.

Жетіспейтін опциялар келесі әдепкі мәндерге орнатылады:
сервер = "localhost: 3306"
пайдаланушы аты = сервер процесі иесінің пайдаланушы аты
құпия сөз = бос құпия сөз

Егер функция бірдей параметрлермен екі рет шақырылса, онда жаңа қосылым орнатылмайды, бірақ ескі қосылымға сілтеме қайтарылады.

Бұған жол бермеу үшін бәрібір тағы бір қосылымды ашуға мәжбүр ететін new_link параметрі пайдаланылады.

client_flags параметрі келесі тұрақты мәндердің тіркесімі болып табылады:

MYSQL_CLIENT_COMPRESS (сығу протоколын пайдаланыңыз),
MYSQL_CLIENT_IGNORE_SPACE (функция атауларынан кейін бос орындар енгізуге мүмкіндік береді), MYSQL_CLIENT_INTERACTIVE (қосылымды жабу алдында күту_уақытының орнына интерактивті_уақыт секундын күтіңіз).

new_link параметрі PHP 4.2.0-де және client_flags параметрі PHP 4.3.0-де енгізілді.

Mysql_close() функциясын пайдаланбас бұрын ол жабылмаған болса, серверге қосылу сценарийдің орындалуы аяқталғанда жабылады.

Сонымен, біз дерекқорға қосылым орнатамыз жергілікті сервер«123» құпия сөзі бар nina пайдаланушысы үшін:

$conn = mysql_connect(

немесе өледі( «Орнату мүмкін емес
байланыс: «
. mysql_error());
жаңғырық «Байланыс орнатылды»;
mysql_close($conn);
?>

Mysql_connect әрекеті пәрменге тең

shell>Mysql -u nina -p123

9. Мәліметтер қорын таңдау

Қосылым орнатылғаннан кейін біз жұмыс істейтін дерекқорды таңдау керек. Біздің деректер кітап базасында сақталады. MySQL-де дерекқорды таңдау use командасы арқылы жүзеге асырылады:

mysql>пайдалану кітабы;


Бұл үшін PHP-де Mysql_select_db функциясы бар.

Mysql_select_db синтаксисі:

Логикалық

mysql_select_db(жол дерекқорының_аты[, ресурстың_идентификаторы])

Бұл функция дерекқорды сәтті таңдауда TRUE және FALSE мәнін қайтарады

  • әйтпесе.
Кітап базасының жұмысын жасайық:

$conn = mysql_connect(
"localhost" , "nina" , "123" )
немесе өледі( «Орнату мүмкін емес
байланыс: «
. mysql_error());
жаңғырық «Байланыс орнатылды»;
mysql_select_db("кітап");
?>

10. Кесте өрістерінің тізімін алу

Енді сіз нақты мәселені шешуді жасай аласыз. Кесте өрістерінің тізімін қалай алуға болады? Өте оңай. PHP-де бұл жағдайға арналған өз пәрмені бар - Mysql_list_fields.

10.1. Mysql_list_fields синтаксисі

ресурсы Mysql_list_fields (
дерекқор_атауы жолы,
жол кестесінің_аты
[, сілтеме_идентификатор ресурсы])

Бұл функция дерекқордың_атындағы кесте_атауы ішіндегі өрістер тізімін қайтарады. Бізге дерекқорды таңдаудың қажеті жоқ екені белгілі болды, бірақ бұл кейінірек пайдалы болады. Көріп отырғаныңыздай, бұл функцияның нәтижесі ресурс түрінің айнымалысы болып табылады. Яғни, бұл біздің алғымыз келген нәрсе емес. Бұл кестедегі өрістер, соның ішінде олардың атаулары, түрлері және жалаушалары туралы ақпаратты алуға болатын сілтеме.

Mysql_field_name функциясы сұраудан қайтарылған өрістің атын қайтарады. Mysql_field_len функциясы өрістің ұзындығын қайтарады. Mysql_field_type функциясы өріс түрін қайтарады, ал Mysql_field_flags функциясы өріс жалауларының бос орынмен бөлінген тізімін қайтарады. Өріс типтері int, real, string, blob және т.б. Жалаушалар нөл емес, негізгі_кілт, бірегей_кілт, блоб,
auto_increment т.б.

Барлық осы командалардың синтаксисі бірдей:

Mysql_field_name жолы (ресурс нәтижесі, бүтін өріс_офсет)
Mysql_field_type жолы (ресурс нәтижесі, бүтін өріс_офсет)
Mysql_field_flags жолы (ресурс нәтижесі, бүтін өріс_офсет)
Mysql_field_len жолы (ресурс нәтижесі, бүтін өріс_офсет)

Мұнда нәтиже сұрау нәтижесінің идентификаторы (мысалы, Mysql_list_fields немесе Mysql_query функциялары арқылы жіберілген сұрау (бұл туралы кейінірек)), ал field_offset нәтижедегі өрістің реттік нөмірі болып табылады.

Жалпы айтқанда, Mysql_list_fields немесе Mysql_query сияқты функциялар қайтаратын нәрсе кесте, дәлірек айтсақ, оған көрсеткіш. Осы кестеден нақты мәндерді алу үшін осы кестені жол бойынша оқитын арнайы функцияларды пайдалану керек. Бұл функцияларға Mysql_field_name және т.б. кіреді. Сұрау нәтижелері кестесіндегі барлық жолдарды қайталау үшін осы кестедегі жолдар санын білу қажет. Mysql_num_rows(нәтиже ресурсы) пәрмені нәтижелер жиынындағы жолдар санын қайтарады
нәтиже.

Ал енді Artifacts кестесіндегі өрістер тізімін алуға тырысайық (экспонаттар жинағы).

$conn = mysql_connect(
"localhost" , "nina" , "123" )
немесе өледі( «Орнату мүмкін емес
байланыс: «
. mysql_error());
жаңғырық «Байланыс орнатылды»;
mysql_select_db("кітап");
$list_f = mysql_list_fields (
"book" , "Артефактілер" , $conn );
$n = Mysql_num_fields($list_f );
үшін($i = 0 ; $i< $n ; $i ++){



$flags_str = mysql_field_flags(
$list_f , $i );
жаңғырық»
Өріс атауы: " . $name_f ;
жаңғырық»
Өріс түрі: " . $типі ;
жаңғырық»
Өріс ұзындығы: " . $len ;
жаңғырық "
Өріс жалауының жолы: "
.
$flags_str . "


" ;
}
?>

Нәтиже келесідей болуы керек (егер кестеде тек екі өріс болса, әрине):

Өріс атауы: id
Өріс түрі: int
Өріс ұзындығы: 11
Өріс жалауының жолы:
емес_null негізгі_кілттің авто_өсімі
Өріс атауы: тақырып
Өріс түрі: жол
Өріс ұзындығы: 255
Өріс жалауының жолы:
html пішініндегі өрістер тізімін көрсету

Енді алдыңғы мысалды сәл түзетейік. Біз өріс туралы ақпаратты көрсетіп қана қоймаймыз, оны қолайлы html пішін элементінде көрсетеміз. Сонымен, біз BLOB түрінің элементтерін мәтіндік аймаққа түрлендіреміз (мәтін түрімен жасаған сипаттау өрісі BLOB түрі бар ретінде көрсетілетінін ескеріңіз), біз сандар мен жолдарды мәтін енгізу жолдарында көрсетеміз. , және автоматты өсу белгісі бар элемент мүлде көрсетілмейді, себебі оның мәні автоматты түрде орнатылады.

Мұның бәрі жалаушалар тізімінен auto_increment жалаушасын таңдауды қоспағанда, өте оңай шешілген. Ол үшін жарылыс функциясын пайдалану керек.

Жарылу синтаксисі:

массив жарылуы(жолды бөлгіш, жол жолы [, int шегі ])

Бұл функция бөлгіш бөлгішті пайдаланып жол жолын бөліктерге бөледі және нәтижесінде алынған жолдардың массивін қайтарады.

Біздің жағдайда бөлгіш ретінде « " бос орынды және бөлу үшін бастапқы жол ретінде өріс жалауларының жолын алуымыз керек.

Сонымен, Артефактілер кестесіне деректерді енгізу формасын жасайық:

$conn = Mysql_connect («localhost» , «nina» , «123» );
// байланыс орнату
$database = "кітап" ;
$table_name = "Артефактілер" ;
mysql_select_db($деректер базасы); // үшін дерекқорды таңдаңыз
// жұмыс

// нәтижедегі жолдар саны
// алдыңғы сұрау (яғни қанша
// Артефактілер кестесіндегі өрістер)
жаңғырық "

" ;
// деректер енгізу пішінін жасаңыз
жаңғырық "

Жаңа жолды қосыңыз
$кесте_аты
"
;
жаңғырық "" ;
// әрбір өріс үшін оның атын, түрін, ұзындығын және жалаушаларын аламыз
үшін($i = 0 ; $i< $n ; $i ++){
$типі = Mysql_field_type ($list_f , $i );
$name_f = Mysql_field_name ($list_f , $i );
$len = Mysql_field_len ($list_f , $i );
$flags_str = Mysql_field_flags ($list_f , $i );
// жалаулар жолынан массив жасаңыз,
// мұндағы әрбір жиым элементі өріс жалауы болып табылады
$flags = жарылу (" " , $flags_str );
foreach ($f деп белгілейді)(
егер ($f == "auto_increment" ) $key = $name_f ;
// автоинкременттің атын есте сақтаңыз
}
/* әрбір автоматты өспейтін өріс үшін
оның түріне қарай сәйкес пішін элементін көрсетіңіз */
егер ($кілт<>$name_f )(
жаңғырық "" ;
қосқыш ($түрі)(
"жол" жағдайы:
$w = $len / 5 ;
жаңғырық "" ;
үзіліс;
"int" жағдайы:
$w = $len / 4 ;
жаңғырық "" ;
үзіліс;
"блобтар" жағдайы:
жаңғырық "" ;
үзіліс;
}
}
жаңғырық»" ;
}
жаңғырық»

" . $name_f . "
өлшемі = $w>өлшемі = $w>
" ;
жаңғырық "" ;
жаңғырық»" ;
?>

Ашық қосылымдар болмаса, функция Mysql_connect() функциясына ұқсас, параметрлерсіз ДҚБЖ қосылуға тырысады. Сұрау нәтижесі буферленеді.

Ескерту: Сұрау жолы нүктелі үтірмен аяқталмауы керек.

Тек ТАҢДАУ, КӨРСЕТУ, ТҮСІНДІРУ, СИПАТТАУ сұраулары үшін Mysql_query() сұрау нәтижесіне көрсеткішті қайтарады, егер сұрау орындалмаса, FALSE. Әйтпесе, Mysql_query() сұрау сәтті болса, АҚИҚАТ мәнін және сәтсіз болса, ЖАЛҒАН мәнін қайтарады. FALSE мәнінен басқа мән сұраудың сәтті болғанын көрсетеді. Қанша жолға әсер еткені немесе қайтарылғаны айтылмайды. Сәтті сұрау жолдардың ешқайсысына әсер етпеуі әбден мүмкін. Mysql_query() де сәтсіз аяқталады және пайдаланушының сұрауда көрсетілген кестеге кіруге жеткілікті рұқсаттары болмаса, FALSE мәнін қайтарады.

Енді дерекқорға жолдарды кірістіру сұрауын қалай жіберу керектігін білеміз.
$list_f = Mysql_list_fields ($database , $table_name );
// дерекқордағы өрістер тізімін алу
$n = Mysql_num_fields($list_f ); // нәтижедегі жолдар саны
// алдыңғы сұрау
// кестенің барлық өрістері үшін бірден бір сұрауды құрастырыңыз
$sql = "INSERT INTO $table_name SET"; // құруды бастау
// сұрау, кестенің барлық өрістерін қайталау
үшін($i = 0 ; $i< $n ; $i ++){
$name_f = Mysql_field_name ($list_f , $i ); // өріс атауын есептеу
$мән = $_POST [ $name_f ]; // өріс мәнін есептеу
$j = $i + 1 ;
$sql = $sql. $name_f . " = "$мән"" ; // қосу
// жол $sql жұп атауы=мән
егер ($j<>$n ) $sql = $sql . ","; // егер өріс жоқ болса
// тізімде соңғы, содан кейін үтір қойыңыз
}
// дерекқорға бірдеңе жазбас бұрын,
// қандай сұрау қабылданғанын көре аласыз
//echo $sql;
$нәтиже = Mysql_query ($sql , $conn ); // сұрау жіберу
// сұрау сәтті болған жағдайда хабарды көрсетіңіз
if (! $result ) echo " Қосу мүмкін емес ($кесте_аты) " ;
басқа жаңғырық «Сәттілік!
" ;
?>

Листинг 11.0.2. insert.php

Сонымен, біз веб-интерфейс арқылы деректерді қосу мәселесін шештік. Дегенмен, бұл жерде бір нәзіктік бар. Шешім қабылдау кезінде біз кейбір өрістердің мәндерін (автор, фото) басқа кестелерден (тұлғалар, суреттер) алу керектігін ескермедік. Mysql шетелдік кілттермен жұмыс істемейтіндіктен, бұл сәт жүйе әзірлеушілерінің санасында қалады, яғни. ар-ожданымызға. Бағдарламаны осындай өрістерге дұрыс мәндерді енгізуге болатындай етіп аяқтау қажет. Бірақ біз мұны істемейміз, өйткені дәрістің мақсаты оқырманды жұмыс жүйесін құру емес, технология элементтерімен таныстыру. Сонымен қатар, оқырманға қол жетімді білім бұл мәселені өз бетімен шешуге жеткілікті. Біз басқа тапсырмаға көшеміз - Mysql ДҚБЖ дерекқорында сақталған деректерді көрсету.

12.

13.

14.

15. Әдебиет

http://mysql.ru/docs/man/
http://www.intuit.ru/department/database/mysql/

Егер сіз техникалық терминологияны оңай және ренжімей түсінгіңіз келсе, сіз дұрыс жерге келдіңіз. Біз оны қарапайым етіп сақтаймыз және оны қарапайым тілмен түсіндіруге бар күшімізді саламыз. Сонымен MySQL дегеніміз не? Оны дәл қазір анықтап алайық.

MySQL дегеніміз не?

Ең алдымен, сіз оны қалай айту керектігін білуіңіз керек: MY-ES-KYOO-EL '[my-es-ky-el]. Сіз басқа айтылуларды естуіңіз мүмкін, бірақ кем дегенде қазір сіз ресми айтылуын білесіз. MySQL AB швед компаниясы бастапқыда 1994 жылы MySQL-ті әзірледі. Содан кейін американдық Sun Microsystems технологиялық компаниясы 2008 жылы MySQL AB сатып алу арқылы толық меншік құқығына ие болды. Америкалық технологиялық алпауыт Oracle Sun Microsystems-ті 2010 жылы сатып алды, содан бері MySQL іс жүзінде Oracle-ға тиесілі.

Жалпы анықтамаға келетін болсақ, MySQL - бұл клиент-сервер моделі бар ашық бастапқы реляциялық дерекқорды басқару жүйесі (RDBMS). RDBMS – реляциялық модель негізінде деректер қорын жасау және басқару үшін пайдаланылатын бағдарламалық құрал немесе қызмет. Енді әрбір терминді толығырақ қарастырайық:

Мәліметтер базасы

Мәліметтер қоры жай ғана құрылымдалған мәліметтер жиынтығы. Мысалы, селфи жасағанда: түймені басып, өзіңізді суретке түсіресіз. Фотосуретіңіз деректер болып табылады, ал телефоныңыздың галереясы дерекқор болып табылады. Мәліметтер қоры – мәліметтер сақталатын орын. «Реляциялық» сөзі деректер жиынында сақталған деректер кестелерде ұйымдастырылғанын білдіреді. Әрбір кесте қандай да бір жолмен байланысты. Бағдарламалық жасақтама реляциялық деректер үлгісін қолдамаса, оны ДҚБЖ деп атаңыз.

ашық дереккөз

Ашық дереккөз сіз оны еркін пайдалана аласыз және өзгерте аласыз. Бағдарламаны кез келген адам орната алады. Сіз сондай-ақ қажеттіліктеріңізге сәйкес келетін бастапқы кодты зерттеп, өзгерте аласыз. Дегенмен, GPL (GPU Public License) шарттарға байланысты не істей алатыныңызды нақты анықтайды. Сізге икемді иелік және кеңейтілген қолдау қажет болса, коммерциялық лицензияланған нұсқасы қолжетімді.

Клиент-сервер моделі

RDBMS бағдарламалық құралын орнататын және іске қосатын компьютерлер клиенттер деп аталады. Деректерге қол жеткізу қажет болғанда, олар RDBMS серверіне қосылады. Бұл клиент-сервер жүйесі.

MySQL - көптеген RDBMS бағдарламалық құрал опцияларының бірі. RDBMS және MySQL MySQL-тің танымалдығына байланысты бірдей деп саналады. Facebook, Twitter, YouTube, Google және Yahoo сияқты бірнеше негізгі веб-қосымшаларды атаңыз! Барлығы деректерді сақтау үшін MySQL пайдаланады. Ол бастапқыда шектеулі пайдалану үшін жасалғанымен, қазір Linux, macOS, Microsoft Windows және Ubuntu сияқты көптеген маңызды есептеу платформаларымен үйлесімді.

SQL

MySQL клиент-сервер моделін жүзеге асыратын RDBMS бағдарламалық қамтамасыз етудің ең танымал брендтерінің бірі екенін есте сақтаңыз. Сонымен, клиент пен сервер RDBMS ортасында қалай әрекеттеседі? Олар доменге тән тілді, құрылымдық сұрау тілін (SQL) пайдаланады. Егер сіз PostgreSQL және Microsoft SQL Server сияқты SQL бар басқа атауларды кездестірсеңіз, олар SQL синтаксисін пайдаланатын брендтер болуы мүмкін. RDBMS бағдарламалық жасақтамасы көбінесе басқа бағдарламалау тілдерінде жазылады, бірақ әрқашан деректер қорымен өзара әрекеттесу үшін негізгі тіл ретінде SQL пайдаланады. MySQL өзі C және C++ тілінде жазылған. Оңтүстік Америка елдері туралы ойланыңыз, олардың барлығы географиялық тұрғыдан әртүрлі және әртүрлі тарихқа ие, бірақ олардың барлығы негізінен испан тілінде сөйлейді.

Инженер-компьютер Тед Кодд 1970 жылдардың басында IBM реляциялық моделіне негізделген SQL-ті жасады. Ол 1974 жылы кеңінен қолданыла бастады және сол кезде ескірген ұқсас тілдерді, ISAM және VISAM-ды тез ауыстырды. Тарихтан басқа, SQL серверге деректермен не істеу керектігін айтады. Бұл сіздің WordPress құпия сөзіңізге немесе кодыңызға ұқсас. Басқару тақтасының аймағына кіру үшін оны жүйеге енгізесіз. Бұл жағдайда SQL мәлімдемелері серверге белгілі бір әрекеттерді орындауды айта алады:

  • Деректер сұрауы: бар дерекқордан нақты ақпаратты сұрау.
  • Деректерді өңдеу: деректерді, мәндерді немесе көрнекі элементтерді өзгерту үшін қосу, жою, өзгерту, сұрыптау және басқа әрекеттер.
  • Деректерді сәйкестендіру: сандық деректерді бүтін сандарға өзгерту сияқты деректер түрлерін анықтау. Бұған дерекқордағы әрбір кестенің схемасын немесе қатынасын анықтау да кіреді.
  • Деректерге қол жеткізуді басқару: деректерді қорғау үшін қауіпсіздік шараларын қамтамасыз ету, соның ішінде дерекқорда сақталған ақпаратты кім көре алатынын немесе пайдалана алатынын шешу.

MySQL қалай жұмыс істейді?

Сурет негізгі клиент-сервер құрылымын түсіндіреді. Бір немесе бірнеше құрылғылар (клиенттер) серверге белгілі бір желі арқылы қосылады. Әрбір клиент өз экрандарында графикалық пайдаланушы интерфейсінен (GUI) сұрау жасай алады және екі жақ нұсқауды түсінсе, сервер қажетті нәтижені береді. Тым техникалық болмай-ақ, MySQL ортасында орын алатын негізгі процестер бірдей:

  1. MySQL әр кестенің қатынасын анықтайтын деректерді сақтау және басқару үшін деректер қорын жасайды.
  2. Клиенттер MySQL жүйесінде белгілі SQL пәрмендерін енгізу арқылы сұраулар жасай алады.
  3. Сервер қолданбасы сұралған ақпаратпен жауап береді және клиент жағында пайда болады.

Осымен болды. Клиенттер әдетте қай MySQL графикалық интерфейсін пайдалану керектігін анықтайды. Графикалық пайдаланушы интерфейсі неғұрлым жеңіл және ыңғайлы болса, деректерді басқару операциялары соғұрлым тезірек және оңайырақ болады. Ең танымал MySQL графикалық интерфейстерінің кейбірі MySQL WorkBench, SequelPro, DBVisualizer және Navicat DB Admin Tool болып табылады. Кейбіреулер тегін, кейбіреулері коммерциялық, кейбіреулері тек macOS үшін жұмыс істейді, ал кейбіреулері негізгі операциялық жүйелермен үйлесімді. Клиенттер өздерінің қажеттіліктеріне қарай GUI таңдауы керек. Дерекқорды басқару, соның ішінде веб-сайтты басқару үшін ең айқын әдіс phpMyAdmin болып табылады.

Неліктен MySQL соншалықты танымал?

MySQL шын мәнінде нарықтағы жалғыз RDBMS емес, бірақ іздеу нәтижелеріндегі ескертпелердің саны, LinkedIn-тегі кәсіби профильдер және техникалық деректердің жиілігі сияқты маңызды параметрлерді пайдалана отырып бағаланған кезде ол ең танымал және Oracle Database-тен кейінгі екінші болып табылады. Интернет-форумдардағы талқылаулар. Көптеген ірі технологиялық алпауыттардың оған сүйену фактісі лайықты ұстанымды одан әрі нығайтады. Неге бұлай? Міне, себептері:

Икемділік пен пайдаланудың қарапайымдылығы

Бастапқы кодты өзіңіздің күтулеріңізге сәйкес өзгертуге болады және бұл еркіндік деңгейі үшін ештеңе төлеудің қажеті жоқ, соның ішінде кеңейтілген коммерциялық нұсқаға жаңарту опциялары. Орнату процесі салыстырмалы түрде қарапайым және 30 минуттан аспауы керек.

Жоғары өнімділік

Кластерленген серверлердің кең ауқымы MySQL тілін қолдайды. Электрондық коммерция деректерінің үлкен көлемін сақтайсыз ба немесе үлкен бизнес интеллектімен айналыссаңыз да, MySQL сізге оңтайлы жылдамдықта көмектесе алады.

салалық стандарт

Өнеркәсіптер MySQL-ті жылдар бойы пайдаланып келеді, бұл тәжірибелі әзірлеушілер үшін көптеген ресурстар бар дегенді білдіреді. MySQL пайдаланушылары бағдарламалық жасақтаманы жылдам әзірлеуді асыға күтеді, ал аз жұмыс істегісі келетін штаттан тыс сарапшылар оларға қажет болады.

Қауіпсіздік

Дұрыс RDBMS бағдарламалық құралын таңдаған кезде деректеріңіздің қауіпсіздігі басты мәселе болуы керек. Қол жеткізу және тіркелгілерді басқару жүйесінің көмегімен MySQL қауіпсіздіктің жоғары деңгейін белгілейді. Хост негізіндегі растау және құпия сөзді шифрлау қол жетімді.

Енді сіз MySQL деген не екенін білесіз. MySQL пайдалану тәжірибеңіз бар ма? Төменде немесе Hostinger сайтында түсініктеме қалдыру арқылы маған хабарлаңыз.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!