|
|
|
|
Локальные операторы языка SQL
Вывод нужных
полей |
SELECT
LastName, FirstName, Salary FROM employee
[Хотим вывести
только имя, фамилию и оклад
служащих] |
Вывод всех полей из
таблицы |
SELECT * FROM
employee
[ * обозначает
все
поля] |
Задание псевдонима
таблице |
SELECT * FROM
employee emp
where
emp.salary>35000
[Таблице
employee в качестве псевдонима задано emp
Выводим всех
служащих с окладом свыше 35000] |
Исключение
дубликатов |
SELECT DISTINCT
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' and not
Weight<7
[Выводим
животных, обитающих в Южной Америке с весом не менее 7
кг
Когда
используем оператор AND NOT должно удовлетворяться
первое условие и не должно - второе]
SELECT * FROM
animals Where Weight<5 or not Weight<10
[Выводим
животных, с весом менее 5 кг или более 10 кг
Когда
используем оператор OR NOT должно либо удовлетворяться
первое условие, либо не должно -
второе] |
Упорядочивание записей по
возрастанию/убыванию/по номеру столбца |
SELECT * FROM
animals order by Weight
[Выводим
животных в порядке увеличения веса: сначала самые лёгкие, в
конце самые тяжелые]
SELECT * FROM
animals order by Weight desc
[...наоборот -
по убыванию]
SELECT * FROM
animals order by 3
[Упорядочить по
третьему столбцу (отсчёт начинается с 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
[Так можем
узнать среднестатистический
оклад] |
Количество записей в
таблице/в поле |
SELECT COUNT(*)
FROM employee
[Находим
количество записей в таблице - в данном случае количество
служащих]
SELECT COUNT(*)
FROM clients Where occupation='Programmer'
[Посчитали
сколько человек увлекаются
программированием] |
Группировка
записей |
SELECT
Continent, MAX(Area) FROM country group by
Continent
[С помощью
конструкции "group by" можем узнать какая страна занимает
самую большую площадь для каждого
континента] |
Конструкция
IN |
select * from
Customer Where Country IN
('US','Canada','Columbia')
[Выводим
покупателей из США, Канады и Колумбии]
select * from
Customer Where Country NOT IN ('US','Canada')
[Выводим всех
покупателей за исключением тех, кто проживает в США,
Канаде] |
Вывод пустых/непустых
значений |
select * from
Customer Where State is NULL
[Выводит те
записи, где не введено значение в поле State]
select * from
Customer Where State is NOT NULL
[Выводит те
записи, где введено значение в поле
State] |
Вывод значений
приблизительно соответствующих нужным |
select * from
employee Where LastName like 'L%'
[Выводим только
тех служащих, у которых фамилия начинается на букву 'L'. Знак
'%' - означает любые символы]
select * from
employee Where LastName like 'Nels_n'
[Например, мы
не помним: как правильно пишется 'Nelson' или 'Nelsan', тогда
нужно будет воспользоваться знаком подчёркивания, который
означает любой символ] |
Диапазон
значений |
select * from
employee Where Salary BETWEEN 25000 AND 50000
[Можем вывести
только тех, кто получает от 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') and Exists(SELECT * FROM customer
WHERE City='Largo')
[Выводим заказы
покупателей из города 'Largo' если вообще есть покупатели с
этого
города] |
Использование
параметров |
SELECT * FROM
clients where Last_Name=:LastNameParam
[Если мы хотим
дать возможность пользователю самому указывать фамилию нужного
ему клиента. мы вместо значения для поля фамилия указываем
параметр. Параметры указываются после двоеточия. И получить
доступ к ним можно по индексу из свойства Params компонента
Query. Индексация начинается с нуля. Затем, например, по
нажатию на кнопке напишем код:
Query1.Active:=false; Query1.Params[0].AsString:=Edit1.Text; Query1.Active:=true; ] |
Вывод дополнительного
текста[использование выражений] |
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)
[Мы научились
выводить максимальное значение, например, можем узнать
максимальный оклад у служащих, но куда полезнее было бы узнать
кто тот счастливчик. Именно здесь используется механизм
вложенных подзапросов] |
|
|
|
Copyright ©
"DELPHI WORLD" E-mail:
delphiworld@mail.ru
http://www.delphiworld.narod.ru |
Источник получения информации: http://www.delphiworld.narod.ru
|
|