Как не удалить всю базу данных…

Итак, в прошлой статье мы узнали, как вставлять, выбирать и обновлять данные, в значительной степени основам 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, от основ до более продвинутых функций, таких как функции и хранимые процедуры, и буду держать обновленный список в этой статье ниже.