Оригинал: Exercise 38: Introduction To SQL
Переводчик: Феликс Ли
Лицензия: CC BY-NC-SA 4.0
Гордо использует Google Translate
Лучшим способом освоить моделирование и проектирование данных является начало с самых базовых конструкторских принципов. Десятилетиями стандартом является стиль SQL ("Structured Query Language") для моделирования и хранения данных. Как только вы узнаете основы SQL, вам будет легко использовать любую систему NoSQL или объектно-реляционной карты (ORM). SQL представляет собой очень формализованное представление хранения, манипулирования и доступа к данным, предоставляющее вам формализованное представление этих процессов. Это также не слишком сложно, так как этот язык не является полноценным программным языком Turing-complete.
SQL повсюду, и я говорю это не потому что хочу, чтобы вы использовали его. Это просто факт. Я бы поспорил, что у вас есть SQL прямо сейчас в вашем кармане. Все смартфоны Android и iPhone могут легко получить доступ к SQL-базе данных SQLite, и многие приложения на ваших телефонах используют её напрямую. Она поддерживает банки, больницы, университеты, правительства, малый бизнес и крупные корпорации; каждый компьютер этого мира и каждый человек рано или поздно столкнутся с чем-то, работающим на SQL. SQL — это очень успешная и надёжная технология.Проблема с SQL заключается в том, что все они кажутся ненавидеть его самое главное свойство. Большинство программистов не могут выносить эту странную, громоздкую "неязыковую" конструкцию. Он был спроектирован еще до современных проблем, таких как "сетевой масштаб" или объектно-ориентированное программирование. Хотя он основан на теории операций, которая строится на прочной математической основе, у него достаточно ошибок, чтобы вызвать раздражение. Деревья? Вложенные объекты и родительско-детские отношения? SQL просто играет с вами, дает вам большую плоскую таблицу и говорит: "Вы разберетесь".Если все так сильно ненавидят SQL, почему учиться ему? Потому что за этим предположением ненависти скрывается недопонимание SQL и того, как им пользоваться. Часть движения NoSQL — это реакция против устаревших серверов баз данных, а также страх перед SQL, который возникает из-за отсутствия понимания того, как он работает. Изучив SQL, вы действительно изучите некоторые важные теоретические концепции, применимые ко всем практически всем системам хранения данных в прошлом и настоящем. Независимо от того, что утверждают ненавистники SQL, вы должны изучить SQL, так как он присутствует везде и на самом деле не является достаточно сложным для изучения. Быть опытным пользователем SQL поможет вам принимать осмысленные решения относительно баз данных, которые вы используете, будь то с использованием SQL или нет, а также позволит вам как программисту глубже понять многие системы, которыми вы пользуетесь.## Что такое SQL?
Я читаю SQL как "Сикваль", но если хотите, можете читать его как "S-Q-L". SQL также расшифровывается как язык структурированных запросов, однако это уже никого не волнует, поскольку это просто маркетинговый трюк. То, что делает SQL, это предоставляет вам язык для взаимодействия с данными в базах данных. Однако его преимущество заключается в том, что он соответствует теории, которая была создана много лет назад, определяющей свойства хорошо структурированных данных. Это не совсем то же самое (некоторые критики сетуют на это), но это достаточно полезно.
Примечание переводчика: не обращайте внимания на тех, кто просит вас произносить "S-Q-L"; даже если это стандарт, вы можете использовать "Сикваль" как псевдоним.
Принцип работы SQL заключается в том, что он знает поля таблиц и способен находить данные в таблице на основе содержимого этих полей. Все операции SQL являются одним из четырёх обычных действий, выполняемых над таблицами:
Название | Краткое название | Первые буквы | Описание |
---|---|---|---|
Создание | Вставка | C | Добавление данных в таблицу |
Чтение | Выборка | R | Поиск данных в таблице |
Обновление | Изменение | U | Изменение существующих данных в таблице |
Удаление | Удаление | D | Удаление данных из таблицы |
Мне нравится объяснять принцип работы SQL путём сравнения его с электронными таблицами, такими как Excel:
Последнее замечание важно, так как недопонимание этого может вызвать проблемы. SQL знает только о таблицах, каждый шаг создаёт таблицу. Он создаёт новую таблицу, модифицируя существующую, либо возвращает новый временный объект как набор данных. При чтении данной книги вы начнёте понимать значение этого дизайна. Например, одной из причин того, что объектно-ориентированные языки не совместимы с базами данных SQL, заключается в том, что языки ООП организуют данные как графы, а SQL хочет получить таблицы. Хотя почти любой граф можно представить в виде таблицы и обратно, это увеличивает бремя перевода для языков ООП. Если бы SQL возвращал вложенные структуры данных, то это не было бы проблемой.
Установка SQLite3 проста:
После завершения установки убедитесь, что вы можете запустить командную строку и работать с ней. Вот быстрый тест, который вы можете попробовать:
$ sqlite3 test.db
SQLite version 3.7.8 2011-09-19 14:49:19
Введите ".help" для получения справки
Введите SQL-запросы, завершая их точкой с запятой
sqlite> create table test (id);
sqlite> .quit
Затем проверьте наличие файла test.db
. Если всё работает правильно, вы закончили. Убедитесь, что версия SQLite3, которую вы используете, совпадает с указанной здесь: 3.7.8. Иногда старые версии могут не работать должным образом.## Изучение лексики SQL
Чтобы начать изучение SQL, вам потребуется создать карточки для запоминания этих SQL-терминов (или использовать Anki). В последующих упражнениях вы будете изучать эти SQL-запросы и применять их к различным задачам. Лучший способ рассмотреть язык SQL — это видеть все как операции CREATE
, READ
, UPDATE
и DELETE
. Даже если слово является INSERT
, вы всё равно рассматриваете его как операцию CREATE
, поскольку она создаёт данные. Сначала потратите некоторое время на запоминание этих слов, продолжайте изучение, как в этом разделе.
CREATE
Создаёт таблицы базы данных, содержащие столбцы для хранения данных.
INSERT
Вставляет строки в таблицу базы данных и заполняет данные в столбцах.
UPDATE
Изменяет одну или несколько колонок в таблице.
DELETE
Удаляет строку из таблицы.
SELECT
Выполняет запрос одной или нескольких таблиц и возвращает временные таблицы с результатами.
DROP
Уничт Yöntemlerden biri olarak, bu metin hala tamamen Türkçe değil ve bazı kelimeler hala İngilizce olarak bırakılmış. İşte tamamlayıcı çeviri:
CREATE
Создаёт таблицы базы данных, содержащие столбцы для хранения данных.
INSERT
Вставляет строки в таблицу базы данных и заполняет данные в столбцах.
UPDATE
Изменяет одну или несколько колонок в таблице.
DELETE
Удаляет строку из таблицы.
SELECT
Выполняет запрос одной или нескольких таблиц и возвращает временные таблицы с результатами.
DROP
Уничтожает таблицу.
FROM
Общая часть SQL-запроса, используемая для указания тех колонок таблиц, которые будут использоваться.
IN
Используется для представления множества элементов.
WHERE
Используется в запросах для указания того, откуда должны быть взяты данные.
SET
Используется при обновлении для указания, какую колонку следует изменить.## Синтаксис SQL
Далее вы создадите карточки для другой группы важных конструкций синтаксиса SQL. Они не слишком многочисленны, но запишите их (или используйте Anki), чтобы начать изучение этих конструкций и быстрее освоить язык. Вы будете изучать этот синтаксис для SQLite3, который мы будем использовать в этой книге. Это довольно универсальный синтаксис SQL, но каждый базовый движок имеет свои странные особенности, которые вам придётся учить. Как только вы его поймёте, легко понять использование другого базового движка.
Вы будете нуждаться в доступе к странице определений SQLite 3 для создания необходимых карточек. Эта страница содержит всё, что понимает SQLite, но сосредоточьтесь только на основных заявках выше. Добавьте любые слова, которые вы не понимаете. Их диаграммы немного сложны, но они просто графическое представление BNF SQL, которое вы узнали в пятой части. Если вы забыли BNF, вернитесь к пятой части и повторите обучение.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )