13 самых важных команд SQL, которые должен знать любой программист

13 самых важных команд SQL, которые должен знать любой программист

Базы данных управляют современной сетью. Каждый большой или динамический веб-сайт тем или иным образом использует базу данных, и в сочетании с Язык структурированных запросов (SQL) , возможности для манипулирования данными действительно безграничны. Если вы уже знаете SQL, обязательно ознакомьтесь с этими навыками программирования, которые должны знать все разработчики веб-сайтов.





Сегодня я покажу вам некоторые из основные команды SQL нужно знать как программисту.





Есть много имен для данных, возвращаемых из таблицы базы данных. Данные обычно называют Рядов , Записи , или Кортежи . В этой статье я буду использовать эти термины как синонимы.





Предисловие

Все примеры сегодня будут основаны на четырех вымышленных таблицах. В покупатель В таблице указаны имена и возраст клиентов:

В высоты таблица содержит имя и рост любого человека:



В сотрудники таблица содержит имена и возраст сотрудников - точно так же, как таблица клиентов:

Финальный стол назван люди содержит имена и возраст людей, как и таблицы клиентов и сотрудников:





1. Выберите

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

Как следует из названия, select используется для Выбрать данные из базы данных. Вот простейшее использование:





SELECT * FROM table;

Это состоит из двух частей. Первая часть ( ВЫБРАТЬ * ) указывает, какие столбцы вы хотите выбрать. Звездочка указывает на то, что вы хотите выбрать все столбцы в таблице. Вторая часть ( ИЗ таблицы ) сообщает движку базы данных, откуда вы хотите получить эти данные. Замените «table» именем таблицы вашей базы данных.

Этот выбор известен как «избранная звезда». Использование звездочки - хороший способ выяснить, какие данные находятся в таблице, но я не рекомендую использовать ее для какого-либо производственного кода. При использовании звездочки выбора ядро ​​базы данных может предоставить вам нужные данные. У вас нет никакого контроля над порядком возврата данных, поэтому, если кто-то добавит в таблицу новый столбец, вы можете обнаружить, что ваши переменные на вашем языке программирования больше не представляют правильные данные. К счастью, выход есть.

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

SELECT age, name FROM people;

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

Если вы хотите выбрать дополнительный фрагмент данных, но он не хранится ни в одной из ваших таблиц, вы можете сделать это следующим образом:

SELECT age, '1234' FROM people;

Любая строка в одинарных кавычках будет возвращена вместо соответствия имени столбца.

2. Где

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

SELECT age, name FROM people WHERE age > 10;

Этот запрос теперь доступен только людям старше 10 лет. Вы можете комбинировать несколько условий, используя А ТАКЖЕ оператор:

SELECT age, name FROM people WHERE age > 10 AND age <20;

В А ТАКЖЕ Команда работает точно так же, как и в английском языке: она применяет к оператору другое условие. В этом примере возвращаемыми данными могут быть любые записи с возрастом от 10 до 20. Так как совпадающих результатов нет, данные не возвращаются.

бесплатное приложение для звонков по Wi-Fi для Android

Еще одна команда, которую можно использовать вместе с этим: ИЛИ . Вот пример:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Этот запрос возвращает записи, в которых возраст больше 10 или имя равно «Джо». Обратите внимание, что есть только один знак равенства? Большинство языков программирования используют двойное равенство (==) для проверки эквивалентности. Это не требуется для подавляющего большинства движков баз данных (но может очень сильно зависеть от среды, поэтому сначала проверьте еще раз).

3. Заказать

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

SELECT name, age FROM people ORDER BY age DESC;

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

SELECT name, age FROM people ORDER BY name ASC, age DESC

СОРТИРОВАТЬ ПО пожалуй, самый полезный в сочетании с другими командами. Не все запросы будут возвращать данные в логическом или упорядоченном виде - эта команда позволяет это изменить.

4. Присоединяйтесь

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

как передавать файлы с ПК на ПК с помощью Wi-Fi Windows 10
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Здесь происходит несколько вещей. Вы должны начать с синтаксиса «LEFT JOIN», который указывает, что вы хотите присоединиться к таблице, используя соединение типа left. Затем укажите таблицу, к которой вы хотите присоединиться (высоты). В ИСПОЛЬЗОВАНИЕ (имя) синтаксис утверждает, что 'имя' столбца можно найти в обеих таблицах, и что его следует использовать в качестве ключа для объединения таблиц.

Не беспокойтесь, если ваши столбцы имеют разные имена в каждой таблице. Вы можете использовать ON вместо USING:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

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

  • (ВНУТРЕННЕЕ СОЕДИНЕНИЕ - Возвращает строки с совпадениями в обеих таблицах.
  • ЛЕВЫЙ (ВНЕШНИЙ) ПРИСОЕДИНИТЬСЯ - Возвращает все строки из левой таблицы с любыми совпадениями из правой таблицы. Если совпадений нет, все равно возвращаются записи левой таблицы.
  • ПРАВО (ВНЕШНИЙ) ПРИСОЕДИНИТЬСЯ - Это противоположно левому соединению: возвращаются все строки из правой таблицы вместе с любыми совпадениями в левой таблице.
  • ПОЛНОЕ (ВНЕШНЕЕ) СОЕДИНЕНИЕ - Возвращает любые записи с совпадением в любой таблице.

Синтаксис INNER или OUTER необязателен. Это может упростить понимание, но в большинстве случаев вам не нужно указывать это.

5. Псевдонимы

Теперь вы знаете основы, давайте посмотрим на псевдоним команда. Это используется для временного переименования таблицы - скорее псевдонима, чем чего-либо еще, поскольку это новое имя существует только внутри отдельной транзакции, которую вы выполняете. Вот как вы это используете:

SELECT A.age FROM people A;

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

SELECT people.age FROM people;

Вместо того, чтобы вводить длинное имя таблицы, вы можете ввести простую и легко запоминающуюся букву - но в чем смысл? Что ж, если вы выбираете из более чем одной таблицы, легко запутаться, какие столбцы принадлежат какой таблице. Если в обеих таблицах есть столбцы с одинаковыми именами, запрос к базе данных может даже не выполняться без явной ссылки на имя или псевдоним таблицы. Вот пример с двумя таблицами:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

А вот тот же запрос с псевдонимами:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Таблице персонала присваивается псевдоним «A», а таблице клиентов - псевдоним «B». Таблицы псевдонимов действительно помогают сделать ваш код более понятным и сокращают объем набора текста, который вам нужно сделать.

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

SELECT age AS person_age FROM people;

При выполнении этого запроса столбец теперь будет называться «person_age» вместо «age».

6. Союз

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

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Вы можете думать об объединении как о способе объединения результатов двух запросов. Объединение будет возвращать результаты только в том случае, если между двумя запросами есть уникальная строка. Вы можете использовать синтаксис UNION ALL для возврата всех данных, независимо от дубликатов:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Обратите внимание, как меняется порядок строк? Union работает наиболее эффективно, поэтому возвращаемые данные могут различаться по порядку.

Возможный вариант использования объединения - это промежуточный итог: вы можете объединить запрос общей суммы с запросом отдельных итогов для конкретного сценария.

7. Вставить

Теперь вы знаете все о получении данных из базы данных, но как насчет их вставки? Вот где вставлять входит команда. Вот пример:

INSERT INTO people(name, age) VALUES('Joe', 102);

Вы должны указать имя таблицы (люди) и столбцы, которые вы хотите использовать (имя и возраст). Затем синтаксис VALUES используется для предоставления значений для вставки. Они должны располагаться в том же порядке, что и ранее указанные столбцы.

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

8. Обновить

После вставки некоторых данных вполне естественно, что нужно изменить определенные строки. Вот Обновить синтаксис команды:

UPDATE people SET name = 'Joe', age = 101;

Вы должны указать таблицу, которую хотите изменить, а затем использовать синтаксис «SET», чтобы указать столбцы и их новые значения. Этот пример хорош, но он обновит каждую запись - что не всегда желательно!

Чтобы быть более конкретным, вы можете использовать предложения WHERE, как при выборе:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Вы даже можете указать несколько условий, используя «И» и «ИЛИ»:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Обратите внимание, как скобки используются для ограничения условий.

как уменьшить яркость на windows 10

9. Upsert

Ой слово звучит странно, но это невероятно полезная команда. Допустим, у вас есть ограничение для вашей таблицы, и вы указали, что вам нужны только записи с уникальными именами - например, вы не хотите хранить две строки с одинаковыми именами. Если вы попытаетесь вставить несколько значений «Джо», ваш механизм базы данных выдаст ошибку и откажется это сделать (вполне справедливо). UPSERT позволяет обновлять запись, если она уже существует. Это невероятно полезно! Без этой команды вам пришлось бы написать много логики, чтобы сначала проверить, существует ли запись, вставить, если нет, в противном случае получить правильный первичный ключ, а затем обновить.

К сожалению, в разных СУБД upserts реализованы по-разному. PostgreSQL только недавно получил эту возможность, тогда как MySQL имеет это довольно давно. Вот синтаксис MySQL для справки:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Обратите внимание, что это, по сути, оператор обновления и вставки, который можно резюмировать как «обновление, если вставка не удалась».

10. Удалить

Удалить используется для полного удаления записей - при неправильном использовании он может нанести серьезный ущерб! Базовый синтаксис очень прост в использовании:

DELETE FROM people;

Как и большинство других команд, это удалит все ! Вам нужно использовать where, чтобы ограничить его немного более разумным количеством строк - в идеале одним:

DELETE FROM people WHERE name = 'Joe';

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

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

В создать таблицу команда используется для создания таблиц. Это еще один очень простой:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

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

12. Изменить таблицу

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

ALTER TABLE people ADD height integer;

В этом примере в таблицу людей добавляется столбец с названием «высота» целого типа. На самом деле нет предела тому, что вы можете изменить.

13. Выпадающая таблица

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

DROP TABLE people;

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

Это все на сегодня. Надеюсь, вы узнали несколько полезных трюков! Вы могли бы узнать, как сделать сайт , а затем используйте свои новообретенные навыки, чтобы сделать его динамичным - просто убедитесь, что вы не делаете этих ошибок или не оставляете его уязвимым для SQL-инъекций. Если вы не уверены, что вам нужно изучать SQL, рассматривали ли вы генератор статических сайтов?

Почему бы не оставить ниже комментарий со своими любимыми советами и приемами SQL?

Кредиты изображений: HYS_NP / Shutterstock

Делиться Делиться Твитнуть Эл. адрес Стоит ли переходить на Windows 11?

Окна были переработаны. Но достаточно ли этого, чтобы убедить вас перейти с Windows 10 на Windows 11?

Читать далее
Похожие темы
  • Программирование
  • Программирование
  • SQL
Об авторе Джо Коберн(136 опубликованных статей)

Джо закончил факультет компьютерных наук Линкольнского университета в Великобритании. Он профессиональный разработчик программного обеспечения, и, когда он не пилотирует дроны и не пишет музыку, его часто можно встретить фотографирующим или снимающим видео.

Ещё от Joe Coburn

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться