SELECT LastName, FirstName, Salary FROM employee Хотим вывести только имя, фамилию и оклад служащих
Вывод всех полей из таблицы
SELECT * FROM employee * обозначает все поля
Задание псевдонима таблице
SELECT * FROM employee emp where emp.salary>35000 Таблице employee в качестве псевдонима задано emp Выводим всех служащих с окладом свыше 35000
Исключение дубликатов SELECTDISTINCT Country FROM vendors Хотим узнать из каких стран поставляют продукцию
Постановка условия
SELECT * FROM vendors Where Country='Canada' Выводим поставщиков из Канады
Использование логические операторов
SELECT * FROM vendors Where Country='U.S.A.'and Preferred='True' Выводим только предпочитаемых поставщиков из США. Когда используем оператор AND должны удовлетворяться оба условия
SELECT * FROM animals Where AREA='South America'or AREA='New Orleans' Хотим видеть только тех животных, которые обитают в Южной Америке или Новом Орлеане Когда используем оператор OR должно удовлетворяться хотя бы одно условие
SELECT * FROM animals Where AREA='South America'andnot Weight<7 Выводим животных, обитающих в Южной Америке с весом не менее 7 кг Когда используем оператор AND NOT должно удовлетворяться первое условие и не должно - второе
SELECT * FROM animals Where Weight<5ornot Weight<10 Выводим животных, с весом менее 5 кг или более 10 кг Когда используем оператор OR NOT должно либо удовлетворяться первое условие, либо не должно - второе
Упорядочивание записей по возрастанию/убыванию/по номеру столбца
SELECT * FROM animals orderby Weight Выводим животных в порядке увеличения веса: сначала самые лёгкие, в конце самые тяжелые
SELECT * FROM animals orderby Weight desc ...наоборот - по убыванию
SELECT * FROM animals orderby3 Упорядочить по третьему столбцу (отсчёт начинается с 1 )
Объединение нескольких запросов
SELECT * FROM animals Where Area='South America' UNION SELECT * FROM animals Where Area='New Orleans' Выводим тех животных, которые обитают в Южной Америке, а так же тех, которые обитают в Новом Орлеане Оператором UNION можем объединять несколько запросов
Максимальное/минимальное значение поля
SELECT MAX(Salary) FROM employee Выводим максимальный оклад из таблицы служащих
SELECT MIN(Salary) FROM employee Выводим минимальный оклад из таблицы служащих
Сумма всех значений/среднее значение
SELECT SUM(Salary) FROM employee Так можем узнать сколько получают служащие некой фирмы вместе взятые
SELECT AVG(Salary) FROM employee Так можем узнать среднестатистический оклад
Количество записей в таблице/в поле
SELECTCOUNT(*) FROM employee Находим количество записей в таблице - в данном случае количество служащих
SELECTCOUNT(*) FROM clients Where occupation='Programmer' Посчитали сколько человек увлекаются программированием
Группировка записей
SELECT Continent, MAX(Area) FROM country groupby Continent С помощью конструкции "group by" можем узнать какая страна занимает самую большую площадь для каждого континента
Конструкция IN
select * from Customer Where Country IN ('US','Canada','Columbia') Выводим покупателей из США, Канады и Колумбии
select * from Customer Where Country NOTIN ('US','Canada') Выводим всех покупателей за исключением тех, кто проживает в США, Канаде
Вывод пустых/непустых значений
select * from Customer Where State isNULL Выводит те записи, где не введено значение в поле State
select * from Customer Where State isNOTNULL Выводит те записи, где введено значение в поле State
Вывод значений приблизительно соответствующих нужным
select * from employee Where LastName like'L%' Выводим только тех служащих, у которых фамилия начинается на букву 'L'. Знак '%' - означает любые символы
select * from employee Where LastName like'Nels_n' Например, мы не помним: как правильно пишется 'Nelson' или 'Nelsan', тогда нужно будет воспользоваться знаком подчёркивания, который означает любой символ
Диапазон значений
select * from employee Where Salary BETWEEN25000AND50000 Можем вывести только тех, кто получает от 25000 до 50000 включительно
ANY, SOME, ALL
SELECT * FROM orders.db where custno= ANY (select custno from customer.db where city = 'Largo'); или
SELECT * FROM orders.db where custno= SOME (select custno from customer.db where city = 'Largo'); или
SELECT * FROM orders.db where custno IN (select custno from customer.db where city = 'Largo'); Выводим заказы покупателей из города 'Largo'
SELECT * FROM clients where birth_date>All(select birth_date from clients where city='Los Altos') Вывести тех клиентов, которые моложе всех из 'Los Altos'
EXISTS
SELECT * FROM orders.db where custno= ANY (select custno from customer where city = 'Largo') andExists(SELECT * FROM customer WHERE City='Largo') Выводим заказы покупателей из города 'Largo' если вообще есть покупатели с этого города
Использование параметров
SELECT * FROM clients where Last_Name=:LastNameParam Если мы хотим дать возможность пользователю самому указывать фамилию нужного ему клиента. мы вместо значения для поля фамилия указываем параметр. Параметры указываются после двоеточия. И получить доступ к ним можно по индексу из свойства Params компонента Query. Индексация начинается с нуля. Затем, например, по нажатию на кнопке напишем код:
SELECT LastName, Salary/100, '$'FROM employee Если зарплата указана не в долларах, а какой-то другой валюте, курс которой равен 1 к 100, мы можем вывести данные в $, используя вышеуказанное выражение
Использование нескольких таблиц
SELECT o.orderno,o.AmountPaid, c.Company FROM orders o, customer c where o.custno=c.custno and c.city='Largo' Выводим номер и сумму заказа из таблицы заказов и компанию сделавшую заказ из таблицы покупателей
Вложенные подзапросы
SELECT * FROM employee where Salary=(select MAX(Salary) from employee) Мы научились выводить максимальное значение, например, можем узнать максимальный оклад у служащих, но куда полезнее было бы узнать кто тот счастливчик. Именно здесь используется механизм вложенных подзапросов