Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование логических выраженийСодержание книги
Поиск на нашем сайте OR, AND, NOT
#6 Select * from Tovar Where kolvo>100 and kolvo<=1000 and price=1000
Пусть есть таблица «Расход товара» она связана с таблицей «Товар» по внешнему ключу nametoval. Хранит название товара и его кол-во
Сравнение столбца с результатом вычисления выражения Выдать из таблице расход дату расхода, наименование товара, стоимость отпущенного товара, при этом учитывать только те записи, в которых стоимость отпущенного товара больше 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 то получим просто декартово произведение таблиц
Использование Between (между) Если требуется чтобы значение находилось в определенном интервале, то применяется between <значение> [not] between <значение1> and <значение2>
# Select * from Tovar Where kolvo between 10 and 100 Первое должно быть меньше (kolvo<=10 and >=)
Использование IN Входит ли значение в набор, во множество значений <значение > [NOT] IN (<знач1>,<знач2>,…)
# Select * from Tovar Where price (10,100,1000) Где price=10 или price=100 и т.д. Использование Starting – начинающийся Если необходимо чтобы строковое значение начиналось с определенной подстроки, включается предложение <значение> [NOT] starting [with] <подстрока> [with] ни на что не влияет # Выдать все товары на букву М Select *from Tovar where nametovar starting with ‘М’ or nametovar starting ‘м’
Использование containing Чтобы строковое поле содержало подстроку <значение> [NOT] containing <подстрока>
# Таблица покупателей а в ней столбец адрес, найти тех покупалей где в адресе есть подстрока «Маршала» Select namepokupatel from Pokupateli where address containing “Маршала”
Upper/Lower Преобразует строчные буквы в заглавные. Нижний и верхний регистры
# Выдать всех покупателей из города иркутск Select * from pokupateli Where upper(adress) containing “ИРКУТСК”
9. Использование сцепления строк/конкатенации || || #Выдать имя покупателя и в скобках указать адрес Select namepokupatel || ‘(‘ || address || ‘)’ from pokupateli
# #ЭВМ-14-1 Select chifr || ‘-‘ || cast (god as char (4)) || ‘-‘ || cast (nomer as char (1)) from GROUSS
LIKE Шаблоны сравнения строк значений если необходимо чтобы сравниваемые значения (значение столбца или результата вычисляемого выражения строкового типа) удовлетворяло шаблону, в условии поиска необходимо указать
<значение> [NOT] LIKE <шаблон> [ESCAPE <символ>]
Символ «%» в шаблоне означает, что на его месте может быть строка любой длины Символ «_» в шаблоне указывает любой символ 1
Like ‘%-ый’ Like ‘20__’
Если требуется не использовать специальные функции и знак % и знак _ включается предложение ESCAPE, который определяет символ, появление которого в шаблоне отменяет специальные функции следующего за ним символа
Where proc like ‘_!%’ escape ‘!’ Знак! отменяет специальную функцию для процента, он будет обычным символом
# Найти информацию о покупателе в адресе которого содержится набор символов ‘унова’ Select * from pocupatel Where address like ‘%унова%’
Использование функции 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
Использование подзапросов
Часто не возможно решить задачу путем использования единственного запроса Select/Например в тех случаях когда при использования условия поиска Where <сравниваемое значение> <оператор> < значение, с которым сравнивать> Параметр <значение с которым сравнивать> заранее не определен и должен вычисляться в момент выполнения оператора select, или представляет собой не одно а несколько значений, в этом случае применяются под запросы:
Select … From… Where <сравниваемое значение> <оператор> (select….) Обязательно в круглых скобках
Вложенный оператор также может содержать внутри вложенные запросы
#Выдать дату, на которую приходится максимальный отпуск товара Таблица Rashod Select date_R, kolvo_R from Rashod Where kolvo_R = (Select max(kolvo_R from Rashod))
#Определить дату когда со склада было отгружено максимальное количество товара и реквизиты покупателя, который этот товар приобрел Таблицы Pocupateli (P) и Rashod(R) связаны полем ID_pocup
Select R.date_R,R.kolvo_R, P.* from Rashod R, Pocupateli P //псевдоним Where R.ID_pocup=P.ID_pocup and (R.kolvo_R =(Select max(Kolvo_R) from Rashod)
ЗАМЕЧАНИЕ #Покупателей из ИРКУТСКА может быть много SELECT R.data_R, R.Tovarname,R.kolvo_R, P.* FROM Rashod R, Pocupateli P WHERE R.ID_pocup=P.ID_pocup And R.ID_pocup= (Select P.ID_pocup from Pocupateli P where Upper (P.Gorod)=’ИРКУТСК’) #ИСПРАВЛЕНО SELECT R.data_R, R.Tovarname,R.kolvo_R, P.* FROM Rashod R, Pocupateli P WHERE R.ID_pocup=P.ID_pocup And R.ID_pocup in (Select P.ID_pocup from Pocupateli P where Upper (P.Gorod)
Вложение подзапросов # Составить список отгрузки товаров покупателю, который преобрел максимальную партию какого-либо товара
Select R1.* from Rashod R1 Where R1.pocup_name in (select R2.pocup_name from Rashod R2 Where R2.kolvo = (select max(R3.kolvo) from Rashod R3))
|
|||||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 178; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.01 с.) |