Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Where Сумма_заказа between 100 AND 750

MINUTE — минута;

HOUR — час;

DAY — день;

MONTH — месяц;

YEAR — год;

ТИПЫ ДАННЫХ

В программе ввести с клавиатуры размер матрицы N, а затем заполнить матрицу слов. Исходную и преобразованную матрицы слов распечатать.

Найденные слова располагаются в одной строке.

Существует только одно слово, расположенное выше главной диагонали и содержащее согласные буквы; все остальные слова состоят только из гласных букв.

Все слова, расположенные выше главной диагонали, состоят только из гласных букв.

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

Дан исходный текстовый файл в виде четверостишья. Предложение в четверостишье может заканчиваться как в середине, так и в конце строки.

Если таких столбцов окажется несколько, то выбирается первый по порядку. В программе желательно организовать специальную процедуру-функцию для поиска нужного столбца.

Программа должна определить номер столбца, содержащего наиболее длинную непрерывную последовательность согласных букв. Если такого столбца не найдется, то программа выдает соответствующее сообщение.

Компоненты файлов должны быть отсоpтиpованы в поpядке возpастания значений поля Year. В каждом из файлов в отдельности двух одинаковых записей нет. Слить(объединить) эти файлы в тpетий файл, таким обpазом, чтобы, во-пеpвых, сохpанилась заданная упоpядоченность и, во-втоpых, двух одинаковых записей в pезультиpующем файле не было. Содержимое файлов исходного и результирующего вывести на экран в обычном формате.

End

Особые условия

· Бесплатное обучение в Будапеште или Санкт-Петербурге одного специалиста к одной единице оборудования.

· Сертификация подготовленного специалиста для работы на оборудовании Специальным Сертификатом Производителя.

7.Срок поставки:

На все модели – до 1 мес. (кроме 1-й модели), 1-я модель – до 2 мес.

 

ЗАДАЧА 2

Написать программу, в которой матрица символов размерности M*N, где M <=

5, а N <= 4 заполняется строчными и заглавными буквами английского алфавита.

ЗАДАЧА 3

Причем, одна строка файла – одно предложение.

ЗАДАЧА 4

Рассматривается квадратная матрица слов порядка N (2 <= N <= 6, длина слова <= 8, слова образуются из строчных букв английского алфавита, пустые слова не допускаются). Требуется найти первые два слова, расположенные выше главной диагонали и содержащие наибольшее число согласных букв. Слова ищутся в порядке, соответствующем просмотру матрицы по строкам. Строки, в которых располагаются найденные слова, поменять местами. Матрицу оставить без изменения в следующих случаях:

В спецификации SQL:признаны пять предопределенных, общих типов, внутри которых могут быть подтипы:

строковый (символьный):

1. • CHARACTER (ИЛИ CHAR);

2. • CHARACTER VARYING (ИЛИ VARCHAR))

3. • CHARACTER LARGE ОВJЕСТ (ИЛИ CLOB);

ЧИСЛОВОЙ:

точные числовые типы:

1. INTEGER;

2. SMALLINT;

3. BIGINT;

4. NUMERIC;

5. DECIMAL;

приблизительные числовые типы:

1. REAL;

2. DOUBLE PRECISION;

3. FLOAT;

логический (булевский) — BOOLEAN;

даты-времени:

1. • DATE;

2. • TIME WITHOUT TIME ZONE;

3. • TIME WITH TIME ZONE;

4. TIMESTAMP WITHOUT TIME ZONE;

5. TIMESTAMP WITH TIME ZONE;

интервальный.

Интервалы

6. SECOND — секунда.

Кроме того, существуют особые типы:

Row (запись),

ARRAY (массив) и

MULTISET (мультимножество).

В следующем примере на основе типа ROW создается тип addr, а затем он назначается столбцу Адре с при создании таблицы клиенты.

CREATE ROW TYPE addr

(PostCode VARCHAR (9),

City VARCHAR (30),

Street VARCHAR (30),

House VARCHAR (10));

CREATE TABLE клиенты

( ID_клиента INTEGER PRIMARY KEY,

Имя VARCHAR (2 5),

Адрес addr,

Телефон VARCHAR (15) );

 

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

CREATE TABLE Клиенты (

ID_клиента INTEGER PRIMARY KEY,

Имя VARCHAR (2 5),

Адрес addr,

Телефон VARCHAR (15) ARRAY [3]);

 

Следующее SQL-выражение добавляет в таблицу клиенты новую запись и вводит в нее значения столбцов:

INSERT INTO Клиенты (Имя, Телефон)

VALUES ('Петров Петр Петрович', ('444-4444', '123-4567',

'777-8899'));

Пользовательские типы данных

(User Defined Types, UDT)

 

Отдельные типы

Синтаксис создания отдельного типа данных такой:

CREATE DISTINCT TYPE имяТипа AS определенныйТип;

Определим в качестве примера тип MONEY для хранения денежных сумм. С этой целью можно воспользоваться уже определенным

числовым типом DECIMAL:

CREATE DISTINCT TYPE MONEY AS DECIMAL (9,2);

По аналогии с типом MONEY можно создать типы данных для различных валют, чтобы исключить возможность сравнения их просто как обычных чисел:

CREATE DISTINCT TYPE EURO AS DECIMAL (9,2);

CREATE DISTINCT TYPE USD AS DECIMAL (9,2);

CREATE DISTINCT TYPE RU AS DECIMAL (9,2);

Предположим, что курс доллара к рублю изменился, и мы хотим изменить цены в рублях. Если бы столбцы цена_USD и цена_RU были одного и того же типа, то данную операцию можно было бы выполнить с помощью следующего SQL-выражения:

UPDATE Прайс_лист SET Цена_RU = k * Цена_USD

Здесь k — коэффициент конвертации.

Но поскольку столбцы цена_USD и цена_RU имеют различные типы, то необходимо выполнить такое выражение:

UPDATE Прайс_лист

SET CAST(Цена_RU AS DECIMAL (9,2) = k * CAST(Цена_USD

AS DECIMAL (9,2));

Структурированные типы

При создании структурированного типа СУБД автоматически создает для него три функции:

· функцию-конструктор с именем, совпадающим с именем создаваемого типа;

· функцию-мутатор, с помощью которой можно изменить значение атрибута создаваемого типа;

· функцию-наблюдатель, позволяющую узнать значение атрибута создаваемого типа.

.

Рассмотрим пример, в котором создаются некий тип и его подтип данных, таблица со столбцом созданного типа, а также блок операторов SQL, которые производят изменения данных в таблице. Вначале создадим тип данных Book, содержащий сведения (атрибуты) о книгах, затем создадим его подтип myBooks, который наследует атрибуты своего супертипа Books.

CREATE TYPE Books AS

Title CHAR (50),

Author CHAR (20),

Publisher CHAR (20),

Year INTEGER,

Volume INTEGER,

N0T FINAL;

Здесь в типе Books (книги) определяются атрибуты (имена и типы данных):

Title (наименование), Author (автор), Publisher (издательство), Year (год издания), Volume (количество страниц). Ключевые слова N0T FINAL (не конец) означают, что данный тип имеет хотя бы один подтип.

Определим подтип myBooks для хранения данных, например, о моих любимых книгах:

CREATE TYPE myBooks UNDER Books FINAL;

По-русски это выглядит как:

СОЗДАТЬ ТИП myBooks ПОД Books ЗАКОНЧИТЬ;

 

Создадим таблицу, которая использует тип myBooks

CREATE TABLE Книги

(

Книга myBooks,

Цена NUMERIC (6,2)

);

Теперь добавим новые записи в созданную таблицу книги.

BEGlN

DECLARE х myBooks; /* объявление переменной х типа myBooks*/

SET х = myBooks(); /* Вьполняем функцию-конструктор */ /* Вызов функций-мутаторов */

SET х = х.Title('HTML, скрипты и стили');

SET х = х.Author('Дунаев Вадим');

SET х = х.Publisher('БХВ-Петербург');

SET х =х.Year(2005);

SET х.Volume(832);

/* Добавление новой записи с установкой значений столбцов */ INSERT INTO книги (х, 350.50);

END;

Здесь ключевые слова BEGIN (начало) и END (конец)

В следующем примере из таблицы Клиенты выбираются все записи, в которых не определено имя клиента:

SELECT * FROM Клиенты WHERE ИМЯ IS NULL;

Преобразование типов

Чтобы выполнить какую-либо операцию над данными различных типов, необходимо сделать преобразование типов. Точнее, необходимо выполнить приведение данных одного типа к другому типу, чтобы участвующие в операции данные были либо однотипными, либо их типы были соответствующими. Соответствующими типами являются:

· строковые CHARACTER и CHARACTER VARYING;

· все числовые типы;

· дата, время, дата-время и соответствующие интервалы. Соответствующие типы не обязательно приводить друг к другу. Приведение значения одного типа к другому осуществляется

с помощью функции CAST ():

CAST (выражение AS тип);

Например:

CAST ('1234.52' AS NUMERIC (9, 2));

CAST ('2005-10-03 ' AS DATE);

CAST (CURRENT TIMESTAMP (2) AS CHAR (20));

 

· SELECT 'Цена: ' || CAST (Цена AS CHAR(5)) FROM Продажи;

· В последнем примере пара вертикальных черт означает операцию конкатенации строк.

 

Основное SQL-выражение для выборки данных

· Чтобы выбрать из таблицы базы данных требуемые записи, следует, по крайней мере, указать столбцы и имя этой таблицы. Это требование было бы естественно сформулировать так:

ВЫБРАТЬ такие-то столбцы ИЗ такой-то таблицы;

· Разумеется, вам может потребоваться выбрать не все записи таблицы, а лишь те, которые отвечают некоторому условию. На практике именно так и бывает. Отложим пока рассмотрение формирования условий отбора записей, а сконцентрируем внимание на выборке всех записей из заданной таблицы.

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

SELECT списокСтолбцов FROM списокТаблиц;

Операторы SELECT (выбрать) и FROM (из) в SQL-выражении,

Примечание

Так, например, если исходная таблица R содержит столбцы A1, A2,...,An (другими словами, таблица представляет некоторое отношение R(A1, А2,..., An) над атрибутами (А1, А2,..., An), то оператор:

SELECT A1, A2, Ak FROM R;

реализует проекцию R[A1, А2, Аk] этого отношения на атрибуты А1, А2, Ak (k= 1, 2,..., n).

 

Тривиальный запрос, возвращающий все данные (все столбцы и все записи) из одной таблицы, формулируется так:

SELECT * FROM имяТаблицы;

Основное SQL-выражение может быть дополнено другими операторами, уточняющими запрос. Чаще всего употребляется оператор WHERE (где), с помощью которого можно задать условие выборки записей (строк таблицы). Таким образом, если выражение SELECT задает столбцы таблицы, указанной в операторе FROM то выражение WHERE определяет записи (строки) из этой таблицы. Выражение, определяющее запрос на выборку данных, находящихся в некоторой таблице, имеет следующий вид:

SELECT * FROM имяТаблицы WHERE условиеПоиска;

Условие, указанное в выражении WHERE, принимает одно из двух логических значений: true (ИСТИНА) или false (ЛОЖЬ).

Ключевые слова: ALL(все), DISTINCT(отличающиеся)

Например:

SELECT ClientName AS Клиент, Address AS Адрес FROM Клиенты;

 

Псевдонимы таблиц, более короткие, чем их имена, удобно использовать в сложных запросах. Например:

SELECT Tl.Имя, Т2.Адрес FROM Клиенты Т1, Контакты T2;

 

Уточнения запроса

Основное SQL-выражение для выборки данных, имеет вид:

SELECT списокСталбцов FROM списокТаблиц;

Для уточнения запроса на выборку данных служит ряд дополнительных операторов:

· WHERE (где) — указывает записи, которые должны войти в результатную таблицу (фильтр записей);

· GROUP BY (группировать по) — группирует записи по значениям определенных столбцов;

· HAVING (имеющие, при условии) — указывает группы записей, которые должны войти в результатную таблицу (фильтр групп);

· ORDER BY (сортировать по) — сортирует (упорядочивает). Таким образом, запрос данных из таблицы с применением всех перечисленных операторов уточнения запроса имеет следующий вид:

SELECT списокСтолбцов

FROM имяТаблицы

WHERE условиеПоиска

GROUP BY столбец группировки

HAVING условиеПоиска

ORDER BY условиеСортировки;

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

1. FROM — выбирает таблицу из базы данных; если указано несколько таблиц, то выполняется их декартово произведение и результирующая таблица передается для обработки следующему оператору.

2. WHERE — из таблицы выбираются записи, отвечающие условию поиска, и отбрасываются все остальные.

3. GROUP BY — создаются группы записей, отобранных с помощью оператора WHERE (если он присутствует в SQL-выражении); каждая группа соответствует какому-нибудь значению столбца группирования. Столбец группирования может быть любым столбцом таблицы, заданной в операторе FROM, а не только тем, который указан в SELECT.

4. HAVING — обрабатывает каждую из созданных групп записей, оставляя только те из них, которые удовлетворяют условию поиска; этот оператор используется только вместе с оператором GROUP BY.

5. SELECT — выбирает из таблицы, полученной в результате применения перечисленных операторов, только указанные столбцы.

6. ORDER BY — сортирует записи таблицы. При этом в условии сортировки можно обращаться лишь к тем столбцам, которые указаны в операторе SELECT.

 

Для этой цели подойдет следующее SQL-выражение:

SELECT Имя, Адрес FROM Клиенты WHERE Сумма заказа > 500;

ВЫБРАТЬ СТОЛБЦЫ имя, Адрес ИЗ ТАБЛИЦЫ клиенты ГДЕ Сумма заказа > 500;

 

Выбираются только те записи, в которых Сумма заказа превышает 500, и они группируются по значениям столбцов Регион, Имя и Адрес. Это означает, что в результатной таблице записи, имеющие одинаковые значения в столбце Регион, будут расположены рядом друг с другом. Наконец, все записи в результатной таблице упорядочиваются по значениям столбца Имя.

SELECT Регион, Имя, Адрес FROM Клиенты

WHERE Сумма заказа > 500

GROUP BY Регион, Имя, Адрес

ORDER BY Имя;

Оператор WHERE

Условия поиска в операторе WHERE (где) являются логическими выражениями, т. е. принимающими одно из двух возможных зна-. чений — true (ИСТИНА) или false (ЛОЖЬ). Например, выражение Сумма заказа > 500 является истинным (имеет значение

true), если в текущей записи таблицы значение столбца Сумма заказа превышает 500. В противном случае это выражение— ложно (имеет значение false). Одно и то же логическое выражение может быть истинным для одних записей и ложным для других. Вообще говоря, в SQL логические выражения могут принимать еще и неопределенное значение. Эго происходит тогда, когда в выражении некоторые элементы имеют значение NULL. Таким образом, в SQL мы имеем дело не с классической двузначной, а с трехзначной логикой.

Напомню, что выражение, следующее за оператором WHERE, возвращает одно из трех значений: true, false или NULL. При выполнении запроса (SQL-выражения) логическое выражение WHERE применяется ко всем записям исходной таблицы. Если оно истинно для данной записи исходной таблицы, то эта запись выбирается и будет представлена в результатной таблице; в против- ном случае запись не попадет в результатную таблицу.

При составлении логических выражений используются специальные ключевые слова и символы операций сравнения, которые называют предикатами. Например, в выражении Сумма_заказа > 500 применен предикат сравнения(>).

Наиболее часто используются предикаты сравнения, такие как (=), (<), (>), (<>), (<=) и (>=). Однако имеются и другие. Далее приведен список всех предикатов:

· предикаты сравнения: (=), (<), (>), (<>), (<=), (>=);

· BETWEEN;

· IN, NOT IN;

· LIKE, NOT LIKE;

· IS NULL;

· ALL, SOME, ANY;

· EXISTS;

· UNIQUE;

· DISTINCT;

· OVERLAPS;

· MATCH;

· SIMILAR

Предикаты сравнения

Предикаты сравнения, называемые также операторами сравнения, перечислены ниже.

Символ Описание
= Равно
<> Не равно
< Меньше
<= Меньше или равно (не больше)
> Больше
>= Больше или равно (не меньше)

 

BETWEEN

Предикат BETWEEN (между) позволяет задать выражение проверки вхождения какого-либо значения в диапазон, определяемый граничными значениями. Например:

Здесь ключевое слово AND представляет собой логический союз И. Граничные значения (в примере это 100 и 750) входят в диапазон. Причем первое граничное значение должно быть не больше второго.

Эквивалентным приведенному является выражение с предикатами сравнения:

WHERE Сумма заказа >= 100 AND Сумма заказа <= 750

Кроме данных числового типа, в выражениях с BEETWEEN МОЖНО использовать данные следующих типов: символьные, битовые, даты-времени, Так например, чтобы выбрать записи, в которых имена клиентов находятся в диапазоне от А до Ж, можно использовать такое выражение:

SELECT Имя, Адрес FROM Клиенты

WHERE Имя BETWEEN 'А' AND 'Ж';


<== предыдущая лекция | следующая лекция ==>
Основные функциональные характеристики | SELECT Фамилия, Должность
Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 623; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.