Какие средства используются в стандарте SQL для поддержания целостности?
+Встроенные средства для назначения первичного ключа и каскадного обновления и удаления информации.
Каким условиям удовлетворяют отношения первой нормальной формы?
+Все входящие в отношение домены содержат неделимые значения.
К какому разделу команд SQL принадлежит команда SELECT?
Какие существует типы связей между сущностями?
+Один-ко-одному, один-ко-многим, много-ко-многим.
Как можно коротко указать, что в запросе должны быть выведены значения всех колонок таблицы?
Какие предложения являются обязательными в операторе SELECT?
Можно ли создать таблицы SQL, не пользуясь командой CREATE?
На что указывает оператор IS NULL?
+<00>На отсутствие значения.
Основными понятиями ER-метода логического проектирования являются:
+Cущность, атрибут и связь.
Поля реляционной базы данных:
+Именуются пользователем произвольно с определенными ограничениями конкретной СУБД.
С какой целью проводится нормализация отношений?
+<00>Для минимизации дублирования данных.
С помощью какого аргумента можно избавиться от дублирования данных при создании запроса SQL?
С помощью какой команды SQL можно добавить в таблицу новый столбец?
С помощью какой команды SQL можно удалить все содержание таблицы?
Связь между сущностями представляется, как правило:
+Неопределенной формой глагола.
С помощью какой команды SQL можно добавить новое поле в начало таблицы?
+ALTER TABLE table_name ADD field_nameparametrs FIRST;
Структура реляционной базы данных (БД) меняется при удалении
+Одного из полей.
С помощью какой команды SQL можно добавить новое поле после определенного столбца?
+ALTER TABLE table_name ADD new_field_nameparametrs AFTER old_field_name;
С помощью каких команд SQL можно создать курсор?
+DECLARE … CURSOR FOR
С помощью какой команды SQL можно изменить имя столбца?
+ALTER TABLE table_name CHANGE field_name_oldfield_name_new parameters
С помощью какой команды SQL можно создать представление?
Таблица Book содержит столбцы: ID – уникальный идентификатор издания, Title – название книги, Author – автор книги, Publisher – издательство, Pub_Year – год издания. Выберите правильный вариант запроса для выбора авторов, чьи книги переиздавались в том же или в другом издательстве.
+SELECT Author FROM Book GROUP BY Author, Title HAVING Count(ID)>1;
Таблица Employees, содержит столбец Commission (процент комиссии за заключение договора). Только некоторые сотрудники получают комиссию, у остальных в этом поле содержится значение NULL. Какое условие нужно указать в запросе SELECT, чтобы выбрать всех сотрудников, получающих комиссию?
+WHERE NOT (Commission = NULL)
ЧтотакоеСУБД?
+<00>Пакет программ, обеспечивающий пользователей средствами описания и обработки данных.
Что такое база данных?
+<00>Совокупность взаимосвязанных данных.
Что такое SQL?
+<00>Структурированный язык запросов, который дает возможность работать в реляционных базах данных.
Что представляет собой DDL?
+<00>Язык определения данных в SQL.
Что представляет собой DML?
+<00>Язык манипулирования данными в SQL.
Что представляет собой DCD?
+<00>Язык управления данными в SQL.
Что такое тип CHAR?
Что такое тип DEC?
Что такое тип INT?
Что такое тип FLOAT?
+<00>Числа с плавающей запятой.
Что позволяет выполнить предложение OrderBy команды SELECT?
Что производят агрегатные функции?
+<00>одиночное значение для всей группы таблицы
Что выполняет команда DropTable?
+<00>Удаляет только пустую таблицу базы данных
Что определяет предложение HAVING в команде SELECT?
+<00>Критерии для удаления определенных групп записей из вывода запроса.
Что такое ключ?
+<00>Поле, однозначно идентифицирующее значения полей из других таблиц.
Что такое транзакция?
+<00>Логическая единица работы, составленная из одного или нескольких предложений SQL, выполняемых одним пользователем.
Что отображает структура баз данных?
+<00>Модель логически взаимосвязанных данных конкретной предметной области.
Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.
Источник
Удаление повторяющихся строк в таблице запросом SQL
Когда возникает задача оптимизации базы данных или меняется ее структура, иногда появляется попутная задача организации уже накопленных данных. Хорошо, если таблица уже при разработке приведена в нормальную форму, и вся система организована так, что она не копит лишней дублирующей информации. Если же это не так, то при доработке такой системы хочется избавиться от всех избыточных данных и сделать все наиболее качественно.
В этой статье рассмотрим задачу удаления дублирующих строк в таблице БД. Сразу же отмечу, что речь идет о необходимости удалить именно повторяющиеся строки. Например, записи в таблице заказов с полями «код заказа», «код товара», «код покупателя», «дата заказа» могут различаться только кодом заказа, так как все же один покупатель в один день может заказать один и тот же товар несколько раз. А главный показатель здесь, что все правильно – наличие ключевого поля.
Если же мы видим таблицу, изобилующую повторяющимися полями, без явной необходимости каждой записи, то это именно то, что должно быть исправлено.
Пример явно избыточной таблицы:
id (код записи) | country_id (код страны) | city_name (код города) |
1 | 1 | Москва |
2 | 1 | Хабаровск |
3 | 1 | Самара |
4 | 1 | Кисловодск |
5 | 1 | Хабаровск |
6 | 1 | Самара |
7 | 1 | Кисловодск |
8 | 1 | Кисловодск |
Теперь рассмотрим, как можно решить эту проблему. Здесь можно применить несколько методов.
1. Можно написать функцию для сравнения и перебора всех данных. Это долго, да и писать код для одноразового использования не всегда хочется.
2. Другое решение – создать запрос на выборку с группировкой данных, так чтобы получить только уникальные строки:
Получаем следующую выборку:
country_id | city_name |
1 | Кисловодск |
1 | Москва |
1 | Самара |
1 | Хабаровск |
Затем, полученный набор данных записываем в другую таблицу.
3. В указанных решениях применяется дополнительный программный код или дополнительные таблицы. Однако, было бы удобней сделать все, используя только запросы SQL без дополнительных таблиц. И вот пример такого решения:
После выполнения такого запроса в таблице останутся только уникальные записи:
id | country_id | city_name |
1 | 1 | Москва |
2 | 1 | Хабаровск |
3 | 1 | Самара |
4 | 1 | Кисловодск |
Теперь разберемся подробнее, как все это работает. При запросе на удаление, необходимо задать условие, которое укажет какие данные нужно удалить, а какие оставить. Нам необходимо удалить все не уникальные записи. Т.е. если существует несколько одинаковых записей (одинаковые они, если у них равны значения country_id и city_name), то нужно взять одну из строк, запомнить ее код и удалить все записи с такими же значениями country_id и city_name, но другим кодом (id).
Строка SQL запроса:
указывает, что удаление будет производиться из таблицы mytable.
Затем запрос на выборку формирует вспомогательную таблицу, где мы группируем записи так, чтобы все записи были уникальными:
MIN(b.id) mid – формирует столбец mid (сокращение min id), в который вносятся минимальное значение id, в каждой подгруппе.
В результате получается таблица, содержащая уникальные записи и id первой строки для каждой группы дублирующих записей.
country_id | city_name | mid |
---|---|---|
1 | Кисловодск | 4 |
2 | Москва | 1 |
3 | Самара | 3 |
4 | Хабаровск | 2 |
Теперь мы имеем две таблицы. Одну общую, содержащую все записи. Из нее будут удаляться лишние строки. Вторая содержит информацию о строках, которые нужно сохранить.
Остается только сформировать условие, где указывается: удалить нужно все строки, где совпадают поля country_id и city_name, а id совпадать не будет. В данном случае выбирается минимальное значение id, поэтому удаляются все записи, id которых больше чем выбранный во временную таблицу.
Стоит еще отметить, что описанную операцию можно выполнить при наличии в таблице ключевого поля. Если вдруг встретилась таблица без уникального идентификатора, то просто добавляем его:
Выполнив такой запрос, получим дополнительный столбец, заполненный уникальными числовыми значениями для каждой строки таблицы.
Выполняем все необходимые действия. После того, как операция по очистке таблицы от дубликатов записей выполнена, это поле можно так же удалить.
Источник