Удалить все блокноты выпускаемые производителями которые не выпускают принтеры
; Воавка, удаление и д>бликаты
I Рассмотрим, как вставки и удаления взаимосвязаны с дубликата* !, допу-
стимыми в отношениях SQL. Прежде всего вставка добавляет в отношение определенные кортежи независимо от того, содержались ли они в дапно.м отношении до вставки. Значит, если в Starsin уже есть кортеж для The Maltese Falcon и Sydney Greenstreet, в рез>льтате вставки, рассмотренной в примере 5.27, в данное отношение добавляется еще один экземпляр этого же кортежа. Если вслед за вставкоП применить удаление, рассмотренное в примере 5.29, оба кортежа будут удовлетворять условию пункта WHERE и поэтому оба будрт удалены. Неожиданным следствием последовательного применения вставки и удаления является то, что полученное отношение Starsin отличается от исходного отношения, к которому эти операции применялись. Кроме того, предложение удаления, казалось бы, описывающее удаление единственного кортежа, на самом деле удаляет несколько кортежей. Фактически в SQL вообще невозможно удалить только один из двух идентичных кортежей.
5.6.3 Операции обновления
Хотя вставки и удаления кортежей можно в каком-то смысле считать обновлениями БД, обновление в SQL - это особый вид изменений БД: изменяются компоненты одного или более кортежей, существующих в БД, Общая форма предложения обновления:
1. Ключевое слово UPDATE
2. Имя отношения, например R
3. Ключевое слово SET
4. Список формул, каждая из которых устанавливает равенство атрибута отношения R со значением выражения или констатой
5. Ключевое слово WHERE
Форма записи операции обновления:
UPDATE R SET <приписывание новых значений> WHERE <условие>
Каждое приписывание нового значения (пункт 4) состоит из атрибута, знака равенства и формулы. При наличии нескольких приписываний они разделяются запятыми.
Данное предложение находит все кортежи отношения Д, удовлетворяющие условию (6). Затем каждый из них изменяется путем оценки формул пункта 4 и приписывания (юлученных значений компонентов кортежа для соответствующих атрибутов R.
Притер 5.31. Изменим отношение
1) UPDATE MovieExec
2) SET name = Pres name
Строка (3) проверяет, является ли номер сертификата из кортежа отношения MovieExec одним из номеров сезтификатов президентов в отношении Studio.
Строка (2) выполняет обновление выбранных кортежей. Напомним, что оператор II означает конкатенацию строк, поэтому выражение, следующее за знаком = в строке (2), помещает строку Pres. и пробел перед старым значением компонента name данного кортежа. Новая строка становится значением этого компонента - Pres. стоит перед старым значением name. Q
5.6.4 Упражнения к разделу 5-6
Упражнение 5.6.1. Запишите перечисленные ниже обновления БД, основанные на схеме БД из упражнения 4.1.1
Product(msl r, model, type) PC(modef, speed, ram, hd, cd. price) Laptop(mode[ speed, ram hd. screen, price) Pnnter(modei, color, type, price)
и опишите их результаты, используя данные этого упражнения.
a) С помощью предложений INSERT введите в БД информацию о том. что ПК модели ] 100 сделан производителем С, имеет скорость 240, RAM 32, жесткий диск 2,5, диск 12х CD и цену 2499 дол.
!Ь) Вставьте в БД информацию о том, что для каждого ПК есть ПК-блокнот, имеющий такую же скорость и RAM, диск 8х CD, при этом номер его моцели превышает номер ПК на 1100, а цена превышает иену ПК на 500 дол.
c) Удалите ПК с жесткими дисками объемом менее 2 Гбайт.
d) Удалите все ПК-блокноты, выпускаемые производ>1телями, которые не выпускают принтеры.
e) Производитель А купил предприятие производителя В. Излгените продукты, выпушенные В, так, чтобы они стали продуктами А.
О Измените объем RAM каждого ПК и добавьте к его жесткому диску объемом 1 Гбайт.
!в) Добавьте один дюйм к размеру экрана каждого ПК блокнота, выпущенного производителем Е, и уменьшите его иену на 100 дол.
Ипрожнение 5.6.2. Запишите перечисленные ниже обновления БД, основанные на схеме БД из упражнения 4.1.3
Classes(class, type, country, numGuns, bore/displacement) Shrps(name, class, launched)
Outcomes(ship, battle, result)
H опишите их результаты, используя данные этого упражнения.
*а) Два британских линкора класса Nelson - Nelson и Rodney , имевшие 16-дюймовые орудия и водоизмещение в 34 тыс тонн, были потоплены в 1927 г. Введите эту информацию в ВД.
b) Дна из гре.ч итальянских линкоров класса Vittorio Vento - Vittorio Veiito и Italia - были потоплены в 1940 г; третий корабль этого класса - Roma -был потоплен в 1942 г. Каждый из них имел 15-люймовые орудия и [юдоизмещение в 41 тыс. тонн. Введите эту информацию в БД.
5.7 Определение схемы отношения в SQL
Рассмотренные ранее аспекты SQL-запросы и изменения часто называют манипулированием данными. В этом разделе мы начнем рассматривать определения данных, т.е. фрагменты SQL, описывающие структуру информации в БД.
Тема данного раздела - описание реляционных схем. Мы рассмотрим, как описывается новое отношение, называемое в SQL таблицей, а именно: имена атрибутов, типы данных для атрибутов и некоторые фиксированные типы ограничений, относящиеся к ключам. В разделе 5.8 будут рассмотрены пользовательские представления - виртуальные отношения, реально не хранящиеся в БД. Некоторые более сложные вопросы, касающиеся ограничений на отношения, будут рассмотрены в главе 6.
5.7.1 Типы данных
Для начала введем основные типы данных, используемые в системах SQL. Тип данных должен иметь каждый атрибут.
2. Битовые строки фиксированной или переменной длины. Они аналогичны строкам символов фиксированной и переменной длины, но их значениями являются строки битов, а не символов. Тип В1Т(п) означает битовые строки длины я, а тип BIT VARYlNG 3. Тип INT или INTEGER (это синонимы) обозначает обычные значения, выраженные целыми числами. Тип SHORTiNT тоже обозначает числа целые числа, количество допустимых битов при этом может быть меньше и зависит от конкретной реализации (аналогично случаю с типами Int и short int в языке С). 4. Числа с плавающей точкой могуг быть представлены различными способами. Для обычных таких чисел можно использовать типы FLOAT или REAL, а более высокой точности представления можно достичь с помощью типа DOUBLE PRECISION; разница меаду ними такая же, как в языке С. В SQL есть также тип реальных чисел с фиксированной десягичной точкой. *с) Удалите из отношения Ships все корабли, потопленные в сражении. *d) Измените отношение Classes так, чтобы калибры их орудий измерялись в сантиметрах (I дюйм = 2,5 см), а водоизмещение в метрических тоннах (I метрическая тонна = 1,1 тонны). ============================================================ SELECT t1.model SELECT t1.maker SELECT t1.speed, avg(t1.price) 🌈RainbowCircles - Это программа для генерации вашего круг общения в социальной сети Twitter Как опубликовать круг взаимодействия в Twitter? Программа не требует авторизации в Twitter! - Используются официальный Twitter API Пожалуйста, не используйте программу, если вы не понимаете ее назначения. Этот комментарий был удален автором. VarangaOfficial - купить мазь варанга - все, что бы хотели знать об этом препарате. Воспользовавшись данным ресурсом, вы получите возможность узнать обстоятельную, полную информацию касательно этого натурального лекарственного комплекса. Увидеть данные о проведенных клинических исследований, прочитать отзывы реальных покупателей и врачей. Ознакомиться с инструкцией по применению, прочесть особенности и методы работы комплекса, уяснить, почему крем Варанга настолько эффективен, где необходимо заказывать оригинальный сертифицированный препарат и, как избежать покупки подделки. Мы тщательно проверяем публикуемые данные. Предоставляем пользователям нашего ресурса сведения, почерпнутые только из надежных источников. Если вы нашли признаки развития грибка или же долго и безрезультатно пытаетесь излечиться от этого неприятного недуга, на нашем сайте вы отыщете быстрый и простой способ решения проблемы. Присоединяетесь и живите здоровой полноценной жизнью. Мы собрали ответы на все вопросы на одном информационном ресурсе. Бесплатный секс-видеочат с кисками 35 - это порно-контент для хобби, онлайн-портал, который позволяет посетителям общаться с женщинами, и, кроме того, это возможность полностью заняться виртуальным сексом с помощью аудио или видео, которые передаются через веб-камеру. В этом видеочате взрослые дамы готовы выслушать и реализовать любое желание, любую прихоть или стремление, которые не каждая женщина в реальной жизни готова реализовать для постоянных посетителей в ритме реальной жизни (онлайн в своих интимных видео-шоу. Хотите отличных впечатлений, от которых у вас мурашки пойдут по коже? Свяжитесь с нашей платформой продаж и выберите женщин старше 35 лет, которые только и ждут, чтобы порадовать и удивить слушателей своим чувственным телом, которое доставит вам бездну удовольствия!, Интимный просмотр дарит не только положительные впечатления, но и они все время задерживаются в жизни, что открывает сладкие ощущения на долгие годы. Порно видео со зрелыми женщинами, может стать хитом в какой-нибудь коллекции!, Бунтарская и страстная модель, которая просто хочет произвести впечатление на пользователя эстетичным телом, чтобы не дать вам остаться равнодушными! Захватывающий фантастический секс или нежность, маршруты с личными секс-аксессуарами или завораживающие позы, развратные взрослые дамы могут делать все, что вы хотите. После вирта с этой очаровашкой, в то же время вы никогда не потеряете шанс устоять и вернуться за большим! Ведь стильные девушки с лучшими дойками рады подарить вашим требованиям поистине неподдельное удовольствие, которое проникнет клиента до кончиков пальцев. Времяпровождение, которое вы запомните надолго, - это изучение секс-видео с женщинами в возрасте! Девушки старшего поколения готовы предоставить вам только самые точные представления об отличном сексе, неизмеримом кайфе и оправданных нормальных оргазмах. Девушки всегда готовы продемонстрировать это практически, что вы можете не только возбуждаться, параллельно они будут наслаждаться самим процессом. Часто клиенты сервиса чата для взрослых будут принадлежать к этой категории представителей сильного пола, они категорически не проявляют к ним большого внимания в своем повседневном существовании, как бы нам всем ни хотелось. В нашем каталоге таких разделов нет, любой пользователь получит внимание. Любой клиент будет не только выслушан одновременно, он даст великолепное эротическое представление!, Для людей, которые устали от стандартов красоты, и тех, кто хочет отдохнуть один день среди группы девушек пышных форм, в этом случае вам нужно зайти в "рунетки". Версии с объемными телами готовы показать вам некоторые варианты и эстетику, создавая невероятные эротические шоу во время прямой трансляции. Они будут рады пообщаться с вами и оставить яркие впечатления о нашем сайте. Вы поймете множество бонусов за онлайн-общение для больших. Когда вы дорожили этой цифрой и, естественно, хотели бы получить больше данных о зрелое порно чат Пожалуйста, посетите нашу собственную страницу. WHERE class LIKE '%o'; Результатом выполнения запроса будет следующая таблица: Пример. Найти все корабли, имена классов которых заканчиваются на букву 'о', но не на 'go': WHERE class NOT LIKE '%go' AND class LIKE '%o'; Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в предложении ESCAPE. Этот управляющий символ должен использоваться в шаблоне перед трафаретным символом, сообщая о том, что трафаретный символ следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ "_", то шаблон '%_%' приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом: Для проверки значения на соответствие строке "25%" можно воспользоваться таким предикатом: Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами: * Если либо проверяемое значение, либо образец, либо управляющий символ равен NULL, истинностное значение равно UNKNOWN. * В противном случае, если проверяемое значение и образец имеют нулевую длину, истинностное значение равно TRUE. * В противном случае, если проверяемое значение соответствует шаблону, то предикат LIKE равен TRUE. * Если не соблюдается ни одно из перечисленных выше условий, предикат LIKE равен FALSE. Проверка отсутствия/наличия значения. Предикат IS NULL Предикат IS [NOT] NULL позволяет проверить отсутствие (наличие) значения в полях таблицы. Использование в этих случаях обычных предикатов сравнения может привести к неверным результатам, т.к. сравнение со значением NULL дает результат UNKNOWN (неизвестно). Так, если требуется найти записи в таблице Pc, для которых в поле price отсутствует значение (поиск ошибок ввода), можно воспользоваться следующим оператором: WHERE price IS NULL; Получение итоговых значений Как узнать количество моделей ПК, выпускаемых тем или иным поставщиком? Как определить среднее значение цены на компьютеры, имеющие одинаковые технические характеристики? На эти и многие другие вопросы, связанные с некоторой статистической информацией, можно получить ответы при помощи итоговых (агрегатных) функций. Стандартом предусмотрены следующие агрегатные функции: Возвращает количество строк источника записей. Возвращает количество значений в указанном столбце. Возвращает сумму значений в указанном столбце. Возвращает среднее значение в указанном столбце. Возвращает минимальное значение в указанном столбце. Возвращает максимальное значение в указанном столбце. Все эти функции возвращают единственное значение. При этом функции COUNT, MIN и MAX применимы к любым типам данных, в то время как SUM и AVG используются только для числовых полей. Разница между функцией COUNT(*) и COUNT() состоит в том, что вторая при подсчете не учитывает NULL-значения. Пример. Найти минимальную и максимальную цену на персональные компьютеры:
Задание: 24 (Serge I: 2003-02-03)
Перечислите номера моделей любых типов, имеющих самую высокую цену по всей имеющейся в базе данных продукции.
FROM product t1
INNER JOIN (
SELECT model, price
FROM laptop
UNION
SELECT model, price
FROM pc
UNION
SELECT model, price
FROM printer
) t2 ON t1.model = t2.model
WHERE t2.price = (
SELECT max(t.price)
FROM (
SELECT max(t2.price) AS price
FROM product t1
INNER JOIN pc t2 ON t2.model = t1.model
UNION
SELECT max(t2.price) AS price
FROM product t1
INNER JOIN laptop t2 ON t2.model = t1.model
UNION
SELECT max(t2.price) AS price
FROM product t1
INNER JOIN printer t2 ON t2.model = t1.model
) t
)
GROUP BY t1.model
============================================================
Задание: 23 (Serge I: 2003-02-14)
Найдите производителей, которые производили бы как ПК
со скоростью не менее 750 МГц, так и ПК-блокноты со скоростью не менее 750 МГц.
Вывести: Maker
FROM product t1
INNER JOIN laptop lp ON lp.model = t1.model AND lp.speed >= 750
WHERE t1.maker IN (
SELECT maker
FROM product t1
INNER JOIN pc pc ON pc.model = t1.model AND pc.speed >= 750
GROUP BY maker
)
GROUP BY t1.maker;
============================================================
Задание: 22 (Serge I: 2003-02-13)
Для каждого значения скорости ПК, превышающего 600 МГц, определите среднюю цену ПК с такой же скоростью.
Вывести: speed, средняя цена.
FROM pc t1
WHERE t1.speed > 600
GROUP BY t1.speed
============================================================
Задание: 21 (Serge I: 2003-02-13)
Найдите максимальную цену ПК, выпускаемых каждым производителем, у которого есть модели в таблице PC.
Вывести: maker, максимальная цена.
Найдите своих лучших друзей в Twitter
Создайте свой собственный круг общения в Twitter и опубликуйте его.
- На главном экране приложения укажите свой никнейм пользователя из сети Twitter, также можно указать имя другого пользователя;
- Нажмите на кнопку "Generate";
- Если пользователь существует, а так же есть доступ к сети интернет, программа начнет собирать информацию по указанному пользователю:
историю пользовательской активности, лайки, reply, ретвиты
- Внимание: этот инструмент не имеет прямого отношения к сервису Twitter.
Если наше приложение окажется для вас полезным, поставьте нам оценку 🌟🌟🌟🌟🌟
4 комментария:
Читайте также: