Какую базу данных SQL следует установить?
Если вы хотите написать SQL для своих собственных данных сегодня, установите файловый движок: SQLite если ты учишься, DuckDB если ваши данные уже находятся в файлах CSV. Оба предоставляют вам весь язык SQL. Ни у одного из них нет сервера, который нужно запустить, порта, который нужно открыть, или пароля, который нужно установить.
Устанавливайте сервер, такой как PostgreSQL, MySQL или SQL Server, тогда и только тогда, когда более чем одному человеку или программе необходимо одновременно читать и записывать одни и те же данные. Вот и все решение. В оставшейся части этой страницы показано, как проверить, на какой стороне вы находитесь, чтобы через две минуты прекратить чтение и приступить к написанию запроса.
- Вопрос, который решает это
- Что на самом деле означают «файл» и «сервер»
- SQLite и почему он, возможно, у вас уже есть
- DuckDB, если ваши данные представляют собой файлы CSV.
- Когда вам действительно нужен сервер
- Переносится ли SQL, который вы изучаете?
- Шпаргалка
Вопрос, который решает это
Прежде чем ответить: подумайте о данных, которые вы хотите запросить прямо сейчас. Скольким людям, кроме вас, нужно изменить его, пока вы на него смотрите?
Вот вилка выложена.
Вопрос. Нужно ли что-нибудь кроме вас читать и записывать эти данные одновременно с вами?
Ответ один: нет. Это ваши данные на вашем компьютере, и вы единственный, кто к ним прикасается. Если это правда, база данных, представляющая собой один файл, делает все, что вам нужно. Вы пропускаете учетные записи, порты, службы и разрешения, потому что некого не пускать и нечего координировать.
Ответ второй: да. Приложение записывает в него данные, или команда запрашивает его, или он должен быть доступен с другой машины. Если это правда, вам нужен сервер, потому что что-то должно находиться посередине и решать, что произойдет, когда два вызывающих абонента прибудут одновременно.
Что решает между ними Дело не в размере ваших данных и не в том, насколько серьезна работа. Вопрос только в том, есть ли второй звонящий.
Зачем это нужно заключается в том, что большинство людей застревают в первой установке сервера. Настройка PostgreSQL подразумевает наличие службы, суперпользователя, порта, клиента и строки подключения, и ничто из этого не научит вас SQL. Люди тратят на это вечер, сталкиваются с ошибкой аутентификации и так и не доходят до запроса. Если вы начинаете с файла, это означает, что вы впервые SELECT проходит примерно за пятнадцать минут.
Что на самом деле означают «файл» и «сервер»
Эти два слова выполняют большую работу, поэтому вот что означает каждое из них.
Файловая база данных — это библиотека, загружаемая вашей программой. Движок работает внутри того, что вы уже используете, и вся база данных, таблицы, строки и индексы представляют собой один файл на диске. Вы можете скопировать этот файл на USB-накопитель, отправить его по электронной почте или поместить в папку. Ничего не работает, когда вы его не используете.
База данных сервера — это отдельная программа, которая продолжает работать. Он запускается при запуске вашего компьютера и ожидает подключения. Ваш запрос не считывает сами данные. Он отправляет запрос этой программе через сетевое соединение, и программа считывает данные и отправляет строки обратно.
Любое различие между этими двумя людьми, которое люди называют, вытекает из одного структурного факта. Прежде чем читать дальше, скажите, зачем серверу нужны учетные записи пользователей. Они нужны ему, потому что он принимает соединения от вызывающих абонентов, которых не видит, поэтому он должен иметь возможность отличать их друг от друга. В файле нет вызывающих абонентов, которые можно было бы отличить друг от друга. Разрешения файла — это разрешения папки, и на этом все.
SQLite и почему он, возможно, у вас уже есть
SQLite — это файловый движок, которым можно пользоваться во время обучения. Это наиболее широко используемая база данных в мире, главным образом потому, что она находится внутри вещей, а не устанавливается рядом с ними: телефоны, браузеры, настольные приложения.
Это включает в себя Питон. SQLite поставляется в стандартной библиотеке Python, поэтому, если у вас есть Python, у вас уже есть работающий механизм SQL, и вы не устанавливали его. Две строки доказывают это:
import sqlite3
print(sqlite3.sqlite_version)
На машине, на которой было написано это руководство, которая печатает 3.38.4. Ваша будет отличаться, и подойдет любая версия.
Браузер БД для SQLite — это настольное приложение с открытым исходным кодом, которое открывает файл, показывает таблицы, импортирует CSV-файл и выполняет запросы в качестве окна, по которому можно щелкать, а не сценария. Эта комбинация, Браузер БД плюс один .db файл — это самый быстрый путь от ничего к реальному запросу, и именно он проходится шаг за шагом в Как настроить базу данных SQL.
DuckDB, если ваши данные представляют собой файлы CSV.
DuckDB основан на файлах, как и SQLite, и создан для той работы, которую фактически выполняют аналитики: чтение большого количества строк и их суммирование. Практическая разница, которую вы почувствуете в первый же день, заключается в том, что он напрямую запрашивает CSV. Этапа импорта нет.
import duckdb
duckdb.sql("SELECT name, score FROM 'players.csv' WHERE score > 50")
Это работает с файлом, находящимся на диске. Нет таблицы, которую нужно создать, нет столбцов, которые нужно объявить, нет нагрузки. Для тех, кто делал это в электронной таблице и имеет папку экспорта, это кратчайший путь от CSV к файлу. GROUP BY что существует.
Представьте себе собственную папку загрузок. Если ответ, который вам нужен, содержится в трех из этих CSV-файлов, это механизм, который доставит вас туда, не создавая ничего предварительно.
Когда вам действительно нужен сервер
Четыре ситуации, и все они одна и та же ситуация.
- Приложение записывает данные, пока вы их читаете. Веб-приложение, запланированное задание — что угодно, имеющее собственное подключение.
- Другие люди должны задать этот вопрос. Коллеги на своих машинах, набивают те же данные.
- Он должен быть доступен откуда-то еще. Другой сервер, размещенный инструмент, продукт информационной панели.
- Для работы нужен конкретный продукт. Работа выполняется на SQL Server, поэтому вы практикуетесь на SQL Server. Это реальная причина, и она превосходит все вышеперечисленное.
Когда одно из этих утверждений верно, PostgreSQL является обычным выбором для аналитической работы, а MySQL — обычным выбором для веб-приложений. Если на вашем рабочем месте работает Майкрософт, вы встретите SQL Server с Студия управления SQL Serverом. Сопоставьте инструмент с задачей, к которой вы стремитесь, а не с общим рейтингом.
Переносится ли SQL, который вы изучаете?
В основном да, и на эту часть стоит обратить внимание, потому что от нее зависит, стоит ли вам чего-нибудь начинать с малого.
Что переносится без изменений: SELECT, WHERE, JOIN, GROUP BY, HAVING, ORDER BY, подзапросы, CTE, Оконные функции, CASE, и оба синтаксиса комментариев. Это весь аналитический SQL и, по сути, все, о чем вас спросят на собеседовании.
Что не переносится: имена функций по краям. Обработка строк, математические вычисления с датами и преобразование типов называются в каждом продукте по-разному. SQLite использует INSTR и SUBSTR где SQL Server использует CHARINDEX и SUBSTRING. Вы просматриваете их, когда встречаете их, и практикующие в любом случае ищут их.
Таким образом, стоимость изучения файла и последующего перехода на сервер — это несколько имен функций. Стоимость первой попытки установить сервер зачастую составляет весь первый вечер.
Шпаргалка
| Ваша ситуация | Установить | Почему |
|---|---|---|
| Изучая SQL, данные принадлежат только вам | SQLite с браузером БД | Один файл, никаких настроек между вами и первым запросом |
| Питон уже есть | Ничего | SQLite находится в стандартной библиотеке |
| Данные — это папка с CSV-файлами. | DuckDB | Запрашивает CSV напрямую, без этапа импорта |
| Создание портфолио проекта | SQLite или DuckDB | Файл базы данных хранится в репозитории, поэтому любой может повторно запустить вашу работу. |
| Приложение или команда записывает данные | PostgreSQL или MySQL | Что-то должно решать одновременных авторов |
| Подготовка к работе по названию продукта | Этот продукт | Инструменты работы превосходят любой общий рейтинг |
Единственная привычка, которую нужно сохранить
Выбирайте самую маленькую вещь, которая отвечает на ваш вопрос, и добавляйте технику только тогда, когда что-то сломается. Большая часть аналитической работы никогда не выходит за рамки файла, и вечер, который вы не потратили на установку сервера, — это вечер написания запросов.
Что мешает вам прямо сейчас выполнить запрос к собственным данным: инструмент или незнание, какой вопрос ему задать?
SQL для аналитиков это 458 страниц, SQL, который передается по всем движкам, с местами, где диалект фактически меняет ответ.
SQL для аналитиков, 19 $ →Пройдите весь путь от пустой папки до первого результата Как настроить базу данных SQL, затем используйте Курс SQL для SELECT, WHERE, JOIN и GROUP BY с проработанными примерами и пробным экзаменом.
Настройте свою первую базу данных →Предпочитаю учиться, набрав: открыть SQL-практикум, тринадцать запросов, каждый из которых добавляет что-то одно к последнему.