Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Базы данных \ SQL \ Локальные операторы языка SQL

Локальные операторы языка 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)

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

Название: Локальные операторы языка SQL
Дата публикации: 2004-03-19 (3047 Прочтено)

 
 

 

Page generation 0.042 seconds