Как не удалить всю базу данных…
Итак, в прошлой статье мы узнали, как вставлять, выбирать и обновлять данные, в значительной степени основам CRUD (создание, чтение, обновление, удаление). Если вы не слишком знакомы с SQL, я определенно сначала прочитаю эту статью. Это поможет вам понять это.
В большинстве случаев, когда мы выполняем такую задачу, как получение или изменение данных, мы не хотим, чтобы это затрагивало все записи в таблице. Вот тогда и могут быть полезны предложения. Есть несколько пунктов, которые мы рассмотрим сегодня, например:
- Где
- Нравиться
- Сортировать по
- Отчетливый
Для каждого из этих пунктов я рассмотрю основную идею, покажу вам синтаксис, а затем приведу реальный пример с кодом, так что приступим!
Пункт "Где"
Предложение Where
используется для указания условия всякий раз, когда вы пытаетесь получить / изменить данные из таблицы.
Если условие, указанное в предложениях where
, выполняется, то будут возвращены / изменены только те данные, которые соответствуют этому условию.
Я сказал, что вернул / изменил, потому что вы select
заявляете (получает данные для вас). Вы также можете использовать их с операторами update
, delete
и в других более сложных случаях.
Синтаксис
Основной синтаксис показан ниже.
Вы начинаете с использования любого оператора, который вам нужен, будь то select
, update
или даже delete
. Затем, следуя предложению where
, вы должны добавить некоторое условие.
SELECT columnNname FROM tableName WHERE <Some Condition>;
Это условие будет использовать логические операторы, такие как =, <, >
и т. Д., Данные, которые возвращаются или изменяются, должны соответствовать условию where
, поэтому логический оператор должен быть равен true. Хорошо, это немного сбивает с толку, давайте посмотрим на примере.
Пример
В следующем примере мы будем использовать символ *
для представления всех столбцов, это часто используется в SQL.
Для всех примеров в этой статье мы будем использовать таблицу с именем Employees
, которая была создана в первой статье здесь.
Мы извлечем всех сотрудников в нашей базе данных, чьи age >30
, поэтому всякий раз, когда это правда, данные будут возвращены.
SELECT * FROM Employees WHERE Age > 30;
Результат
Вы должны ожидать увидеть что-то подобное
Должны отображаться только записи, которые соответствуют условию предложения where. В этом случае должны отображаться только записи с возрастом более 30.
Как пункт
В предложении like
используются операторы с подстановочными знаками для сравнения похожих значений. Это поможет вам получить данные, которые «похожи» на ваше состояние.
В предложении like обычно используются два оператора:
%
: представляет любую строку из нуля или нескольких символов. Это означает, что всякий раз, когда используется символ %
, туда может идти любая буква или цифра.
_
: что представляет собой один символ, это означает, что _
может быть заменен только одним символом, а не несколькими, как в случае с %
.
Хорошо, я знаю, что это немного запутало, давайте посмотрим синтаксис, а затем примеры все прояснят.
Синтаксис
Базовый синтаксис для подобного предложения показан ниже. Обратите внимание, что operator%, _
может располагаться где угодно в строке.
Итак, для первого примера нам нужна любая строка, в которой последние 3 символа xxx
, и нам все равно, сколько символов перед ней.
SELECT * FROM tableName WHERE columnName LIKE ‘%xxx’
В этом примере нам нужна строка, в которой последние 3 символа xxx
, а перед ней ОДИН символ.
SELECT * FROM tableName WHERE columnName LIKE ‘_xxx’
В этом примере, давайте сделаем немного дикого, нам нужна строка, которая имеет xxx
где угодно посередине, не имеет значения, сколько символов находится перед строкой, и имеет ОДИН символ в качестве последнего символа нить. Это просто, чтобы показать, что вы можете комбинировать эти операторы в любой позиции в строке.
SELECT * FROM tableName WHERE columnName LIKE ‘%xxx_’
Но давайте перейдем к реальному примеру.
Пример
В следующем примере показано, как можно использовать оператор LIKE
для поиска в таблице сотрудников, которым больше 20 лет.
SELECT * FROM Employees WHERE Age LIKE ‘2%’
Полученные результаты
В результате этого запроса будут возвращены все сотрудники в возрасте от 20 лет.
Заказ по пункту
При получении данных с помощью оператора select
не всегда существует очевидный порядок результатов. Чтобы обеспечить соблюдение определенного порядка, вы можете использовать пункт order by
Синтаксис
Базовый синтаксис предложения order by
показан ниже.
SELECT columnName FROM tableName ORDER BY columnName ASC|DESC
Поэтому я не буду вдаваться в подробности основного оператора select
, поскольку мы рассмотрели его в первом посте, но после оператора select
вы можете добавить предложениеorder by
, за которым следует список столбцов ‹›, в котором вы хотите, чтобы порядок был основан на asc
или desc
. Это означает восходящий и нисходящий соответственно.
Примечание. По умолчанию используется возрастающий порядок.
Пример
В следующем примере мы упорядочим записи в таблице «Сотрудники» по заработной плате в порядке убывания. Таким образом, наш главный источник денег будет наверху, а самая низкая зарплата - внизу.
SELECT * FROM Employees ORDER BY Salary DESC
Полученные результаты
Результаты из приведенного выше утверждения покажут все записи в нашей таблице «Сотрудники», упорядоченные в порядке убывания по заработной плате. Таким образом, самая высокая зарплата будет наверху.
Особая оговорка
Еще одно предложение, которое используется в операторе select
, - это предложение distinct
.
Это используется, чтобы гарантировать, что для базы данных извлекаются только уникальные данные, и игнорирует любые повторяющиеся записи.
Если когда-нибудь будет случай, когда у вас есть повторяющиеся записи в вашей базе данных, и вам нужен только один экземпляр каждой, это будет полезно.
Синтаксис
Синтаксис предложения distinct
показан ниже.
SELECT DISTINCT columnName FROM tableName;
Вы должны select distinct
указать конкретные столбцы, из которых вы хотите получить разные значения.
Пример
В следующем примере мы выберем столбец age
из нашей таблицы.
Наша таблица в настоящее время выглядит так
Если вы быстро посмотрите, то увидите, что в наших данных есть две записи с age
= 25, но когда мы запрашиваем с предложением DISTINCT, мы увидим 25 только один раз.
SELECT DISTINCT Age FROM Employees;
На изображении ниже показан результат запроса, опять же обратите внимание, что существует только один экземпляр age
25, хотя данные показывают, что есть две записи с age
25.
Спасибо, что прочитали, и я надеюсь, что это поможет. Я опубликую больше статей, посвященных SQL Server, от основ до более продвинутых функций, таких как функции и хранимые процедуры, и буду держать обновленный список в этой статье ниже.