Локальные операторы языка SQL (BDE)

Previous  Top  Next

    
 

 

 

 

Вывод нужных полей

 

Code:

SELECT LastName, FirstName, Salary FROM employee

 

 

Хотим вывести только имя, фамилию и оклад служащих

 

 

Вывод всех полей из таблицы

 

Code:

SELECT * FROM employee

 

 

* обозначает все поля

 

 

Задание псевдонима таблице

 

Code:

SELECT * FROM employee emp

where emp.salary>35000

 

 

Таблице employee в качестве псевдонима задано emp

Выводим всех служащих с окладом свыше 35000

 

 

 

Исключение дубликатов

Code:

SELECT DISTINCT Country FROM vendors

 

 

Хотим узнать из каких стран поставляют продукцию

 

 

 

Постановка условия

 

Code:

SELECT * FROM vendors

Where Country='Canada'

 

 

Выводим поставщиков из Канады

 

 

Использование логические операторов

 

Code:

SELECT * FROM vendors

Where Country='U.S.A.' and Preferred='True'

 

 

Выводим только предпочитаемых поставщиков из США.

Когда используем оператор AND должны удовлетворяться оба условия

 

 

Code:

SELECT * FROM animals

Where AREA='South America' or AREA='New Orleans'

 

 

Хотим видеть только тех животных, которые обитают в Южной Америке или Новом Орлеане Когда используем оператор OR должно удовлетворяться хотя бы одно условие

 

 

Code:

SELECT * FROM animals

Where AREA='South America' and not Weight<7

 

 

 

Выводим животных, обитающих в Южной Америке с весом не менее 7 кг

Когда используем оператор AND NOT должно удовлетворяться первое условие и не должно - второе

 

Code:

SELECT * FROM animals

Where Weight<5 or not Weight<10

 

 

 

Выводим животных, с весом менее 5 кг или более 10 кг

Когда используем оператор OR NOT должно либо удовлетворяться первое условие, либо не должно - второе

 

 

 

Упорядочивание записей по возрастанию/убыванию/по номеру столбца

 

Code:

SELECT * FROM animals order by Weight

 

 

Выводим животных в порядке увеличения веса: сначала самые лёгкие, в конце самые тяжелые

 

 

Code:

SELECT * FROM animals order by Weight desc

 

 

 

...наоборот - по убыванию

 

 

Code:

SELECT * FROM animals order by 3

 

 

Упорядочить по третьему столбцу (отсчёт начинается с 1 )

 

 

 

Объединение нескольких запросов

 

Code:

SELECT * FROM animals

Where Area='South America'

UNION

SELECT * FROM animals

Where Area='New Orleans'

 

 

Выводим тех животных, которые обитают в Южной Америке, а так же тех, которые обитают в Новом Орлеане Оператором UNION можем объединять несколько запросов

 

 

 

Максимальное/минимальное значение поля

 

Code:

SELECT MAX(Salary) FROM employee

 

 

Выводим максимальный оклад из таблицы служащих

 

 

Code:

SELECT MIN(Salary) FROM employee

 

 

Выводим минимальный оклад из таблицы служащих

 

 

 

Сумма всех значений/среднее значение

 

Code:

SELECT SUM(Salary) FROM employee

 

 

Так можем узнать сколько получают служащие некой фирмы вместе взятые

 

 

Code:

SELECT AVG(Salary) FROM employee

 

 

Так можем узнать среднестатистический оклад

 

 

Количество записей в таблице/в поле

 

Code:

SELECT COUNT(*) FROM employee

 

 

Находим количество записей в таблице - в данном случае количество служащих

 

 

Code:

SELECT COUNT(*) FROM clients

Where occupation='Programmer'

 

Посчитали сколько человек увлекаются программированием

 

 

Группировка записей

Code:

SELECT Continent, MAX(Area) FROM country group by Continent

 

 

С помощью конструкции "group by" можем узнать какая страна занимает самую большую площадь для каждого континента

 

 

Конструкция IN

 

Code:

select * from Customer

Where Country IN ('US','Canada','Columbia')

 

 

Выводим покупателей из США, Канады и Колумбии

Code:

select * from Customer

Where Country NOT IN ('US','Canada')

 

 

 

 

Выводим всех покупателей за исключением тех, кто проживает в США, Канаде

 

 

Вывод пустых/непустых значений

 

Code:

select * from Customer

Where State is NULL

 

 

Выводит те записи, где не введено значение в поле State

 

 

Code:

select * from Customer

Where State is NOT NULL

 

 

 

Выводит те записи, где введено значение в поле State

 

 

Вывод значений приблизительно соответствующих нужным

 

Code:

select * from employee

Where LastName like 'L%'

 

 

Выводим только тех служащих, у которых фамилия начинается на букву 'L'. Знак '%' - означает любые символы

 

 

Code:

 

select * from employee

Where LastName like 'Nels_n'

 

Например, мы не помним: как правильно пишется 'Nelson' или 'Nelsan', тогда нужно будет воспользоваться знаком подчёркивания, который означает любой символ

 

 

Диапазон значений

 

Code:

select * from employee

Where Salary BETWEEN 25000 AND 50000

 

 

Можем вывести только тех, кто получает от 25000 до 50000 включительно

 

 

ANY, SOME, ALL

 

Code:

SELECT * FROM orders.db

where custno= ANY (select custno from customer.db where city = 'Largo');

 

 

 

или

Code:

SELECT * FROM orders.db

where custno= SOME (select custno from customer.db where city = 'Largo');

 

 

 

или

Code:

SELECT * FROM orders.db

where custno IN (select custno from customer.db where city = 'Largo');

 

 

Выводим заказы покупателей из города 'Largo'

 

Code:

SELECT * FROM clients

where birth_date>All(select birth_date from clients where city='Los Altos')

 

 

Вывести тех клиентов, которые моложе всех из 'Los Altos'

 

 

EXISTS

 

Code:

SELECT * FROM orders.db

where custno= ANY (select custno from customer where city = 'Largo')

and Exists(SELECT * FROM customer WHERE City='Largo')

 

 

Выводим заказы покупателей из города 'Largo' если вообще есть покупатели с этого города

 

 

Использование параметров

 

Code:

SELECT * FROM clients

where Last_Name=:LastNameParam

 

 

 

Если мы хотим дать возможность пользователю самому указывать фамилию нужного ему клиента. мы вместо значения для поля фамилия указываем параметр. Параметры указываются после двоеточия. И получить доступ к ним можно по индексу из свойства Params компонента Query. Индексация начинается с нуля. Затем, например, по нажатию на кнопке напишем код:

Code:

Query1.Active:=false;

Query1.Params[0].AsString:=Edit1.Text;

Query1.Active:=true;

 

 

 

 

 

Вывод дополнительного текста[использование выражений]

 

Code:

SELECT LastName, Salary/100, '$' FROM employee

 

 

 

Если зарплата указана не в долларах, а какой-то другой валюте, курс которой равен 1 к 100, мы можем вывести данные в $, используя вышеуказанное выражение

 

 

Использование нескольких таблиц

 

Code:

SELECT o.orderno,o.AmountPaid, c.Company FROM orders o, customer c

where o.custno=c.custno and c.city='Largo'

 

 

Выводим номер и сумму заказа из таблицы заказов и компанию сделавшую заказ из таблицы покупателей

 

 

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

 

Code:

SELECT * FROM employee

where Salary=(select MAX(Salary) from employee)

 

 

Мы научились выводить максимальное значение, например, можем узнать максимальный оклад у служащих, но куда полезнее было бы узнать кто тот счастливчик. Именно здесь используется механизм вложенных подзапросов

 

©Drkb::03097

       

Взято с http://delphiworld.narod.ru