Бази данни в Python

Основен синтаксис на SQL

SQL означава език за структурирани заявки. По същество това е де факто език за взаимодействие с бази данни и е примитивен език за програмиране. В този раздел ще разгледаме основите на CRUD (Създаване, четене, актуализиране и изтриване). Това са най-важните функции, които трябва да овладеете, преди да използвате бази данни в Python. Разбира се, вие също трябва да се научите как да създавате заявки, но ние ще разгледаме това по пътя, когато трябва да изпълните заявка за четене, актуализиране или изтриване.

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

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

Това е доста родов код, но в повечето случаи работи. Първото нещо, на което трябва да обърнете внимание, е куп думи, изписани с главни букви. то SQL команди. Не винаги трябва да се въвеждат през капачките, но ние го направихме, за да ви помогнем да ги видите. Също така искам да отбележа, че всяка база данни поддържа малко различни команди. Повечето ще съдържат СЪЗДАЙТЕ МАСА, но типовете колони на базата данни могат да бъдат различни. Моля, обърнете внимание, че в този пример имаме бази данни ИНТЕГЪР, ВАРЧАР и ДАТА.

ДАТА може да причини много различни неща, като ВАРЧАР. Вижте документацията за това, което трябва да направите. Както и да е, в този пример ние създаваме база данни с пет колони. Първият е идентификаторът, който зададохме като първичен ключ. Не трябва да бъде НУЛА, но ние не посочваме какво има в него, тъй като отново всеки бекенд на базата данни върши работата по различен начин или го прави автоматично за нас. Останалите колони говорят сами за себе си

Въвеждане на данни

Понастоящем нашата база данни е празна. Не е много полезно за използване, така че в този раздел ще научим добавяне на данни към базата данни. Ето основната идея:

SQL използва команди ПОСТАВЕТЕ В за добавяне на данни към конкретна база данни. Също така посочвате към кои колони да добавяте данни. Когато ние създаване на таблица, можем да определим необходимата колона, която може да причини грешка, ако не добавим необходимите данни към нея. Ние обаче не направихме това в нашата дефиниция на таблицата по-рано. Това е само бележка. Също така ще получите грешка, ако предадете грешен тип данни, не можех да се отърва от този лош навик цяла година. Предадох низ или varchar вместо данни. Разбира се, всяка база данни изисква определен формат за точно тези данни, така че може да се наложи да разберете какво точно означава тя. ДАТА за вашата база данни.

Актуализиране на данните

Да кажем, че направихме печатна грешка в нашата ВМЕСТЕТЕ. За да поправим това, трябва да използваме SQL команда, наречена АКТУАЛИЗИРАНЕ:

Екип АКТУАЛИЗИРАНЕ ни казва коя таблица се нуждае от актуализиране. След това използваме КОМПЛЕКТ в една или повече колони, за да вмъкнете нова стойност. И накрая, трябва да кажем на базата данни реда, който искаме да актуализираме. Можем да използваме командата КЪДЕТО, да посочим на базата данни, че искаме да сменим реда, чийто Id е 1.

Четене на данни

Четенето на данни от нашата база данни се извършва с помощта на SQL оператор, наречен ИЗБЕРЕТЕ:

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

В този случай звездичката е заместващ символ, който казва на SQL, че искате да покриете всички колони. Ако искате да ограничите избрания обхват, можете да добавите командата КЪДЕТО във вашата заявка:

Помня: adodbapi зависи от инсталирането на пакета PyWin32.

За монтаж adodbapi, трябва да направите следното:

Нека да разгледаме един прост пример, който използвам за комуникация с Microsoft Access от дълго време:

Първо създаваме низ за връзка. Тези редове определят как да комуникирате с Microsoft Access или SQL Server. В този случай се свързваме с Access. За директно връзки към база данни, извиквате метода свържете и му предайте низа на връзката. Вече имате обект на връзка, но имате нужда от курсор за взаимодействие с базата данни. Ние го създаваме. Следващата част е писането SQL заявка. В този случай използваме цялата база данни, затова разпределяме * и предаваме този SQL израз на метода изпълни нашия курсор. За да получим резултата, се обаждаме извличане, което връща целия резултат. Накрая затваряме курсора и връзката. Ако използвате пакета adodbapi, Силно препоръчвам да прегледате референтния документ. Това е много полезно за разбиране на пакета, тъй като той не е добре документиран.

ODBC (Open Database Connectivity) е стандартен API за достъп до бази данни. Повечето бази данни за продукти включват ODBC драйвер, който можете да инсталирате за комуникация с базата данни. Един от най-популярните методи за комуникация с Python чрез ODBC е пакет pyodbc. Според страницата на индекса на Python Packaging Index можете да го използвате както на Windows, така и на Linux. Пакетът pyodbc изпълнява спецификацията DB API 2.0. Можете да инсталирате pyodbc с помощта на pip:

Нека да разгледаме доста общ начин за свързване с SQL сървър с помощта pyodbc и изберете някои данни, както направихме в раздела adodbapi:

В този код създаваме много дълъг комуникационен низ. Тя има много части. Драйвер, сървър, номер на порт, име на база данни, потребител и парола. Може да искате да съхраните по-голямата част от тази информация в някакъв конфигурационен файл, така че не е нужно да въвеждате този ред всеки път. Препоръчително е да не сте много умни с потребителското име и паролата. След като получим нашия комуникационен низ, ще се опитаме да се свържем с базата данни, като извикаме функцията Връзка. Ако връзката е била успешна, тогава получаваме обект на връзка, който можем да използваме за създаване на обект на курсора. Сега, след като разполагаме с курсор, можем да направим запитване към базата данни и да изпълняваме каквито и да е команди, от които се нуждаем, в зависимост от вида достъп до базата данни. В този пример изпълняваме ИЗБЕРЕТЕ * за да извлечете всички редове. След това демонстрираме способността си да вземаме по една линия и да ги изтегляме фетхон и извличане съответно. Ние също имаме функцията fetchmany, което можете да използвате, за да определите колко реда трябва да върнете. Ако имате работа с база данни, с която работи ODBC, можете също да използвате този пакет. Моля, обърнете внимание, че базите данни на Microsoft не са единствените, които поддържат този метод на свързване.

Пакет pypyodbc, по същество чист скрипт на Python. Обикновено е отменено pyodbc чисто за Python. Това означава, че pyodbc е Python, обвит в C ++ бекенд, докато pypyodbc е чист Python код. Той поддържа същия API като предишния модул, така че тези модули са взаимозаменяеми в повечето случаи. В тази връзка няма да показвам примери в този раздел, тъй като единствената разлика между тях е импортирането.

MySQL Много популярен бекенд на базата данни с отворен код. Можете да го свържете с Python по няколко различни начина. Например можете да го свържете с помощта на един от методите на ODBC, който споменах в последните два раздела. Един от най-популярните начини за свързване на MySQL към Python е с пакета MySQLdb. Има няколко опции за този пакет:

  • mysql-конектор-питон
  • pymysql
  • CyMySQL
  • mysqlclient

mysqlclient Е вилица на MySQL-Python (с други думи, MySQLdb), която осигурява поддръжка на Python 3. Това е методът, който проектът Django препоръчва за свързване с MySQL. Затова ще се съсредоточим върху този пакет в този раздел. Моля, обърнете внимание, че за да инсталирате успешно пакета, ще ви трябва MySQL или MySQL Client mysqlclient. Ако вече сте правили това преди, просто трябва да използвате pip за инсталиране: