Питхон

ЦРУД операције на СКЛ и НоСКЛ базама података помоћу Питхона

ЦРУД операције на СКЛ и НоСКЛ базама података помоћу Питхона
Постоје две главне врсте база података које се могу користити са апликацијом: релационе базе података (СКЛ) и нерелационе базе података (НоСКЛ). Обе се широко користе, али одабир једног зависи од врсте података који ће се чувати. Постоје четири основне операције које се могу изводити на базама података: креирање, читање, ажурирање и брисање (ЦРУД).

Можемо комуницирати са базама података користећи било који програмски језик или можемо користити софтверски програм који нам омогућава интеракцију са базом података користећи ГУИ. У овом чланку ћемо разговарати о базама података и показати вам како да комуницирате са њима користећи програмски језик Питхон.

Релационе базе података (СКЛ)

Релационе базе података (СКЛ) разликују се од нерелационих база података (НоСКЛ) у погледу шеме. Шема је образац који дефинише структуру података које ћете сачувати. У релационим базама података креирамо табеле за чување података. Шема табеле се дефинише када се табела креира. На пример, ако желимо да податке о студентима чувамо у релационој бази података, тада ћемо створити табелу ученика и дефинисати шему табеле, која може садржати име, регистарски број, оцену итд. сваког ученика. Након креирања шеме, податке ћемо сачувати у редовима табеле. Важно је напоменути да не можемо чувати податке који нису дефинисани у шеми. У овом примеру, оцена коју је студент добио на испиту не може се сачувати у табели, јер у шеми нисмо дефинисали колону за ове податке.

Следећа листа укључује неке популарне релационе базе података:

Нерелационе базе података (НоСКЛ)

Као што је горе речено, нерелационе базе података немају дефинисану шему. Нерелационе базе података имају збирке уместо табела и те колекције садрже документе који су еквивалентни редовима у релационој бази података. На пример, ако желимо да креирамо нерелациону базу података за чување података о студентима, можемо створити колекцију корисника и у овој колекцији чуваћемо документ за сваког ученика. Ови документи немају дефинисану шему и можете похранити све што желите за сваког ученика.

Извођење ЦРУД операција у МиСКЛ-у

Сада ћемо вам показати како да комуницирате са МиСКЛ-ом помоћу Питхона.

Инсталирање МиСКЛ управљачког програма за Питхон

Да бисмо комуницирали са МиСКЛ-ом помоћу Питхона, прво морамо да инсталирамо МиСКЛ управљачки програм у Питхон-у.

[заштићена е-поштом]: ~ $ судо пип3 инсталира мискл-цоннецтор-питхон

или

[заштићена е-поштом]: ~ $ судо пип инсталира мискл-цоннецтор-питхон

Креирање базе података

Пре креирања базе података, морамо се повезати са МиСКЛ сервером помоћу Питхона. МиСКЛ.модуле повезивања нуди методу цоннецт () за помоћ у успостављању везе са МиСКЛ помоћу Питхона.

>>> увоз мискл.конектор
// Замените сопственим ИП и Сервер акредитивима
>>> скл = мискл.конектор.повезати (
… Хост = 'лоцалхост',
… Усер = 'роот',
… Лозинка = '12345'
…)
>>> испис (скл)

Ова порука показује да смо успешно креирали везу са МиСКЛ базом података користећи Питхон. Сада ћемо покренути СКЛ упит на МиСКЛ серверу користећи методу екецуте () из мискл-а.модул конектора.

>>> курсор = скл.курсор ()
>>> куери = 'СТВАРИ БАЗУ БАЗА демо_дб'
>>> курсор.изврши (упит)

Горњи код ће створити базу података демо_дб у МиСКЛ-у.

Креирање табеле

Сада када смо креирали базу података, креираћемо нову табелу са именом студенти. Да бисмо креирали табелу, морамо се повезати са базом података.

>>> скл_дб = мискл.конектор.повезати (
… Хост = 'лоцалхост',
… Усер = 'роот',
… Лозинка = '12345',
… База података = 'демо_дб'
…)

Након повезивања са базом података, користићемо методу екецуте () за покретање СКЛ упита за креирање табеле са шемом.

>>> куери = "СТВОРИ ТАБЕЛУ студенти (име ВАРЦХАР (64), ид ИНТ, оцена ИНТ, доб ДАТЕ)";
>>> курсор.изврши (упит);

Горња команда ће створити табелу са именом студенти у бази демо_дб; у табелу можемо уметнути само име, ИД, оцену и датум рођења, како је дефинисано у шеми.

Уметање редова у табелу

Сада када смо креирали табелу, у њу ћемо уметнути ученика. Направићемо упит, а затим ћемо помоћу методе екецуте () покренути упит на МиСКЛ серверу користећи Питхон.

>>> куери = 'ИНСЕРТ ИНТО студентс (наме, ид, граде, доб) ВАЛУЕС („Јохн“, 1, 3, „2020-7-04“)'
>>> курсор.изврши (упит)
>>> скл_дб.урадити()

Овај упит ће у табелу додати ученика са подацима дефинисаним у упиту. На исти начин можемо додати додатне ученике за сто.

НАПОМЕНА: Промене ће се применити на базу података само ако покренете скл_дб.цоммит () након примене промена.

Избор редова из табеле

Израз СЕЛЕЦТ у МиСКЛ користи се за враћање података из табеле. За покретање упита користићемо методу екецуте (), а затим ћемо користити методу фетцхалл () да бисмо добили листу свих ученика. Затим, можемо користити фор петљу за приказ свих ученика

>>> куери = 'СЕЛЕЦТ * ФРОМ студентс'
>>> курсор.изврши (упит)
>>> резултат = курсор.фетцхалл ()
>>> за к у резултату:
… Испис (к)
(„Јован“, 1, 3, датум и време.датум (2020, 7, 4))

Видимо да се враћају само подаци за једног ученика, јер у табели имамо само једног ученика. Израз ВХЕРЕ у МиСКЛ-у са изразом СЕЛЕЦТ можемо користити за одређивање ограничења. На пример, ако желимо да вратимо ученике само у разред 4, можемо да користимо следећи упит:

>>> куери = 'СЕЛЕЦТ * ФРОМ студентс ВХЕРЕ оцена = 4'
>>> курсор.изврши (упит)
>>> резултат = курсор.фетцхалл ()
>>> за к у резултату:
… Испис (к)

Горњи код ће дохватити само ученике од 4. разреда.

Ажурирање реда

У овом одељку ћемо вам показати како да ажурирате податке о студентима у МиСКЛ табели помоћу Питхона. Користићемо УПДАТЕ израз са ВХЕРЕ и СЕТ изразима у МиСКЛ-у за ажурирање података одређених ученика. Израз ВХЕРЕ користи се за одређивање редова који ће се ажурирати, а израз СЕТ користи за дефинисање вредности коришћених за ажурирање.

>>> куери = 'АЖУРИРАЈ ученике СЕТ наме = "Означи" ВХЕРЕ ид = 4'
>>> курсор.изврши (упит)
>>> скл_дб.урадити()

Сада ћемо покушати да очитамо податке ученика из табеле помоћу СЕЛЕЦТ наредбе.

>>> куери = 'СЕЛЕЦТ * ФРОМ студентс ВХЕРЕ ид = 4'
>>> курсор.изврши (упит)
>>> за к у курзору:
… Испис (к)
(„Ознака“, 4, 4, датум и време.датум (2020, 7, 15))

Сад можемо да видимо да је име ученика са ид 4 промењено у Марк.

Брисање реда

Ред из табеле можемо избрисати применом ДЕЛЕТЕ израза у МиСКЛ-у користећи Питхон. За брисање одређених ученика из табеле користићемо наредбу ДЕЛЕТЕ са наредбом ВХЕРЕ.

>>> куери = 'ИЗбриши са ученика ГДЕ ид = 2'
>>> курсор.изврши (упит)
>>> скл_дб.урадити()

Сада можемо вратити све ученике из табеле помоћу наредбе СЕЛЕЦТ.

>>> куери = 'СЕЛЕЦТ * ФРОМ студентс'
>>> курсор.изврши (упит)
>>> за к у курзору:
… Испис (к)
(„Јован“, 1, 3, датум и време.датум (2020, 7, 4))
(„Јован“, 3, 3, датум и време.датум (2020, 7, 8))
(„Ознака“, 4, 4, датум и време.датум (2020, 7, 15))

Видимо да табела не садржи ученика са ид-ом 2, јер смо ученика уклонили из табеле.

Испуштање стола

МиСКЛ.модул конектора такође се може користити за испуштање табеле. Извод ДРОП можемо извршити у МиСКЛ-у помоћу методе екецуте ().

>>> курсор = скл_дб.курсор ()
>>> куери = 'ДРОП ТАБЛЕ студентс'
>>> курсор.изврши (упит)

Горњи код ће обрисати табелу са именом ученика када се изврши у Питхону.

Тиме смо завршили нашу расправу о СКЛ базама података. Показали смо вам како да примените различите упите на МиСКЛ базу података користећи Питхон. Затим ћемо применити ЦРУД операције на НоСКЛ базу података која се зове МонгоДБ

Извођење ЦРУД операција у МонгоДБ

Да бисмо ступили у интеракцију са МонгоДБ помоћу Питхона, прво морамо инсталирати пимонго, који је МонгоДБ покретачки програм за Питхон.

[заштићена е-поштом]: ~ $ судо пип инсталл пимонго

или

[заштићена е-поштом]: ~ $ судо пип3 инсталирај пимонго

Креирање базе података

Можемо се повезати са МонгоДБ користећи МонгоЦлиент () методу модула пимонго у МонгоДБ. Пре било каквих радњи, морамо се повезати са базом података МонгоДБ.

>>> увоз пимонго
>>> клијент = пимонго.МонгоЦлиент ('монгодб: // лоцалхост: 27017 /')

Након повезивања са базом података, можемо извршити следећи ред да бисмо креирали нову базу података која се зове демо_дб.

>>> дб = клијент ['демо_дб']

Ако база података већ постоји, тада се ова наредба занемарује.

Креирање колекције

Сада када смо креирали базу података, креираћемо колекцију са именом студенти у бази података која се зове.

>>> увоз пимонго
>>> клијент = пимонго.МонгоЦлиент ('монгодб: // лоцалхост: 27017 /')
>>> дб = клијент ['демо_дб']
>>> цол = дб ['студенти']

НАПОМЕНА: МонгоДБ не креира колекцију док у њу не унесете податке. Стога, ако покушате да приступите колекцији након покретања горе наведеног кода, открићете да у бази података нема ничега.

Неположен МиСКЛ, не морамо да дефинишемо шему када креирамо нову колекцију, јер је МонгоДБ нерелациона база података.

Уметање документа

Након креирања колекције, можемо уметнути документ у колекцију. Прво морамо дефинисати речник, а затим методом инсерт_оне () можемо уметнути податке дефинисане речником у колекцију.

НАПОМЕНА: МонгоДБ аутоматски креира јединствени '_ид' за сваки документ; стога не треба да наводимо ид.

>>> подаци =
... "име": "Јован",
… „Оцена“: 3,
… „Доб“: „2020-04-03“

>>> резултат = кол.инсерт_оне (подаци)

У горњи документ убацили смо име, оцену и доб. Сада ћемо у збирку ученика уметнути документ који има поље за узраст.

>>> подаци =
… "Наме": "Означи",
… „Оцена“: 4,
… „Доб“: „2020-04-09“,
… „Старост“: 8

>>> резултат = кол.инсерт_оне (подаци)

Видимо да ова наредба не изазива грешку. Пошто је МонгоДБ нерелациона база података, у документ можемо додати све информације које желимо.

Добијање докумената

У овом одељку користићемо методе финд () и финд_оне () за добијање података из базе података. Метода финд () узима два аргумента: први се користи за филтрирање докумената, а други за дефинисање поља документа који желимо да вратимо. На пример, ако желимо да добијемо ид „Јохн“, можемо покренути следећи упит:

>>> резултат = кол.пронађи ("наме": "Јохн", "_ид": 1)
>>> за к у резултату:
… Испис (к)
'_ид': ОбјецтИд ('5ф8ф0514цб12ц01ф7420656е')

Све документе из колекције можемо добити и помоћу следећег упита:

>>> резултат = кол.пронађи ()
>>> за к у резултату:
… Испис (к)
'_ид': ОбјецтИд ('5ф8ф0514цб12ц01ф7420656е'), 'наме': 'Јохн', 'граде': 3, 'доб': '2020-04-03'
'_ид': ОбјецтИд ('5ф8ф061ццб12ц01ф7420656ф'), 'наме': 'Марк', 'граде': 4, 'доб': '2020-04-09', 'аге': 8

Ажурирање докумената

Модул пимонго нуди методе упдате_оне () и упдате_мани () за ажурирање докумената у колекцији. Обе методе узимају два аргумента: први дефинише који документ треба променити, а други дефинише нове вредности. Сада ћемо променити оцену ученика „Ознака“.

>>> упит = "наме": "Означи"
>>> вредност = "$ сет": "оцена": 5
>>> цол.упдате_оне (упит, вредност)
>>> за к у кол.пронађи ():
… Испис (к)
'_ид': ОбјецтИд ('5ф8ф0514цб12ц01ф7420656е'), 'наме': 'Јохн', 'граде': 3, 'доб': '2020-04-03'
'_ид': ОбјецтИд ('5ф8ф061ццб12ц01ф7420656ф'), 'наме': 'Марк', 'граде': 5, 'доб': '2020-04-09', 'аге': 8

Брисање документа

Пимонго модул у Питхону има две методе, тј.е., делете_оне () и делете_мани (), за брисање докумената. Обе методе узимају аргумент којим се бира документ за брисање. Следећим кодом ћемо избрисати ученика по имену „Јохн“.

>>> куери = "наме": "Јохн"
>>> цол.делете_оне (упит)
>>> за к у кол.пронађи ():
… Испис (к)
'_ид': ОбјецтИд ('5ф8ф061ццб12ц01ф7420656ф'), 'наме': 'Марк', 'ид': 2, 'граде': 5, 'доб': '2020-04-09', 'аге': 8

Испуштање колекције

Можемо испустити колекцију у МонгоДБ користећи дроп () методу модула пимонго у Питхону. Прво, морамо се повезати са базом података; затим бирамо базу података која садржи колекцију коју желимо да уклонимо. Након избора колекције из базе података, можемо уклонити колекцију методом дроп (). Следећи код ће одбацити студенте.

>>> увоз пимонго
>>> клијент = пимонго.МонгоЦлиент ('монгодб: // лоцалхост: 27017 /')
>>> дб = клијент ['демо_дб']
>>> цол = дб ['студенти']
>>> цол.кап()

Закључак

Познавање база података је неопходно ако желите да направите веб апликацију. Скоро сваки програмски језик има оквире и библиотеке за позадински веб развој. Питхон се може користити у позадинском веб развоју и тако можемо комуницирати са базама података користећи Питхон док радимо са Питхон позадинским оквирима. У овом чланку смо вам показали како да комуницирате са базама података МонгоДБ и МиСКЛ користећи једноставне ЦРУД операције написане на Питхону.

ХД Ремастеред игре за Линук које никада раније нису имале Линук издање
Многи програмери и издавачи игара долазе са ХД ремастером старих игара како би продужили живот франшизе, молимо обожаваоце да захтевају компатибилност...
Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...
Како приказати бројач ФПС-а у Линук играма
Линук гаминг добио је велики потицај када је Валве најавио Линук подршку за Стеам клијент и њихове игре 2012. године. Од тада су многе ААА и индие игр...