Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Мартин Грубер - Понимание SQL

Мартин Грубер - Понимание SQL (Мартин Грубер. Понимание SQL), страница 7

PDF-файл Мартин Грубер - Понимание SQL (Мартин Грубер. Понимание SQL), страница 7 Информационные технологии в материаловедении (5730): Книга - 9 семестр (1 семестр магистратуры)Мартин Грубер - Понимание SQL (Мартин Грубер. Понимание SQL) - PDF, страница 7 (5730) - СтудИзба2015-08-23СтудИзба

Описание файла

PDF-файл из архива "Мартин Грубер. Понимание SQL", который расположен в категории "". Всё это находится в предмете "информационные технологии в материаловедении" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информационные технологии в материаловедении" в общих файлах.

Просмотр PDF-файла онлайн

Текст 7 страницы из PDF

Так как 200 — это скалярное значение, как и значение в столбце оценки, для ихсравнения вы можете использовать реляционный оператор.SELECT *FROM CustomersWHERE rating > 200;Вывод для этого запроса показывается в Рисунке 4.1.=============== SQL Execution Log ============| SELECT *|| FROM Customers|| WHERE rating > 200;|| ============================================= ||snumcnamecityratingsnum|| ------------ -------- ---------||2004CrassBerlin3001002||2008Cirneros San Jose3001007|===============================================Рисунок 4.1:Использование больше чем (>)Конечно, если бы мы захотели увидеть еще и заказчиков с оценкой, равной 200,мы стали бы использовать предикатrating >= 200БУЛЕВЫ ОПЕРАТОРЫОсновные Булевы операторы также распознаются в SQL. Выражения Буля —являются или верными или неверными, подобно предикатам. Булевы операторы связывают одно или более верных/неверных значений и производят едиственное верное/или/неверное значение.

Стандартными операторами Буля, распознаваемыми вSQL, являются: AND, OR, и NOT.Существуют другие, более сложные, операторы Буля (типа "исключенный или"),но они могут быть сформированы из этих трех простых операторов — AND, OR, NOT.Как вы можете понять, Булева верная / неверная логика — основана на цифровой компьютерной операции; и фактически, весь SQL (или любой другой язык) можетбыть сведен до уровня Булевой логики.Операторы Буля и как они работают:AND берет два Буля (в форме A AND B) как аргументы и оценивает их по отношению к истине, верны ли они оба.OR берет два Буля (в форме A OR B) как аргументы и оценивает на правильность, верен ли один из них.NOT берет одиночный Булев (в форме NOT A) как аргументы и заменяет егозначение с неверного на верное или верное на неверное.Связывая предикаты с операторами Буля, вы можете значительно увеличить ихвозможности.

Предположим вы хотите видеть всех заказчиков в San Jose которыеимеют оценку (рейтинг) выше 200:SELECT *FROM CustomersWHERE city = “San Jose”AND rating > 200;Вывод для этого запроса показан на Рисунке 4.2. Имеется только один заказчик,который удовлетворяет этому условию.=============== SQL Execution Log ============||| SELECT *|| FROM Customers|| WHERE city = 'San Jose'|| AND rating > 200;|| ============================================= ||сnumcnamecityratingsnum|| ------------- -------- -------||2008Cirneros San Jose3001007|===============================================Рисунок 4.2: SELECT использующий ANDЕсли вы же используете OR, вы получите всех заказчиков, которые находились вSan Jose или (OR) которые имели оценку выше 200.SELECT *FROM CustomersWHERE city = “San Jose” OR rating > 200;Вывод для этого запроса показывается в Рисунке 4.3.=============== SQL Execution Log ============| SELECT *|| FROM Customers|| WHERE city = 'San Jose'|| OR rating > 200;|| ============================================= ||сnumcnamecityratingsnum|| ----------- -------- ---------||2003LiuSan Jose2001002||2004GrassBerlin3001002||2008Cirneros San Jose3001007|===============================================Рисунок 4.3: SELECT использующий ORNOT может использоваться для инвертирования значений Буля.

Имеется пример запроса с NOT:SELECT *FROM CustomersWHERE city = "San Jose" OR NOT rating > 200;Вывод этого запроса показывается в Рисунке 4.4.=============== SQL Execution Log ============| SELECT *|| FROM Customers|| WHERE city = 'San Jose'|| OR NOT rating > 200;|| ============================================= ||cnumcnamecityratingsnum|| ------------- -------------||2001Hoffman London1001001||2002Giovanni Rome2001003||2003LiuSan Jose2001002||2006Clemens London1001001||2008Cirneros San Jose3001007||2007Pereira Rome1001004|===============================================Рисунок 4.4: SELECT использующий NOTВсе записи за исключением Grass были выбраны. Grass не был в San Jose, и егооценка была больше чем 200, так что он потерпел неудачу при обеих проверках.

Вкаждой из других строк встретился один или другой или оба критериев. Обратитевнимание что оператор NOT должен предшествовать Булеву оператору, чье значениедолжно измениться, и не должен помещаться перед реляционным оператором. Например неправильным вводом оценки предиката будет:rating NOT > 200Он выдаст другую отметку. А как SQL оценит следующее?SELECT *FROM CustomersWHERE NOT city = “San Jose” OR rating > 200;NOT применяется здесь только к выражению city = 'SanJose', или к выражениюrating > 200 тоже? Как и написано, правильный ответ будет прежним. SQL может применять NOT с выражением Буля только сразу после него.

Вы можете получить другойрезультат при команде:SELECT *FROM CustomersWHERE NOT( city = “San Jose” OR rating > 200 );Здесь SQL понимает круглые скобки как означающие, что все внутри них будетоцениваться первым и обрабатываться как единое выражение с помощью всего чтоснаружи них (это является стандартной интерпретацией в математике).

Другими словами, SQL берет каждую строку и определяет, соответствует ли истине равенство city= "San Jose' или равенство rating > 200. Если любое условие верно, выражение Булявнутри круглых скобок верно. Однако, если выражение Буля внутри круглых скобокверно, предикат как единое целое неверен, потому что NOT преобразует верно в неверно и наоборот.Вывод для этого запроса показывается в Рисунке 4.5.=============== SQL Execution Log ============| SELECT *|| FROM Customers|| WHERE NOT (city = 'San Jose'|| OR rating > 200);|| ============================================= ||cnumcnamecityratingsnum|| ------------ ---------------||2001Hoffman London1001001||2002Giovanni Rome2001003||2006Clemens London1001001||2007Pereira Rome1001004|===============================================Рисунок 4.5: SELECT использующий NOT и вводное предложениеИмеется намеренно сложный пример.

Посмотрим сможете ли вы проследить егологику (вывод показан в Рисунке 4.6):SELECT *FROM OrdersWHERE NOT ((odate = 10/03/1990 AND snum >1002) OR amt > 2000.00);=============== SQL Execution Log ==============| SELECT *|| FROM Orders|| WHERE NOT ((odate = 10/03/1990 AND snum > 1002) || OR amt > 2000.00);|| =============================================== ||onumamtodatecnumsnum || ------------- ---------- --------- ||3003767.19 10/03/199020011001 ||30091713.23 10/04/199020021003 ||300775.75 10/04/199020041002 ||30101309.95 10/06/199020041002 |=================================================Рисунок 4.6: Полный (комплексный) запросНесмотря на то, что Булевы операторы индивидуально просты, они не так просты, когда комбинируются в комплексное выражение.Способ оценки комплекса Булева состоит в том, чтобы оценивать Булевы выражения, наиболее глубоко вложенные в круглых скобках, объединять их в единичноеБулево значение, и затем объединять его с верхними значениями.Имеется подробное объяснение того как пример выше был вычислен.

Наиболееглубоко вложенные выражения Буля в предикате — это odate = 10/03/1990 и snum >1002 являются объединеными с помощью AND, формируя одно выражение Буля, которое будет оценено как верное для всех строк, в которых встретились оба эти условия. Это составное Булево выражение (которое мы будем называть Булево номер 1,или B1 для краткости) объдиняется с выражением (amt) > 2000.00 (B2) с помощью OR,формируя третье выражение (B3), которое является верным для данной строки, еслиили B1 или B2 — верны для этой строки.

B3 полностью содержится в круглых скобкахкоторым предшествует NOT, формируя последнее выражение Буля (B4), которое является условием предиката. Таким образом B4, предикат запроса, — будет верен всякий раз, когда B3 неправилен. B3 — неправилен всегда, когда B1 и B2 — оба неверны.B1 неправилен для строки если дата порядка строки не 10/03/1990, или если значениеsnum не большее чем 1002.

B2 неправилен для всех строк, значения суммы приобретений которых не превышает 2000.00. Любая строка со значением выше 2000.00 сделает B2 — верным; в результате B3 будет верен, а B4 нет. Следовательно, все этистроки будут удалены из вывода. Из оставшихся, строки, которые на 3 Октября имеютsnum > 1002 (такие, как строки для onum 3001 на 3 Октября со snum = 1007), делаютB1 верным, с помощью верного B3 и неверного предиката запроса. Они будут такжеудалены из вывода.

Вывод показан для строк которые оставлены.РЕЗЮМЕВ этой главе вы значительно расширили ваше знакомство с предикатами. Теперь вы можете находить значения, которые связаны с данным значением любымспособом — определяемым различными реляционными операторами. Вы можететакже использовать операторы Буля AND и OR чтобы много условий, каждое из которых автономно в предикатах, объединять в единый предикат. Оператор Буля NOT, каквы уже видели, может изменять значение условия или группы условий напротивоположное.Булевы и реляционные операторы могут эффективно управляться с помощьюкруглых скобок, которые определяют порядок, в котором операции будут выполнены.Эти операции применимы к любому уровню сложности и вы поняли как сложные условия могут создаваться из этих простых частей.Теперь, когда мы показали как используются стандартные математические операторы, мы можем перейти к операторам, которые являются исключительными в SQL.Это мы сделаем в Главе 5.РАБОТА С SQL1.

Напишите запрос который может дать вам все порядки со значениями суммы вышечем $1,000.2. Напишите запрос который может выдать вам поля sname и city для всех продавцовв Лондоне с комиссионными выше .10.3. Напишите запрос к таблице Заказчиков чей вывод может включить всех заказчиковс оценкой =< 100, если они не находятся в Риме.4. Что может быть выведено в результате следующего запроса ?SELECT *FROM OrdersWHERE (amt < 1000 OR NOT (odate = 10/03/1990 AND cnum > 2003 ));5. Что может быть выведено в результате следующего запроса ?SELECT *FROM OrdersWHERE NOT ((odate = 10/03/1990 OR snum > 1006) AND amt > = 1500 );6.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5231
Авторов
на СтудИзбе
425
Средний доход
с одного платного файла
Обучение Подробнее