Простые запросы SQL

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

Создадим таблицу с названием «Months» (месяцы) и запишем в нее три колонки:

  1. id — номер месяца, то есть, его порядковый номер (int)
  2. name — название месяца (varchar(10), где максимальная длина строки 10)
  3. days — число дней в том, или другом месяце (int)

Код запроса будет выглядеть так:

CREATE TABLE months (id int, name varchar(10), days int);

После того, как таблица созданы, внесем в них данные. Сделать это можно с помощью значения INSERT.

Первый способ принимает значения в том порядке , в котором они были указаны в таблице:

INSERT INTO months VALUES (1, 'January', 31);

Во втором способе мы указываем названия колонок перед вводом данных:

INSERT INTO months (id, name, days) VALUES (2, 'Febreary', 29);

Второй способ длиннее первого. Его используют в случае, если добавили новые\дополнительные колонки — в таком случае первый способ работать не будет. Так же, если мы будем использовать второй способ и не укажем одну из колонок, на её место будет записано NULL или заданное значение по умолчанию

Если необходимо показать данные в таблице — используют значение Select. Например:

SELECT * FROM users

Результатом запроса будет вывод таблицы со всеми данными в таблице users. Знак * (звездочка) означает что мы хотим показать все столбцы из таблицы без исключений. Значение FROM используется при указании названия таблицы которую мы хотим посмотреть, так как обычно в базе данных существуют больше одной таблицы.

Если нужно просмотреть некоторые столбцы из таблицы — можете указать их имена через запятую вместо звёздочки:

SELECT name, age FROM users

Существует значение и для сортировка выводимых данных ORDER BY, которое имеет два модификатора:
ASC — по возрастанию (используется по умолчанию )
DESC — по убыванию

Например, следующий запрос выведет столбцы name и age из таблицы users по убыванию:

SELECT name, age FROM "users" ORDER BY name DESC

С помощью условия Where можно вывести некоторые конкретные строки. Оно позволяет нам фильтровать данные по определённому условию.

Как пример, следующий запрос выведет только тех пользователей, возраст которых составляет 20 лет:

SELECT *
FROM users
WHERE age = '20';

Условия в Where могут использоваться с логическими операторами (AND/OR) и математические операторы сравнения (=, <, >, <=, >=, <>).

Допустим, у нас есть таблица, в которой записаны данные о работницах некой фирмы. Давайте выведем только тех, кто работает программистом и чья зарплата ниже, чем 10 тысяч:

SELECT *
FROM workers
WHERE profession = 'programmer' AND salary_in_thousands <= 10
ORDER BY released

Можно использовать условия в Where еще несколько команд:
IN — сравнивает значение в столбце с несколькими возможными значениями и возвращает true, если значение совпадает хотя бы с одним из значением
BETWEEN — проверяет, находится ли значение в каком-то промежутке
LIKE — ищет по шаблону

Как пример, можно сделать вывод данных о работницах бухгалтеров и программистов:

SELECT * FROM workers WHERE profession IN ('accountant','programmer');

Если нужно вывести работников, год рождения которых в промежутке между 1985 и 1990 годом, запрос будет выглядеть так:

SELECT * FROM workers WHERE year_of_birth BETWEEN 1985 AND 1990;

Если нужно вывести имена, в которых есть буква N, запрос будет таким:

SELECT * FROM workers WHERE name LIKE '%N%';

где, знак «%» означает любую последовательность символов.

Если нужно вывести все имена, первая буква в которых — N, тогда запрос будет таким:

SELECT * FROM workers WHERE name LIKE 'N%';

Стоит отметить что в SQL есть большое количество функций для выполнения разных операций. Наиболее часто используемые:
COUNT — возвращает число строк
SUM — возвращает сумму всех полей с числовыми значениями в них
AVG — возвращает среднее значение среди строк
MIN/MAX — возвращает как минимальное, или же максимальное значение среди строк

Чтобы вывести год самого старшего работника, используем запрос:

SELECT MAX FROM workers;

Если нужно вывести имя и среднее значение чего либо, используем запрос:

SELECT name, avg(age) FROM programmer;
GROUP BY name

Для изменения данных в таблице на помощь приходит значение UPDATE, которое включает в себя выбор таблицы, запись нового значения и использование WHERE для обозначения конкретного места в таблице.
Допустим, в базе работнику по ошибке прописали не должность не программиста, а бухгалтера. Чтобы изменить, используем метод:

UPDATE users
SET profession = 'programmers'
WHERE name = 'Sarah Kerrigan';

Для удаления записи из таблицы используем метод:

DELETE FROM users
WHERE id = 22;

Обратите внимание, что значение WHERE обязательно должно присутствовать, иначе вы удалите все записи из таблицы.

Для удаления таблиц используем значение TRUNCATE. Следующая команда удалит все записи из таблицы но оставит саму таблицу:

TRUNCATE TABLE salary_in_thousands;

Если нужно удалить всю таблицу, то используем запрос:

DROP TABLE salary_in_thousands;

где, salary_in_thousands — название таблицы.

Goodhoster.NET
Добавить комментарий