Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД7.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
38.06 Кб
Скачать
  1. Сравнение столбца с результатом вычисления выражения

Выдать из таблице расход дату расхода, наименование товара, стоимость отпущенного товара, при этом учитывать только те записи, в которых стоимость отпущенного товара больше 10

Select Rashod.Data_R, Rashod.nametovar,( Rashod.kolvo * Tovar.price) as t from Tovar, Rashod

Where Rashod.nametovar=Tovar.nametovar//соединяем две таблицы между собой

And t>10

Если мы не свяжем таблиц по nametovar то получим просто декартово произведение таблиц

  1. Использование Between (между)

Если требуется чтобы значение находилось в определенном интервале, то применяется between

<значение> [not] between <значение1> and <значение2>

#

Select * from Tovar

Where kolvo between 10 and 100

Первое должно быть меньше

(kolvo<=10 and >=)

  1. Использование IN

Входит ли значение в набор, во множество значений

<значение > [NOT] IN (<знач1>,<знач2>,…)

#

Select * from Tovar

Where price (10,100,1000)

Где price=10 или price=100 и т.д.

  1. Использование Starting – начинающийся

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

<значение> [NOT] starting [with] <подстрока>

[with] ни на что не влияет

#

Выдать все товары на букву М

Select *from Tovar where nametovar starting with ‘М’ or nametovar starting ‘м’

  1. Использование containing

Чтобы строковое поле содержало подстроку

<значение> [NOT] containing <подстрока>

#

Таблица покупателей а в ней столбец адрес, найти тех покупалей где в адресе есть подстрока «Маршала»

Select namepokupatel from Pokupateli where address containing “Маршала”

  1. Upper/Lower

Преобразует строчные буквы в заглавные. Нижний и верхний регистры

# Выдать всех покупателей из города иркутск

Select * from pokupateli

Where upper(adress) containing “ИРКУТСК”

  1. Использование сцепления строк/конкатенации ||

||

#Выдать имя покупателя и в скобках указать адрес

Select namepokupatel || ‘(‘ || address || ‘)’ from pokupateli

#

#ЭВМ-14-1

Select chifr || ‘-‘ || cast (god as char (4)) || ‘-‘ || cast (nomer as char (1)) from GROUSS

  1. LIKE

Шаблоны сравнения строк значений если необходимо чтобы сравниваемые значения (значение столбца или результата вычисляемого выражения строкового типа) удовлетворяло шаблону, в условии поиска необходимо указать

<значение> [NOT] LIKE <шаблон> [ESCAPE <символ>]

Символ «%» в шаблоне означает, что на его месте может быть строка любой длины

Символ «_» в шаблоне указывает любой символ 1

Like ‘%-ый’

Like ‘20__’

Если требуется не использовать специальные функции и знак % и знак _ включается предложение ESCAPE, который определяет символ, появление которого в шаблоне отменяет специальные функции следующего за ним символа

Where proc like ‘_!%’ escape ‘!’

Знак ! отменяет специальную функцию для процента, он будет обычным символом

# Найти информацию о покупателе в адресе которого содержится набор символов ‘унова’

Select * from pocupatel

Where address like ‘%унова%’

  1. Использование функции cast

Иногда возникает необходимость трактовать значение одного типа как значение другого типа, например символы использовать как число, а число как символы, в этом случае применяется функция CAST

CAST (значение AS <тип данных>)

Число символ Дата

Numeric -> character, date

Character->numeric,date

Date->character,numeric

#Найти покупателя, который делал закупки толи 105 205 или 305…единиц товара, заканчиваться будет на 05

Select * from pocupateli

Where cast(kolvo as chart (3)) like ‘%05’

#Значение типа Date не требуется преобразовывать к строковому типу:

Select ‘Дата расхода’ || DATE_R from Rashod

#Выдать ‘ЭВМ-14-1’

Select shifr||’-‘||cast(god as char (4))||’-’||cast (number as chart(1)) from GROUP as Shifrgproup