Все поля в произвольном порядке — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Все поля в произвольном порядке

2020-05-07 196
Все поля в произвольном порядке 0.00 из 5.00 0 оценок
Заказать работу

SELECT first_name, last_name, phone_no,

  location, phone_ext, emp_no

FROM phone_list

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

FIRST_NAME LAST_NAME PHONE_NO LOCATION PHONE_EXT EMP_NO
Terri Lee (408) 555-1234 Monterey 256 12
Oliver H. Bender (408) 555-1234 Monterey 255 105
Mary S. MacDonald (415) 555-1234 San Francisco 477 85
Michael Yanowski (415) 555-1234 San Francisco 492 127
Robert Nelson (408) 555-1234 Monterey 250 2
Kelly Brown (408) 555-1234 Monterey 202 109
Stewart Hall (408) 555-1234 Monterey 227 14
...          

 

Получение информации о BLOb выглядит совершенно аналогично обычным полям. Полученные значения можно отображать с использованием data-aware компонент Delphi, например, TDBMemo или TDBGrid. Однако, в последнем случае придется самому прорисовывать содержимое блоба (например, через OnDrawDataCell). Подробнее об этом см. на уроке, посвященном работе с полями.

SELECT job_requirement

FROM job

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

JOB_REQUIREMENT:

No specific requirements.

JOB_REQUIREMENT:

15+ years in finance or 5+ years as a CFO

with a proven track record.

MBA or J.D. degree.

...

Вычисления

SELECT emp_no, salary, salary * 1.15

FROM employee

получить список номеров служащих и их зарплату, в том числе увеличенную на 15%

EMP_NO SALARY  
2 105900.00 121785
4 97500.00 112125
5 102750.00 118162.5
8 64635.00 74330.25
9 75060.00 86319
11 86292.94 99236.87812499999
12 53793.00 61861.95
14 69482.62 79905.01874999999
...    

Порядок вычисления выражений подчиняется общепринятым правилам: сначала выполняется умножение и деление, а затем - сложение и вычитание. Операции одного уровня выполняются слева направо. Разрешено применять скобки для изменения порядка вычислений.

Например, в выражении col1 + col2 * col3 сначала находится произведение значений столбцов col2 и col3, а затем результат этого умножения складывается со значением столбца col1. А в выражении (col1 + col2) * col3 сначала выполняется сложение значений столбцов col1 и col2, и только после этого результат умножается на значение столбца col3.

Литералы

Для придания большей наглядности получаемому результату можно использовать литералы. Литералы - это строковые константы, которые применяются наряду с наименованиями столбцов и, таким образом, выступают в роли "псевдостолбцов". Строка символов, представляющая собой литерал, должна быть заключена в одинарные или двойные скобки.

SELECT first_name, "получает", salary,

  "долларов в год"

FROM employee

получить список сотрудников и их зарплату

FIRST_NAME   SALARY
Robert Получает 105900.00 долларов в год
Bruce Получает 97500.00 долларов в год
Kim Получает 102750.00 долларов в год
Leslie Получает 64635.00 долларов в год
Phil Получает 75060.00 долларов в год
K. J. Получает 86292.94 долларов в год
Terri Получает 53793.00 долларов в год

Конкатенация

Имеется возможность соединять два или более столбца, имеющие строковый тип, друг с другом, а также соединять их с литералами. Для этого используется операция конкатенации (||).

SELECT "сотрудник " || first_name || " " ||

    last_name

FROM employee

получить список всех сотрудников

==============================================

сотрудник Robert Nelson

сотрудник Bruce Young

сотрудник Kim Lambert

сотрудник Leslie Johnson

сотрудник Phil Forest

сотрудник K. J. Weston

сотрудник Terri Lee

сотрудник Stewart Hall

...

Использование квалификатора AS

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

SELECT count(*) AS number

FROM employee

подсчитать количество служащих

NUMBER

===========

    42

SELECT "сотрудник " || first_name || " " ||

         last_name AS employee_list

FROM employee

получить список всех сотрудников

EMPLOYEE_LIST

==============================================

сотрудник Robert Nelson

сотрудник Bruce Young

сотрудник Kim Lambert

сотрудник Leslie Johnson

сотрудник Phil Forest

сотрудник K. J. Weston

сотрудник Terri Lee

сотрудник Stewart Hall

...

Работа с датами

Мы уже рассказывали о типах данных, имеющихся в различных СУБД, в том числе и в InterBase. В разных системах имеется различное число встроенных функций, упрощающих работу с датами, строками и другими типами данных. InterBase, к сожалению, обладает достаточно ограниченным набором таких функций. Однако, поскольку язык SQL, реализованный в InterBase, соответствует стандарту, то в нем имеются возможности конвертации дат в строки и гибкой работы с датами. Внутренне дата в InterBase содержит значения даты и времени. Внешне дата может быть представлена строками различных форматов, например:

"October 27, 1995"

"27-OCT-1994"

"10-27-95"

"10/27/95"

"27.10.95"

Кроме абсолютных дат, в SQL-выражениях можно также пользоваться относительным заданием дат:

"yesterday" - вчера

"today" - сегодня

"now" - сейчас (включая время)

"tomorrow" - завтра

Дата может неявно конвертироваться в строку (из строки), если:

строка, представляющая дату, имеет один из вышеперечисленных форматов;

выражение не содержит неоднозначностей в толковании типов столбцов.

SELECT first_name, last_name, hire_date

FROM employee

WHERE hire_date > '1-1-94'

получить список сотрудников, принятых на работу после 1 января 1994 года

FIRST_NAME LAST_NAME HIRE_DATE
Pierre Osborne 3-JAN-1994
John Montgomery 30-MAR-1994
Mark Guckenheimer 2-MAY-1994

Значения дат можно сравнивать друг с другом, сравнивать с относительными датами, вычитать одну дату из другой.

SELECT first_name, last_name, hire_date

FROM employee

WHERE 'today' - hire_date > 365 * 7 + 1

получить список служащих, проработавших на предприятии к настоящему времени более 7 лет

FIRST_NAME LAST_NAME HIRE_DATE
Robert Nelson 28-DEC-1988
Bruce Young 28-DEC-1988

Агрегатные функции

К агрегирующим функциям относятся функции вычисления суммы (SUM), максимального (SUM) и минимального (MIN) значений столбцов, арифметического среднего (AVG), а также количества строк, удовлетворяющих заданному условию (COUNT).

SELECT count(*), sum (budget), avg (budget),

min (budget), max (budget)

FROM department

WHERE head_dept = 100

вычислить: количество отделов, являющихся подразделениями отдела 100 (Маркетинг и продажи), их суммарный, средний, мини- мальный и максимальный бюджеты

COUNT SUM AVG MIN MAX
5 3800000.00 760000.00 500000.00 1500000.00

Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.023 с.