СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

ОСНОВЫ SQL. Запросы на выборку

Категория: Прочее

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

Просмотр содержимого документа
«ОСНОВЫ SQL. Запросы на выборку»

ОСНОВЫ SQL  Запросы на выборку

ОСНОВЫ SQL

Запросы на выборку

Для того чтобы отобрать все данные из таблицы используется SQL запрос следующей структуры:  ключевое слово SELECT;  символ « *» ;  ключевое слово FROM;  имя таблицы. ключевое слово SELECT;  символ « *» ;  ключевое слово FROM;  имя таблицы. Выборка всех данных из таблицы    SQL запрос, который выберет все записи из таблицы genre :   Запрос: SELECT * FROM genre;

Для того чтобы отобрать все данные из таблицы используется SQL запрос следующей структуры: 

  • ключевое слово SELECT;  символ « *» ;  ключевое слово FROM;  имя таблицы.
  • ключевое слово SELECT; 
  • символ « *» ; 
  • ключевое слово FROM; 
  • имя таблицы.

Выборка всех данных из таблицы

SQL запрос, который выберет все записи из таблицы genre :

  Запрос:

SELECT * FROM genre;

Выборка отдельных столбцов Для того чтобы отобрать данные из определенных столбцов таблицы используется SQL запрос следующей структуры:  ключевое слово SELECT ;  список столбцов таблицы через запятую;  ключевое слово FROM ;  имя таблицы. ключевое слово SELECT ;  список столбцов таблицы через запятую;  ключевое слово FROM ;  имя таблицы. Выбрать названия книг и их количества из таблицы  book  . Запрос: SELECT title, amount FROM book;

Выборка отдельных столбцов

Для того чтобы отобрать данные из определенных столбцов таблицы используется SQL запрос следующей структуры: 

  • ключевое слово SELECT ;  список столбцов таблицы через запятую;  ключевое слово FROM ;  имя таблицы.
  • ключевое слово SELECT ; 
  • список столбцов таблицы через запятую; 
  • ключевое слово FROM ; 
  • имя таблицы.

Выбрать названия книг и их количества из таблицы  book  .

Запрос:

SELECT title, amount FROM book;

Выборка столбцов и присвоение им новых имен Для того чтобы отобрать данные из определенных столбцов таблицы и одновременно задать столбцам новые имена используется SQL запрос следующей структуры:  ключевое слово  SELECT  ;  имя столбца; ключевое слово  AS  ;  новое название столбца (можно русскими буквами);  запятая;  имя столбца;  .... ключевое слово  FROM  ;  имя таблицы. ключевое слово  SELECT  ;  имя столбца; ключевое слово  AS  ;  новое название столбца (можно русскими буквами);  запятая;  имя столбца;  .... ключевое слово  FROM  ;  имя таблицы.

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

Для того чтобы отобрать данные из определенных столбцов таблицы и одновременно задать столбцам новые имена используется SQL запрос следующей структуры: 

  • ключевое слово  SELECT  ;  имя столбца; ключевое слово  AS  ;  новое название столбца (можно русскими буквами);  запятая;  имя столбца;  .... ключевое слово  FROM  ;  имя таблицы.
  • ключевое слово  SELECT 
  • имя столбца;
  • ключевое слово  AS  ; 
  • новое название столбца (можно русскими буквами); 
  • запятая; 
  • имя столбца; 
  • ....
  • ключевое слово  FROM  ; 
  • имя таблицы.

Выборка столбцов и присвоение им новых имен Например: Выбрать все названия книг и их количества из таблицы  book , для столбца  title  задать новое имя  Название . Запрос: SELECT title AS Название, amount FROM book;

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

Например:

Выбрать все названия книг и их количества из таблицы  book , для столбца  title  задать новое имя  Название .

Запрос:

SELECT title AS Название, amount

FROM book;

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

Выборка данных с созданием вычисляемого столбца

  • С помощью SQL запросов можно осуществлять вычисления по каждой строке таблицы с помощью вычисляемого столбца. Для него в списке полей после оператора SELECT указывается выражение и задается имя.
  • Выражение может включать имена столбцов, константы, знаки операций, встроенные функции.
  • Результатом является таблица, в которую включены все данные из указанных после  SELECT  столбцов, а также новый столбец, в каждой строке которого вычисляется заданное выражение.

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

Выборка данных с созданием вычисляемого столбца

Например:

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

Запрос:

SELECT title, author, price, amount,

price * amount AS total

FROM book;

Выборка данных, вычисляемые столбцы, математические функции В SQL реализовано множество  математических функций для работы с числовыми данными: Функция Описание CEILING(x) Пример возвращает наименьшее целое число, большее или равное x  (округляет до целого числа в большую сторону) ROUND(x, k) округляет значение x до k знаков после запятой,  если k не указано – x округляется до целого CEILING(4.2)=5  CEILING(-5.8)=-5 ROUND(4.361)=4  ROUND(5.86592,1)=5.9

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

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

Функция

Описание

CEILING(x)

Пример

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

ROUND(x, k)

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

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

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

Выборка данных, вычисляемые столбцы, математические функции Функция Описание FLOOR(x) POWER(x, y) Пример возвращает наибольшее целое число, меньшее или равное  x  (округляет до  целого числа в меньшую сторону) FLOOR(4.2)=4  FLOOR(-5.8)=-6 возведение  x  в степень  y SQRT(x) POWER(3,4)=81.0 квадратный корень из x DEGREES(x) конвертирует значение x из радиан в градусы SQRT(4)=2.0  SQRT(2)=1.41... DEGREES(3) = 171.8...

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

Функция

Описание

FLOOR(x)

POWER(x, y)

Пример

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

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

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

SQRT(x)

POWER(3,4)=81.0

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

DEGREES(x)

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

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

DEGREES(3) = 171.8...

Выборка данных, вычисляемые столбцы, математические функции Функция Описание RADIANS(x) Пример конвертирует значение  x  из градусов в радианы ABS(x) RADIANS(180)=3.14... модуль числа  x PI() ABS(-1) = 1  ABS(1) = 1 pi = 3.1415926...

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

Функция

Описание

RADIANS(x)

Пример

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

ABS(x)

RADIANS(180)=3.14...

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

PI()

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

pi = 3.1415926...

Выборка данных, вычисляемые столбцы, математические функции Для каждой книги из таблицы  book  вычислим налог на добавленную стоимость (имя столбца  tax ), который включен в цену и составляет k = 18%,  а также цену книги ( price_tax ) без него. Формулы для вычисления: Запрос: SELECT title, price, (price*18/100)/(1+18/100) AS tax, price/(1+18/100) AS price_tax FROM book;

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

Для каждой книги из таблицы  book  вычислим налог на добавленную стоимость (имя столбца  tax ), который включен в цену и составляет k = 18%,  а также цену книги ( price_tax ) без него. Формулы для вычисления:

Запрос:

SELECT title, price,

(price*18/100)/(1+18/100) AS tax,

price/(1+18/100) AS price_tax

FROM book;

Выборка данных, вычисляемые столбцы, математические функции Запрос: SELECT title, price, (price*18/100)/(1+18/100) AS tax, price/(1+18/100) AS price_tax FROM book; ? Что плохо?

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

Запрос:

SELECT title, price,

(price*18/100)/(1+18/100) AS tax,

price/(1+18/100) AS price_tax

FROM book;

?

Что плохо?

Выборка данных, вычисляемые столбцы, математические функции Запрос: SELECT title, price, ROUND((price*18/100)/(1+18/100),2) AS tax, ROUND(price/(1+18/100),2) AS price_tax FROM book; 12

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

Запрос:

SELECT title, price, ROUND((price*18/100)/(1+18/100),2) AS tax, ROUND(price/(1+18/100),2) AS price_tax

FROM book;

12

Выборка данных, вычисляемые столбцы, логические функции В SQL реализована возможность заносить в поле значение в зависимости от условия. Для этого используется функция IF:  IF(логическое_выражение, выражение_1, выражение_2) Все три параметра IF() являются обязательными. Допускается использование вложенных функций, вместо выражения_1 или выражения_2 может стоять новая функция  IF . 12

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

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

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

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

12

Выборка данных, вычисляемые столбцы, логические функции Пример  Для каждой книги из таблицы  book  установим скидку следующим образом: если количество книг меньше 4, то скидка будет составлять 50% от цены, в противном случае 30%. Цена по скидке должна отображаться с двумя знаками после запятой Запрос: SELECT title, amount, price, ROUND (IF(amount12

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

Пример 

Для каждой книги из таблицы  book  установим скидку следующим образом: если количество книг меньше 4, то скидка будет составлять 50% от цены, в противном случае 30%. Цена по скидке должна отображаться с двумя знаками после запятой

Запрос:

SELECT title, amount, price,

ROUND (IF(amount

12

Выборка данных, вычисляемые столбцы, логические функции Запрос: SELECT title, amount, price, ROUND (IF(amount12

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

Запрос:

SELECT title, amount, price,

ROUND (IF(amount

12

Выборка данных, вычисляемые столбцы, логические функции Пример  Усложнить вычисление скидки в зависимости от количества книг. Если количество книг меньше 4 – то скидка 50%, меньше 11 – 30%, в остальных случаях – 10%. Добавить поле Ваша_скидка , в котором указать какая именно скидка на каждую книгу.   Запрос: SELECT title, amount, price, ROUND(IF(amount IF(amount FROM book; 12

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

Пример 

Усложнить вычисление скидки в зависимости от количества книг. Если количество книг меньше 4 – то скидка 50%, меньше 11 – 30%, в остальных случаях – 10%. Добавить поле Ваша_скидка , в котором указать какая именно скидка на каждую книгу.

Запрос:

SELECT title, amount, price,

ROUND(IF(amount

IF(amount

FROM book;

12

Выборка данных, вычисляемые столбцы, логические функции Запрос: SELECT title, amount, price, ROUND(IF(amount IF(amount FROM book; 12

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

Запрос:

SELECT title, amount, price,

ROUND(IF(amount

IF(amount

FROM book;

12

», меньше « », больше или равно« = », меньше или равно « »). 12 " width="640"

Выборка данных по условию

  • С помощью запросов можно включать в итоговую выборку не все строки исходной таблицы, а только те, которые отвечают некоторому условию. Для этого после указания таблицы, откуда выбираются данные, задается ключевое слово WHERE и логическое выражение, от результата которого зависит будет ли включена строка в выборку или нет. Если условие – истина, то строка(запись)  включается в выборку, если ложь – нет.
  • Логическое выражение может включать  операторы сравнения  (равно « = », не равно « », больше « », меньше « », больше или равно« = », меньше или равно « »).

12

Выборка данных по условию Пример Вывести название и цену тех книг, цены которых меньше 600 рублей. Запрос: SELECT title, price FROM book WHERE price 12

Выборка данных по условию

Пример

Вывести название и цену тех книг, цены которых меньше 600 рублей.

Запрос:

SELECT title, price

FROM book

WHERE price

12

, =, ) NOT AND OR круглые скобки умножение  (*),  деление (/) сложение  (+), вычитание (-) операторы сравнения (=, , =, ) NOT AND OR 12 " width="640"

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

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

Приоритеты операций:

  • круглые скобки умножение  (*),  деление (/) сложение  (+), вычитание (-) операторы сравнения (=, , =, ) NOT AND OR
  • круглые скобки
  • умножение  (*),  деление (/)
  • сложение  (+), вычитание (-)
  • операторы сравнения (=, , =, )
  • NOT
  • AND
  • OR

12

600 AND author = 'Булгаков М.А.'; Пример Вывести название, цену  тех книг, которые написал Булгаков или Есенин, ценой больше 600 рублей Запрос: SELECT title, author, price FROM book WHERE (author = 'Булгаков М.А.' OR author = 'Есенин С.А.') AND price 600; 12 " width="640"

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

Пример

Вывести название, автора и цену тех книг, которые написал Булгаков, ценой больше 600 рублей

Запрос:

SELECT title, author, price

FROM book

WHERE price 600 AND author = 'Булгаков М.А.';

Пример

Вывести название, цену  тех книг, которые написал Булгаков или Есенин, ценой больше 600 рублей

Запрос:

SELECT title, author, price

FROM book

WHERE (author = 'Булгаков М.А.' OR author = 'Есенин С.А.') AND price 600;

12

Выборка данных, операторы BETWEEN, IN Логическое выражение после ключевого слова WHERE может включать операторы   BETWEEN  и  IN . Приоритет  у этих операторов такой же как у операторов сравнения, то есть они выполняются раньше, чем  NOT ,  AND ,  OR . Оператор BETWEEN позволяет отобрать данные, относящиеся к некоторому интервалу, включая его границы. Пример Выбрать названия и количества тех книг, количество которых от 5 до 14 включительно. Запрос: SELECT title, amount FROM book WHERE amount BETWEEN 5 AND 14; 12

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

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

Пример

Выбрать названия и количества тех книг, количество которых от 5 до 14 включительно.

Запрос:

SELECT title, amount

FROM book

WHERE amount BETWEEN 5 AND 14;

12

Выборка данных, операторы BETWEEN, IN Оператор  IN  позволяет выбрать данные, соответствующие значениям из списка. Пример Выбрать названия и цены книг, написанных Булгаковым или Достоевским. Запрос: SELECT title, price FROM book WHERE author IN ('Булгаков М.А.', 'Достоевский Ф.М.'); 12

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

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

Пример

Выбрать названия и цены книг, написанных Булгаковым или Достоевским.

Запрос:

SELECT title, price

FROM book

WHERE author IN ('Булгаков М.А.', 'Достоевский Ф.М.');

12

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

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

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

По умолчанию ORDER BY выполняет сортировку по возрастанию. Чтобы управлять направлением сортировки вручную, после имени столбца указывается ключевое слово ASC (по возрастанию) или DESC (по убыванию). 

12

Выборка данных с сортировкой Логический порядок операций для запроса SQL на выборку данных с сортировкой следующий: FROM WHERE SELECT ORDER BY FROM WHERE SELECT ORDER BY Поскольку сортировка выполняется позже SELECT, для указания столбцов, по которым выполняется сортировка, можно использовать имена, присвоенные им после SELECT, а также порядковый номер столбца в перечислении. 12

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

Логический порядок операций для запроса SQL на выборку данных с сортировкой следующий:

  • FROM WHERE SELECT ORDER BY
  • FROM
  • WHERE
  • SELECT
  • ORDER BY

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

12

Выборка данных с сортировкой Пример Вывести автора, название и количество книг, в отсортированном в алфавитном порядке по автору и по убыванию количества, для тех книг, цены которых меньше 750 рублей. Запрос: SELECT author, title, amount AS Количество FROM book WHERE price ORDER BY author, amount DESC; или SELECT author, title, amount AS Количество FROM book WHERE price ORDER BY 1, 3 DESC; 12

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

Пример

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

Запрос:

SELECT author, title, amount AS Количество

FROM book

WHERE price

ORDER BY author, amount DESC;

или

SELECT author, title, amount AS Количество

FROM book

WHERE price

ORDER BY 1, 3 DESC;

12

Выборка данных, оператор LIKE Оператор LIKE используется для сравнения строк. В отличие от операторов отношения равно ( = ) и не равно (  ), LIKE позволяет сравнивать строки не на полное совпадение (не совпадение), а в соответствии с шаблоном. Шаблон может включать  обычные символы  и  символы-шаблоны .  При сравнении с шаблоном, его обычные символы должны в точности совпадать с символами, указанными в строке. Символы-шаблоны могут совпадать с произвольными элементами символьной строки. 12

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

Оператор LIKE используется для сравнения строк.

В отличие от операторов отношения равно ( = ) и не равно ( ), LIKE позволяет сравнивать строки не на полное совпадение (не совпадение), а в соответствии с шаблоном. Шаблон может включать  обычные символы  и  символы-шаблоны

При сравнении с шаблоном, его обычные символы должны в точности совпадать с символами, указанными в строке. Символы-шаблоны могут совпадать с произвольными элементами символьной строки.

12

Выборка данных, оператор LIKE Символ - шаблон Описание % Пример Любая строка, содержащая ноль или более символов _  SELECT * FROM book WHERE author LIKE '%М.%'  выполняет поиск и выдает все книги, инициалы авторов которых содержат « М. »  Любой одиночный символ (подчерки-вание) SELECT * FROM book WHERE title LIKE 'Поэм_'  выполняет поиск и выдает все книги, названия которых либо « Поэма », либо « Поэмы » и пр. 12

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

Символ - шаблон

Описание

%

Пример

Любая строка, содержащая ноль или более символов

SELECT * FROM book WHERE author LIKE '%М.%' выполняет поиск и выдает все книги, инициалы авторов которых содержат « М. »

Любой одиночный символ

(подчерки-вание)

SELECT * FROM book WHERE title LIKE 'Поэм_' выполняет поиск и выдает все книги, названия которых либо « Поэма », либо « Поэмы » и пр.

12

Выбор уникальных элементов столбца 1 способ: Чтобы отобрать уникальные элементы некоторого столбца используется ключевое слово DISTINCT, которое размещается сразу после SELECT Пример Выбрать различных авторов, книги которых хранятся в таблице  book . Запрос: SELECT  DISTINCT author FROM book;

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

1 способ:

Чтобы отобрать уникальные элементы некоторого столбца используется ключевое слово DISTINCT, которое размещается сразу после SELECT

Пример

Выбрать различных авторов, книги которых хранятся в таблице  book .

Запрос:

SELECT DISTINCT author

FROM book;

Выбор уникальных элементов столбца 2 способ: Использование оператора GROUP BY, который группирует данные при выборке, имеющие одинаковые значения в некотором столбце. Столбец, по которому осуществляется группировка, указывается после GROUP BY . Пример Выбрать различных авторов, книги которых хранятся в таблице  book . Запрос: SELECT author FROM book GROUP BY author;

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

2 способ:

Использование оператора GROUP BY, который группирует данные при выборке, имеющие одинаковые значения в некотором столбце.

Столбец, по которому осуществляется группировка, указывается после GROUP BY .

Пример

Выбрать различных авторов, книги которых хранятся в таблице  book .

Запрос:

SELECT author

FROM book

GROUP BY author;