Лучшие SQL-запросы в Python, которые должен знать каждый разработчик Python

Опубликовано: 2021-01-29

SQL означает язык структурированных запросов, который помогает управлять, манипулировать и хранить реляционные базы данных. Реляционная база данных состоит из наборов таблиц, которые связаны в той или иной форме. Несколько таблиц позволяют нам разделять различные объекты целевой информации и избегать объединения сотен столбцов в одну таблицу, что может затруднить управление базой данных.

Это язык запросов, а не сама база данных. Эти запросы могут выполняться в любой системе управления реляционными базами данных, такой как Oracle, Microsoft SQL Server, но существует питонический подход к созданию и выполнению запросов SQL.

Оглавление

SQLite3

Это встроенная библиотека Python, которая позволяет нам создавать облегченную базу данных без необходимости запуска реальной модели клиент-сервер. Он может использоваться внутри приложений для хранения данных и выполнения команд SQL. Пакет прост в использовании и позволяет реплицировать одну и ту же схему в любой производственной базе данных, такой как Postgresql. Давайте посмотрим, как настроить базу данных.

  • Стандартный оператор импорта:

импортировать sqlite3 как sq

Библиотека импортируется как псевдоним «sq».

  • Теперь нам нужно создать подключение к базе данных. Объект подключения будет служить этой цели:

соединение = sq.connect("пример.db")

Если этот файл не был создан ранее, то он будет создан сразу после выполнения этой команды.

  • Для доступа и получения информации из базы данных необходимо создать объект курсора.

курсор = соединение.курсор()

Теперь, когда базовая настройка выполнена, мы можем отправить данные в базу данных, создав соответствующие таблицы, но перед этим давайте пересмотрим некоторые команды SQL.

Основные команды в SQL

SQL превосходен с точки зрения читаемых на английском языке команд. Обычно они печатаются в верхнем регистре, и на это нет никаких ограничений. Обычно это практикуется для того, чтобы ключевые слова запроса выделялись, и их можно было отличить от атрибутов таблицы. Но поскольку сейчас у нас есть мощные IDE, которые выделяют их другим цветом, подойдет любой метод.

1. Создать таблицу

Это позволяет вам создавать объекты хранения данных, таблицы в вашей базе данных. В базе данных может быть много таблиц с одним или несколькими отношениями. В таблицах есть заголовки для каждого столбца, описывающие значение, которое он содержит. При создании таблицы вам необходимо указать имя столбца, тип данных, которые он будет содержать, и размер. Вы можете добавить другие атрибуты, например, если столбец является первичным ключом, может иметь нулевые значения и т. д.

Базовая таблица может быть создана как:

СОЗДАТЬ ТАБЛИЦУ company_data (

идентификатор инт,

имя варчар (24),

no_of_employee целое число

);

2. ВЫБЕРИТЕ и ОТ

Как следует из названия, он используется для выбора и извлечения данных из таблиц. Это первый шаг, который позволит вам взглянуть на данные. Это похоже на функцию головы или хвоста Pandas.

Простой запрос с использованием этих команд будет выглядеть так:

ВЫБЕРИТЕ <имя_столбца(ов)>

ОТ <имя_таблицы>;

Чтобы получить все столбцы из таблицы, вы можете поставить звездочку (*) вместо всех имен столбцов. Ключевое слово LIMIT помогает определить максимальное количество строк. Рассмотрим этот запрос:

ВЫБРАТЬ *

ИЗ примера_таблицы

ПРЕДЕЛ 5;

3. Где

Предложение where используется для указания дополнительных условий запроса. Вы можете включить диапазон для столбцов, любое конкретное сравнение или отрицание.

Например:

ВЫБЕРИТЕ client_name, company_name

ОТ company_data

ГДЕ company_name = 'upGrad';

4. Вставьте

Это предложение используется для добавления значений в таблицы данных. Значения вставляются в том же порядке, в котором имена столбцов добавляются в таблицу в команде создания таблицы. Можно вставлять несколько строк или по одной за раз.

Например, следующий запрос вставляет в таблицу 3 записи:

INSERT INTO company_data (id, name, no_of_employees)

ЗНАЧЕНИЯ

(1, 'компания_А', 100),

(2, "компания_Б", 200),

(3, 'компания_С', 500);

Выполнение через Python

Теперь, когда вы знаете о командах, пришло время выполнить их в коде. Пока что мы подключились к базе данных и создали объект курсора. Этот объект поможет в выполнении команд в базе данных:

курсор.execute(''' <ЗАПРОС> ''')

Запрос передается в виде строки и в тройных кавычках. Это изменение не будет отражено в базе данных, пока вы не зафиксируете это изменение. Закрытие соединения с базой данных в конце гарантирует, что после этого момента новые выполнения выполняться не будут.

Посмотрите на этот простой код:

импортировать sqlite3 как sq

соединение = sq.connect("пример.db")

курсор = соединение.курсор()

курсор.выполнить(”'

СОЗДАТЬ ТАБЛИЦУ table1 (

идентификатор инт,

имя варчар (24)

)

”’)

курсор.выполнить(”'

ВСТАВИТЬ В таблицу1 (идентификатор, имя)

ЗНАЧЕНИЯ

(1, «обновление»),

(2, «блоги»)

”’)

курсор.выполнить(”'

ВЫБРАТЬ *

ИЗ таблицы1

”’)

соединение.коммит()

соединение.закрыть()

Важные советы

1. Поскольку запросы передаются в виде строк, изменение их с помощью f-строки может показаться хорошим вариантом для того, чтобы сделать программу динамичной и управляемой пользователем, но это может вызвать некоторые проблемы с безопасностью, такие как атаки путем внедрения кода SQL. Чтобы избежать этого, используйте заполнитель «?» везде, где вы хотите заменить некоторые значения в запросе. Например:

cursor.execute('"SELECT? FROM?''', col_name, table_name)

Вы можете попросить пользователя указать имя столбца, и это значение будет заменено здесь.

2. Используйте такие функции, как fetchone() и fetchall(), для перебора результатов. Fetchone возвращает следующую строку в запросе, а fetchall возвращает все строки, выбранные курсором. Результаты возвращаются в виде кортежа, поэтому они не могут быть изменены внешними функциями в программе.

3. Если вы хотите добавить массовые значения в базу данных, вы можете использовать функцию executemany() и передать список кортежей, содержащих добавляемые значения. Например:

to_add = [(1, 'привет') , (2, 'Мир')]

cursor.executemany('ВСТАВИТЬ В таблицу ЗНАЧЕНИЯ (?, ?)', to_add)

Читайте также: Идеи и темы проекта Python

Изучайте онлайн- курсы по науке о данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

SQL является наиболее предпочтительным языком баз данных и простым для понимания. Большинству новичков в науке о данных рекомендуется практиковаться в SQL, поскольку он улучшает процесс поиска данных и дает представление о том, как выполняется проектирование данных. Это стандартный язык для любых операций с базой данных, который обеспечивает более быстрый доступ к базе данных.

Если вам интересно узнать о науке о данных, ознакомьтесь с дипломом IIIT-B & upGrad PG в области науки о данных, который создан для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, 1- on-1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Что вы знаете об ограничениях в SQL?

Ограничения определяют, какой тип данных будет введен в таблицу. Они задаются при создании таблицы и могут применяться к одному или нескольким полям. Ограничения в SQL:
NOT NULL — запрещает ввод значения NULL в поле.
CHECK- Проверяет, все ли значения в поле удовлетворяют заданному условию.
ПО УМОЛЧАНИЮ — автоматически присваивает значение по умолчанию для поля, если значение не было введено.
UNIQUE — позволяет вводить в поле только уникальные значения.
ИНДЕКС — индексирует поле, обеспечивая более быстрый поиск записей.
ПЕРВИЧНЫЙ КЛЮЧ - Уникально идентифицирует каждую запись в таблице.
FOREIGN KEY — ограничивает действия, которые могут повредить связи между таблицами.

Объясните индекс и его типы?

Индекс или индекс базы данных можно назвать специальной таблицей поиска, которая значительно ускоряет операцию поиска данных. Он потребляет больше памяти и дополнительных операций записи для более быстрого поиска данных. Индекс может быть 4 типов:
1. Уникальный индекс
2. Неуникальный индекс
3. Кластерный индекс

Что такое отношения в SQL и каковы их типы?

Отношение между несколькими сущностями или несколькими материальными и нематериальными объектами, которые имеют какое-то отношение друг к другу, называется отношением. В SQL существует 4 типа отношений:
1. Один на один
2. Один ко многим/многие к одному
3. Многие ко многим
4. Самореферентные отношения.