JavaRush /Java блогы /Random-KK /Біз мәліметтер қорын және SQL тілін талдаймыз. (2-бөлім) ...
Roman Beekeeper
Деңгей

Біз мәліметтер қорын және SQL тілін талдаймыз. (2-бөлім) - «Java жобасы А-дан Я-ға дейін»

Топта жарияланған
Java жобасын жасау туралы сериядан мақала (басқа материалдарға сілтемелер соңында). Оның мақсаты – негізгі технологияларды талдау, нәтижесі – телеграмма ботын жазу. «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 1 бөлімДенсаулықтарыңыз мықты болсын, құрметті оқырмандар. Бүгін біз аздап сөйлеп, көбірек жазамыз, өйткені біздің қолымыз көзімізден әлдеқайда жақсы есте сақтайды. Сізді қызықтыруы мүмкін: біз неге MySQL пайдаланамыз? Мысалы, бірдей PostgreSQL және басқа шешімдер бар. Мұнда бәрі қарапайым. Біріншіден, бұл тегін. Екіншіден, оның ыңғайлы интерфейсі бар (біз бұл туралы бөлек мақалада айтатын боламыз). Үшіншіден, ол маған таныс және ұнамды. Жоғарыда айтылғандардың барлығынан басқа, MySQL де өте кең таралған.

Үй тапсырмасын тексеру

Өткен жолы мен тапсырма бердім - MySQL-ті компьютеріме орнатыңыз және оған кіріңіз. Консоль арқылы немесе басқа жолмен. Барлығы орындалды ма? «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 2 бөлімМұны істегендерге жарайсың! JavaRush-те қай деңгейде екеніңіз маңызды емес, нұсқаулықтарға сәйкес жұмысқа қажетті құралдарды орнату және конфигурациялау маңызды. Және мен сізді сендіремін, олардың көпшілігі болады. Талпынған, бірақ үлгермегендер де қорықпайды. Бұл әрқашан бірінші рет бола бермейді: кейде үзіліс жасап, жаңа күшпен қайталап көру керек. MySQL-ті өзіңіз орнатқан кім - оны біреу істеп жатқанын білу үшін түсініктемелерде «+» жазыңыз. Мен мұны өзім де жасаймын. Менде Windows ноутбугі жоқ болғандықтан, мен оны MacBook компьютерінде көрсетемін. Орнату процесі айтарлықтай өзгеше болады деп ойламаймын. Ағылшын нұсқаулығын пайдаланып, оны өздері орнатқысы келетіндер үшін мына жерді басыңыз .

MacOS жүйесінде MySQL орнату

Ең алдымен, төмендегі сілтемеге өтіңіз , операциялық жүйені таңдаңыз, ол Windows, Ubuntu немесе MacOS болсын, төменде көрсетілгендей: «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 3 бөлімЖүктеп алыңыз және іске қосыңыз. Дегенмен, бәрі мен үшін бірден дұрыс болмады. Apple соңғы нұсқаны орнатуға рұқсат етпейтіні белгілі болды: «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 4 бөлімСіз, әрине, оны өшіре аласыз, бірақ MacBook жұмыс істейді, мен оның параметрлерімен араласпаймын. Сондықтан, сынақ және қате арқылы мен орнатуға болатын нұсқаны таптым - бұл 5.7.21 . Басқа нұсқаларды табу үшін «Мұрағат» қойындысына өтіп, қажетті нұсқаны таңдаңыз: «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 5 бөлімӘрі қарай, жүктелген файлды іске қосыңыз. Келесі, келесі, келесі түймесін басыңыз, бірақ соңында сақ болыңыз! Дерекқорға кіру үшін пайдаланушы аты мен құпия сөз болады. Мен үшін бұл келесідей көрінді: Мұнда тамыр аты және Vac/zto=.24q құпия сөзі «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 6 бөлімбар пайдаланушы болатыны жазылған . Бұл орнатуды аяқтайды.

MySQL пәрмен жолына кіріңіз

Жүйеге кіру үшін MySQL serverінің қосулы екеніне көз жеткізу керек. Мұны істеу үшін Жүйе теңшелімдері бөліміне өтіңіз , сол жерден MySQL белгішесін табыңыз: «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 7 бөлімОған өтіп, алдымен server қосулы болуы керек екенін көріңіз. Мұны істеу үшін MySQL serverін іске қосу түймесін басыңыз және бәрі де солай. Иә, құрылғы іске қосылған сайын server фондық режимде іске қосылуы үшін құсбелгіні қоюға болады. Түсінікті болу үшін терминалдағы барлық сұрауларды $«Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 8 бөлім белгісімен бастайтынымды атап өткен жөн . Әрі қарай, пәрмен жолы арқылы MySQL serverіне тікелей қосылу керек. Ол үшін терминалды ашып, мынаны жазыңыз: $ mysql Және екі нұсқа бар:
  1. Егер жауап «ERROR 1045 (28000): 'roman_beskrovnyi'@'localhost' пайдаланушысына кіруге тыйым салынды (құпия сөзді пайдалану: ЖОҚ" болса, бұл server орнатылғанын және қайта шақырылып жатқанын білдіреді. Тек дұрыс пәрменді өту керек. оған.
  2. Жауап пәрмен табылмаса: mysql , бәрібір - serverге сілтеме жоқ. Ол үшін mysql айнымалысымен бүркеншік ат жасау керек, сондықтан келесі жолды жазамыз:

    $ бүркеншік аты mysql=/usr/local/mysql/bin/mysql

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

  3. MySQL орнатылмаған, компьютеріңізді алдамаңыз.
Әрі қарай, орнату кезінде берілген атау мен құпия сөзді қолданамыз және жазамыз: $ mysql --user=root -p«Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 9 бөлім Онда біз парольді жазамыз және біз осы пішінде қуанамыз: «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 10 бөлімТек соңғы жолда MySQL жүйесіне кіргенімізді айтады. терминал serverі. Бірақ бұл түбірлік құпия сөз бір реттік құпия сөз болып шықты және оны басқасына өзгерту керек. Қауіпсіздік мақсатында, әрине. Егер біз мұны өзгертпесек және serverде жаңа дерекқор жасауға әрекет жасасақ, біз келесі жауапты аламыз: ERROR 1820 (HY000): Осы мәлімдемені орындамас бұрын ALTER USER операторы арқылы құпия сөзді қалпына келтіру керек . «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 11 бөлімОлар, былайша айтқанда, мәжбүрлі. Жарайды, бізге қиын ба? Құпия сөзді қарапайым етейік (бұл тек жергілікті жұмыс үшін; нақты жұмыс үшін, әрине, құпия сөз күрделі болуы керек). Пайдаланушы аты сияқты root∫ делік . Құпия сөзді өзгерту үшін келесі жолды енгізу керек: ALTER USER 'root'@'localhost' 'root' АРҚЫЛЫ АНЫҚТАЛҒАН; Жауап мынадай болады: Барлығы дұрыс жұмыс істейтініне көз жеткізу үшін келесі синтаксисті«Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 12 бөлім пайдаланып жаңа дерекқор құруға тырысайық : $ CREATE DATABASE test_db; Серверде осындай деректер қорының жасалғанына көз жеткізу үшін мына пәрменді жазыңыз: $ SHOW DATABASES; Нәтижесінде біз мынаны аламыз: Барлығы :) Қарапайым және жылдам болды деп айту мүмкін емес. Сондықтан, кім өзі істесе де – ерекше құрмет. Мұны жасамағандар үшін уайымдамаңыз, орнатудың барлық түрлеріне арналған нұсқаулықтар бар:«Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 13 бөлім Онда бәрі ақылмен сипатталған. Жалғыз нәрсе - бәрі ағылшын тілінде. Енді біз SQL тілінде алғашқы жолдарымызды жазамыз.

SQL тілінде бірінші жолдарды жазу

Жоғарыда байқағаныңыздай, біз екі команданы білеміз:
  1. CREATE DATABASE – serverде мәліметтер қорын жасайды;
  2. ДЕРЕКТЕР ҚОРЛАРЫН КӨРСЕТУ - Сервердегі барлық жасалған және қол жетімді дерекқорларды көрсетеді.
Мен олардың командаларын қалай жазуға SQL маңызды емес екенін ескеремін - барлығы бас әріппен немесе жоқ. Дегенмен, командаларды бас әріппен жазу жақсы әдеп деп саналады. Одан әрі дерекқорды жою үшін DROP DATABASE database_name пәрменін жазу керек ; мұндағы дерекқор_атауы - біз жойғымыз келетін дерекқордың аты. Біз test_db деп аталатын сынақ дерекқорын жасап қойғанбыз , сондықтан оны жойайық. Ол үшін жазамыз: $ DROP DATABASE тесті; Айта кету керек, Query OK, 0 жол әсер етті (0,02 сек) жауабы өте маңызды, себебі бұл сұрау сәтті болғанын растайды. Бұған қоса, бұл сұрау кестелердегі қанша жолды және қай уақытта өзгергенін айтады. «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 15 бөлімЖалпы, DROP сөзі бір нәрсені жоюға жауап береді. Бұл жағдайда біз дерекқорды жойдық. Бірақ мұны басқа мақсаттарда да қолдануға болады (мысалы, кестені түсіру). Ал енді, маған сену үшін , нәтижені тексеріңіз, қанша деректер қоры қалғанын көрейік: $ ДЕРЕКТЕР ҚОРЛАРЫН КӨРСЕТУ; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 16 бөлімКөріп отырғанымыздай, test_db деп аталатын дерекқор жоқ. CHTD: D

Деректер базасын және кестеңізді жасаңыз

Қалалар деректер қорын жасаңыз: $ CREATE DATABASE қалалар; Белгілі бір дерекқорда жұмыс істеу үшін оған кіру керек. Ол үшін USE database_name пәрменін пайдаланыңыз , содан кейін кестелермен жұмыс істеуге арналған барлық командалар осы дерекқорда орындалады. $ ҚАЛАЛАРДЫ ҚОЛДАНУ; Жауаптан көрініп тұрғандай - Деректер базасы өзгерді , бұл дерекқорға көшу сәтті болды. «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 17 бөлімКелесі қадам кестені құру болып табылады. Қайсысы? Ал, алдымен елдермен кесте құрайық. Неге бұлай? Өйткені қалаларға өзі орналасқан елдің сыртқы кілті керек. Және оны осы елдер жалпы деректер базасында (бұдан әрі – дерекқордан қысқартылған) бола бастағаннан кейін алуға болады. Алдыңғы мақалада еске түсіретініміздей , елдер сипатталған кестеде бізде екі өріс бар - идентификатор және атау, мұнда ID бірегей идентификатор, ал атау - елдің атауы. Сондықтан мұндай мәліметтер базасын құру алмұрт атқылау сияқты оңай. Біз жазамыз: $ CREATE TABLE елі (id INT, аты VARCHAR(30)); «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 18 бөлімКөріп отырғаныңыздай, бәрі жақсы өтті. SHOW DATABASES ұқсастығы бойынша кестелер тізімін қарай аламыз: $ SHOW TABLES; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 19 бөлімМіне, біздің үстеліміз. Енді кестелерді қалай жою керектігін білейік. Ол үшін жазамыз: $ DROP TABLE ел; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 20 бөлімКесте немесе дерекқор жойылғаннан кейін оны қалпына келтіру мүмкін емес екенін ескеру маңызды!

Кестемен жұмыс

Біз жасаған кестені қалпына келтірейік. Мұны істеу үшін сіз бұрыннан жасаған нәрсені қайталауыңыз керек. Кесте құрылымын қарау үшін келесі пәрменді пайдалану керек - DESC table_name : $ DESC country; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 21 бөлімКөріп отырғаныңыздай, кесте туралы барлық ақпарат осында жазылған. Кестеге бірдеңе қосу үшін INSERT INTO table_name VALUES() пәрменін пайдалану керек . Үш ел үшін үш жазбаны қосайық: $ INSERT INTO country VALUES (1, 'Украина'); $ INSERT INTO country VALUES (2, 'Ресей'); $ INSERT INTO country VALUES(3, 'Беларусь'); «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 22 бөлімДеректер базасында не сақталғанын қарау үшін біз деректерді алу үшін қарапайым сұранысты қолданамыз. Ол үшін ел кестесінен барлық өрістердің деректерін алғымыз келеді. Алдыңғы сөйлемді мұқият есте сақтаңыз, себебі sql сұрауы келесідей болады: $ SELECT * FROM country; Мұнда * барлық өрістерді алу керек дегенді білдіреді. «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 23 бөлімМіне, бізде әдемі болды. Егер біз тек белгілі бір өрісті алғымыз келсе, бұл мәселе емес: жұлдыздың орнына үтірмен бөлінетін өрістердің атауларын жазамыз. Өзіңіз көріңіз;) Біз кестені жасап қойдық, бірақ ол туралы ақпарат жеткіліксіз. Популяцияның саны, әрине, зиян тигізбейді, солай ма? Және оны қалай жасауға болады?
  1. Кесте схемасына жаңа өрісті қосыңыз - халық.
  2. Бар жазбаларды жаңартыңыз.
Біріншісі үшін біз ALTER TABLE table_name ADD COLUMN пәрменін қолданамыз . Жалпы алғанда, ALTER TABLE – DDL операцияларына арналған командалар жинағы (бұл не екенін есіңізде ме? Ол алдыңғы мақалада болған). Айтпақшы, SELECT DML операциясына қатысты. Келесіні жазайық: $ ALTER TABLE country ADD COLUMN популяция INT; $ DESC елі; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 24 бөлімСуреттен көріп отырғанымыздай, біз кестеге жаңа өрісті сәтті қосып, өрістің схемада екенін екінші командамен тексердік. Екінші қадам - ​​кестедегі жазбаларды жаңарту және мәндерді тағайындау. Нөмірді Википедиядан алайық. Мен оларға сенемін деп емес, бірақ бұл ең жылдам және оңай жол. Ол үшін басқа DML пәрменін пайдаланыңыз. Бірақ алдымен, не істегіміз келетінін айтайық: біз ел кестесін жаңартқымыз келеді, id = 1 болатын жазбадағы халық өрісін 41806221 мәніне тең еткіміз келеді. Және бұл құрылым келесідей: ЖАҢАЛЫҚТЫРУ кесте_атауы SET table_row1 = WHERE table_row2 мәні = мән2; Оның негізінде біз жазамыз: $ UPDATE ел SET популяциясы = 41806221 WHERE id = 1; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 25 бөлімМұнда біз бірінші рет WHERE кілт сөзін қолдандық . Сүзу үшін мәндерді қосу қажет. Мысалы, бұл жолы идентификаторы біреуге тең өріс (өрістер) үшін ғана жаңарту қажет екенін айттық (біз sql-ге бұл негізгі кілт екенін айтқанша – олардың бірнешеуі болуы мүмкін). Біз сондай-ақ WHERE идентификаторы > 2 сияқты шартты көрсете аламыз. Егер біз сүзуді мүлде көрсетпеген болсақ, бұл мән барлық кесте жазбаларына жазылар еді. Ресей, Беларусь және басқа елдер үшін өзіңізді жаңартыңыз ;) Енді идентификатор 1-ден үлкен болған жағдайда атау және халық өрістері үшін кестеден деректерді алуға тырысайық. $ SELECT name, популяция FROM country WHERE id >1; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 26 бөлімОсылайша, біз өзіміз қалаған алқаптарды ғана алдық. INSERT INTO арқылы біз қай өрістерді қосқымыз келетінін және қайсысын бос қалдырғымыз келетінін анықтай аламыз. Ол үшін мынаны жазамыз: $ INSERT INTO ел (аты, халқы) VALUES('Грузия', 1234566); Не болғанын тексеру үшін барлық өрістердің тізімін қарастырайық: $ SELECT * FROM country; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 27 бөлімИдентификаторсыз жазба нашар, ал популяция, әрине, басынан алынған, сондықтан оны жою керек. DELETE FROM table_name пәрменін пайдаланыңыз : $ DELETE FROM country WHERE name = 'Грузия'; «Java жобасы А-дан Я-ға дейін»: біз деректер қорын және SQL тілін талдаймыз.  2 - 28 бөлімОсылайша біз кестеден өрісті жоюды үйрендік.

Үй жұмысы

Үй тапсырмасы келесідей болады:
  1. Ел кестесінің схемасына ID өрісінен бастапқы кілтті (PRIMARY KEY) қосу керек.
  2. Елдер кестесіне тағы бір елді қосыңыз – Молдова.
  3. Алдыңғы мақаланың схемасына сәйкес, барлық сипатталған өрістерді қамтитын кесте қаласын жасаңыз. Өріс атаулары келесідей болады: идентификатор, атау, ел_идентификаторы, халық.
  4. Қалалық кестеге бастапқы кілтті қосыңыз.
  5. Қалалық кестеге шетелдік кілт қосыңыз.
Тапсырма қызық, білетіндер үшін ол тез әрі оңай болады. Қолданбағандар үшін ол осы мақаладағы материалды тамаша күшейту болады.

Жинақтау

Бұл мақалада біз көп нәрсе жасадық. Алдымен MySQL дерекқор serverін орнатып, іске қостық. Екіншіден, біз кілт сөздер мен сұраулардың толық тізімін білдік, олардың көмегімен қазір дерекқорлар мен кестелерді жасауға/жоюға болады. Біз кестелерге деректерді қосуды, оларды жаңартуды және жоюды үйрендік. Міне, біз пайдаланған барлық командалар, олардың сипаттамалары:
  • ДЕРЕКТЕР ҚОРЫНЫН ЖАСАУ дерекқор_атауы; - жаңа мәліметтер қорын құру
  • ДЕРЕКТЕР ҚОРЫН КӨРСЕТУ; — мәліметтер базасының тізімін қарау
  • DROP DATABASE дерекқор_аты; - дерекқорды жою
  • Дерекқордың_атын USE; - мәліметтер базасында жұмыс істеу
  • CREATE TABLE кесте_аты (id INT, ....); - кесте құру
  • Кестелерді КӨРСЕТУ; — кестелер тізімін қарау
  • DESC TABLE кестенің аты; — кесте сызбасын қараңыз
  • DROP TABLE кесте_аты; - кестені жою
  • INSERT INTO кесте_атауы VALUES (); - кестеге өріс қосу
  • SELECT * FROM table_name WHERE кесте_жолы = мән; — кестедегі өрістерді WHERE кейінгі шарт бойынша алу
  • SELECT * FROM table_name; - кестедегі барлық өрістерді алу
  • ALTER TABLE кесте_атауы БАҒАН ҚОСУ баған_атауы COLUMN_TYPE; — кесте схемасына жаңа өріс өрісін қосу
  • ЖАҢАЛЫҚТАУ talbe_name SET talbe_row1 = мән1 ҚАЙДА кесте_жолы2 = мән2; — кестедегі жазбаларды жаңарту: басқа өрістің шартына байланысты бір өрістің мәндерін орнатыңыз
  • кесте_атын ЖОЮ Кесте_жолы1 = мән1; — белгілі бір шарт бойынша кестеден өрісті (немесе өрістерді) жою.
Менің ойымша, біз сізбен тамаша жұмыс жасадық. Менің жұмысымды ұнататындардың барлығын менің GitHub аккаунтыма жазылуға шақырамын , онда мен менің мансабымда болып жатқан қызықты жобалар мен оқиғаларды жариялаймын. Мен ашық көзде жұмыс істеуге қызығатындардың барлығын менің жобаларыма (репозиторийлер) қатысуға шақырамын. Назарларыңызға рахмет. Жақында дерекқорлар туралы келесі мақаланы күтіңіз.

Сериядағы барлық материалдардың тізімі осы мақаланың басында.

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION