Главная страница

sql команды. Select 'столбцы или для выбора всех столбцов обязательно' from 'таблица обязательно'


Скачать 3.35 Mb.
НазваниеSelect 'столбцы или для выбора всех столбцов обязательно' from 'таблица обязательно'
Анкорsql команды
Дата11.12.2022
Размер3.35 Mb.
Формат файлаdocx
Имя файлаStepik.docx
ТипДокументы
#838644

SELECT 'столбцы или * для выбора всех столбцов; обязательно'
FROM 'таблица; обязательно'
WHERE 'условие/фильтрация, например, city = 'Moscow'; необязательно'
GROUP BY 'столбец, по которому хотим сгруппировать данные; необязательно'
HAVING 'условие/фильтрация на уровне сгруппированных данных; необязательно'
ORDER BY 'столбец, по которому хотим отсортировать вывод; необязательно'

Тип данных

Описание

Пример

INT 
INTEGER

Целое число, могут принимать значения
от -2 147 483 648 до 2 147 483 647

-567
1205

DECIMAL
NUMERIC

Вещественное число,
в скобках указывается максимальная
длина числа (включает символы слева и справа от десятичной запятой)
и количество знаков после запятой.
Можно использовать оба этих типа, они эквивалентны,
принимают значения в диапазоне -1038+1 до 1038-1.
DECIMAL(4,1)
 NUMERIC(6,3)


 
 
 
34.6
-3.294

DATE

Дата в формате ГГГГ-ММ-ДД 
26 июля 2020 года
3 января 2021 года


 
2020-07-26
2021-01-03

VARCHAR

Строка длиной не более 255 символов,
в скобках указывается максимальная
длина строки, которая может храниться в поле
VARCHAR(10)(рассматриваются однобайтовые кодировки,
для которых число в скобках соответствует максимальному
количеству символов в строке)


 
 

пример
описание


Добавление записей в таблицу

В таблицу, состоящую из двух столбцов добавим новую строку, при этом в поле1 заносится значение1, в поле2 - значение2.

INSERT INTO таблица (поле1, поле2)

VALUES (значение1, значение2);

Пример:

insert into book (title, author, price, amount)

values ('Мастер и Маргарита','Булгаков М.А.',670.99,3)
Выборка данных с созданием вычисляемого столбца

Пример
Вывести всю информацию о книгах, а также для каждой позиции посчитать ее стоимость (произведение цены на количество). Вычисляемому столбцу дать имя total .
Запрос:
SELECT title, author, price, amount,

price * amount AS total

FROM book;
Выборка данных, вычисляемые столбцы, математические функции

В SQL реализовано множество  математических функций для работы с числовыми данными. В таблице приведены некоторые из них.

Функция

Описание

Пример

CEILING(x)

возвращает наименьшее целое число, большее или равное x
(округляет до целого числа в большую сторону)

CEILING(4.2)=5
CEILING(-5.8)=-5

ROUND(x, k)

округляет значение x до k знаков после запятой,
если k не указано – x округляется до целого

ROUND(4.361)=4
ROUND(5.86592,1)=5.9

FLOOR(x)

возвращает наибольшее целое число, меньшее или равное x
(округляет до  целого числа в меньшую сторону)

FLOOR(4.2)=4
FLOOR(-5.8)=-6

POWER(x, y)

возведение x в степень y

POWER(3,4)=81.0

SQRT(x)

квадратный корень из x

SQRT(4)=2.0
SQRT(2)=1.41...

DEGREES(x)

конвертирует значение x из радиан в градусы

DEGREES(3) = 171.8...

RADIANS(x)

конвертирует значение x из градусов в радианы

RADIANS(180)=3.14...

ABS(x)

модуль числа x

ABS(-1) = 1
ABS(1) = 1

PI()

pi = 3.1415926...

 


Вычисление налога (18%) и округление до 2х знаков после запятой



Если нужно сделать уценку (на 30%):

select title, author, amount,

round(price-(price*30/100),2) as new_price

from book;
Выборка данных, вычисляемые столбцы, логические функции

В SQL реализована возможность заносить в поле значение в зависимости от условия. Для этого используется функция IF:

IF(логическое_выражение, выражение_1, выражение_2)

Функция вычисляет логическое_выражение, если оно истина – в поле заносится значение выражения_1, в противном случае – значение выражения_2. Все три параметра IF() являются обязательными.

Допускается использование вложенных функций, вместо выражения_1 или выражения_2 может стоять новая функция IF.





Выборка данных, логические операции

Логическое выражение после ключевого слова WHERE кроме операторов сравнения и выражений может включать логические операции (И «and», ИЛИ «or», НЕ «not») и круглые скобки, изменяющие приоритеты выполнения операций.
Приоритеты операций:


  1. круглые скобки

  2. умножение (*), деление (/)

  3. сложение (+), вычитание (-)

  4. операторы сравнения (=, >, <, >=, <=, <>)

  5. NOT

  6. AND

  7. OR




Выборка данных, операторы BETWEEN, IN

Логическое выражение после ключевого слова WHERE может включать операторы BETWEEN и IN. Приоритет у этих операторов такой же как у операторов сравнения, то есть они выполняются раньше, чем NOT, AND, OR.
Оператор BETWEEN позволяет отобрать данные, относящиеся к некоторому интервалу, включая его границы.





Выборка данных с сортировкой

При выборке можно указывать столбец или несколько столбцов, по которым необходимо отсортировать отобранные строки. Для этого используются ключевые слова ORDER BY, после которых задаются имена столбцов. При этом строки сортируются по первому столбцу, если указан второй столбец, сортировка осуществляется только для тех строк, у которых значения первого столбца одинаковы. По умолчанию ORDER BY выполняет сортировку по возрастанию. Чтобы управлять направлением сортировки вручную, после имени столбца указывается ключевое слово ASC (по возрастанию) или DESC (по убыванию).
Столбцы после ключевого слова ORDER BY можно задавать:


  • названием столбца;

  • номером столбца;

  • именем столбца (указанным после AS).




Выборка данных, оператор LIKE






Выбор уникальных элементов столбца



Выборка данных, групповые функции SUM и COUNT






Выборка данных, групповые функции MIN, MAX и AVG

К групповым функциям SQL относятся: MIN(), MAX() и AVG(), которые вычисляют минимальное, максимальное и среднее значение элементов столбца, относящихся к группе.



Выборка данных c вычислением, групповые функции





Вычисления по таблице целиком

Групповые функции позволяют вычислять итоговые значения по всей таблице. Например, можно посчитать общее количество книг на складе, вычислить суммарную стоимость и пр. Для этого после ключевого слова SELECT указывается групповая функция для выражения или имени столбца, а ключевые слова GROUP BY опускаются.




Выборка данных по условию, групповые функции

В запросы с групповыми функциями можно включать условие отбора строк, которое в обычных запросах записывается после WHERE. В запросах с групповыми функциями вместо WHERE используется ключевое слово HAVING, которое размещается после оператора GROUP BY.





Выборка данных по условию, групповые функции, WHERE и HAVING

WHERE и HAVING могут использоваться в одном запросе. При этом необходимо учитывать порядок выполнения SQL запроса на выборку на СЕРВЕРЕ:


  1. FROM

  2. WHERE

  3. GROUP BY

  4. HAVING

  5. SELECT

  6. ORDER BY

Сначала определяется таблица, из которой выбираются данные (FROM), затем из этой таблицы отбираются записи в соответствии с условием WHERE, выбранные данные агрегируются (GROUP BY), из агрегированных записей выбираются те, которые удовлетворяют условию после HAVING. Потом формируются данные результирующей выборки, как это указано после SELECT (вычисляются выражения, присваиваются имена и пр.). Результирующая выборка сортируется, как указано после ORDER BY.
Важно! Порядок ВЫПОЛНЕНИЯ запросов - это непорядок ЗАПИСИ ключевых слов в запросе на выборку. Порядок записи (синтаксис запроса) остается таким же, как рассматривался ранее в курсе. Порядок ВЫПОЛНЕНИЯ нужен для того, чтобы понять, почему, например, в WHERE нельзя использовать имена выражений из SELECT. Просто SELECT выполняется компилятором позже, чем WHERE, поэтому ему неизвестно, какое там выражение написано.





Вложенный запрос, возвращающий одно значение





Использование вложенного запроса в выражении




Вложенный запрос, оператор IN





Вложенный запрос, операторы ANY и ALL





Вложенный запрос после SELECT

-



Добавление записей в таблицу


Добавление записей из другой таблицы





Добавление записей, вложенные запросы





Запросы на обновление







Запросы на обновление нескольких столбцов

Запросом UPDATE можно обновлять значения нескольких столбцов одновременно. В этом случае простейший запрос будет выглядеть так:
UPDATE таблица SET поле1 = выражение1, поле2 = выражение2


Запросы на обновление нескольких таблиц





Запросы на удаление





написать администратору сайта