- Написать запрос, который выводит все записи по сотрудникам, родившимся в 1977 — 1983 годах
- Наш вариант теста на знание SQL
- SQL. Занимательные задачки
- Задачи
- Разработка запросов на языке SQL
- Изучение предложения SELECT в базах данных и вывод информации на экран. Вычисление данных о сотрудниках предприятия и определение стоимости данного проекта. Изучение предложения WHERE, GROUP BY, HAVING, ORDER BY, UNION и операций внутреннего соединения.
- Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
- Подобные документы
Написать запрос, который выводит все записи по сотрудникам, родившимся в 1977 — 1983 годах
Есть таблица SOTR со следующей структурой:
Название поляТипНазначение
NameСтрокаИмя сотрудника
AddressСтрокаАдрес проживания
MestoСтрокаМесто рождения
SexСтрокаПол: “M” – мужской, “W” – женский
BirthDateДатаДата рождения
Примерное содержимое таблицы:
NameAddressMestoSexBirthDate
ПетрГ.Москва, ул. Петрова, д.4МоскваM1985-04-23
ИванГ.Киев, ул. Иванова, д.3КиевM1979-12-12
МашаГ.Москва, ул. Машина, д.1МоскваW1980-09-11
ФедорГ.Москва, ул. Федорова, д.10ФрунзеM1976-07-03
Необходимо написать запрос, который выводит все записи по сотрудникам, родившимся в 1977 — 1983 годах
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Написать запрос, который удалить все записи из базы где, например столбец «А» содержит значение
Как написать запрос, который удалить все записи из базы где, например столбец «А» содержит значение.
Нужен запрос, который выводит топ 6 категорий и все их товары.
Как в рекламе: ‘Забыли как правильно писать запросы? Значит, хорошо отдохнули’ Что-то я.
Написать запрос, который выводит последние 10 записей без использования order by
Нужно написать запрос, который выводит последние 10 записей без использования order by
Запрос ADOQuery в Делфи 7 выводит не все записи
Появилась это проблема после того как я заполнила таблицу с клиентами. По началу думала что.
Источник
Наш вариант теста на знание SQL
У нас, как и во многих других организациях, проводится тестирование соискателей при поступлении их на работу. Основу тестирования составляет устное собеседование, но в некоторых случаях, даются также практические задания. Несколько дней назад, Руководство попросило меня подготовить набор задач на знание SQL.
Разумеется, я постарался сделать задания не слишком сложными. Уровень соискателей различен и задачи, на мой взгляд, должны быть составлены таким образом, чтобы по результатам их решения можно было судить о том, насколько хорошо испытуемый знает предмет.
Также, не имело смысла давать задания на знание каких-либо особенностей тех или иных СУБД. Мы в работе используем Oracle, но это не должно создавать трудностей для соискателей знающих, например, только MS SQL или PostgreSQL. Таким-образом, использование платформо-зависимых решений не возбраняется, но и не является ожидаемым при решении задач.
Для проведения тестирования, в Oracle 11g была развернута схема, содержащая следующие таблицы:
Требовалось составить SQL-запросы, для решения следующих пяти заданий:
Вывести список сотрудников, получающих заработную плату большую чем у непосредственного руководителя
Вывести список сотрудников, получающих максимальную заработную плату в своем отделе
Вывести список ID отделов, количество сотрудников в которых не превышает 3 человек
Вывести список сотрудников, не имеющих назначенного руководителя, работающего в том-же отделе
Найти список ID отделов с максимальной суммарной зарплатой сотрудников
Не требовалось искать в каком-либо смысле оптимальное решение. Единственное требование: запрос должен возвращать правильный ответ на любых входных данных. Задания разрешалось решать в любом порядке, без ограничения времени. При правильном решении всех заданий, предлагалось следующее задание повышенной сложности:
Составить SQL-запрос, вычисляющий произведение вещественных значений, содержащихся в некотором столбце таблицы
Источник
SQL. Занимательные задачки
Вот уже более 3-х лет я преподаю SQL в разных тренинг центрах, и одним из моих наблюдений является то, что студенты осваивают и понимают SQL лучше, если ставить перед ними задачу, а не просто рассказывать о возможностях и теоретических основах.
В этой статье я поделюсь с вами своим списком задач, которые я даю студентам в качестве домашнего задания и над которыми мы проводим разного рода брейнстормы, что приводит к глубокому и четкому пониманию SQL.
SQL (ˈɛsˈkjuˈɛl; англ. structured query language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных. Подробнее…
Почитать об SQL можно из разных источников.
Данная статья не преследует цели обучить вас SQL с нуля.
Будем использовть всем известную схему HR в Oracle с ее таблицами (Подробнее):
Отмечу что мы будем рассматривать только задачи на SELECT. Тут нет задач на DML и DDL.
Задачи
Restricting and Sorting Data
Таблица Employees. Получить список с информацией обо всех сотрудниках
Источник
Разработка запросов на языке SQL
Изучение предложения SELECT в базах данных и вывод информации на экран. Вычисление данных о сотрудниках предприятия и определение стоимости данного проекта. Изучение предложения WHERE, GROUP BY, HAVING, ORDER BY, UNION и операций внутреннего соединения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 15.03.2011 |
Размер файла | 4,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Разработка запросов на языке SQL
Для выполнения задания была создана база данных из 2-х таблиц:
Таблица Сотрудники содержит информацию о сотрудниках, а именно поле Фамилия, Имя, Отчество, Стаж, Адрес, Должность, Телефон и поле [Номер сотрудника], являющееся первичным ключом.
Таблица Проекты содержит информацию о проектах, а именно: поля [Наименование проекта], Стоимость,[Начало разработки],[Длительность работы(дней)],Оплата и поле [Номер проекта], являющееся первичным ключом.
1. Изучение предложения SELECT
1.1 Вывести полную информацию обо всех сотрудниках предприятия
1.2 Вывести информацию о фамилии и должностях сотрудников
1.4 Вывести информацию обо всех сотрудниках с указанием фамилии, специализации и стажа работы, выраженного в месяцах
SELECT Фамилия,Должность, Стаж*12
SELECT Фамилия,Должность, Стаж*12 AS [Стаж в месяцах]
1.6 Вычислить средний стаж работы сотрудников предприятия
SELECT AVG(Стаж)AS [Средний стаж сотрудников]
1.7 Найти минимальную стоимость проекта
SELECT MIN(Стоимость)AS [Минимальная стоимость]
1.8 Найти максимальную стоимость проекта
SELECT MAX(Стоимость)AS [Максимальная стоимость]
1.9 Найти количество разрабатываемых проектов
SELECT COUNT(*)AS [Количество проектов]
2. Изучение предложения WHERE
2.1 Вывести информацию обо всех сотрудниках, стаж которых меньше 40 лет
AND Стаж 500 30%
SELECT [Наименование проекта],
СтоимостьAS [Старая стоимость],
Стоимость*1.1 AS [Новая стоимость]
7. Изучение операции внутреннего соединения INNER JOIN
база данные информация
7.1 Вывести информацию о сотрудниках с указанием кодов проектов, в которых они принимаю участие
FROM Сотрудники INNER JOIN Проекты
ON Сотрудники.[Номер сотрудника]=
7.2 Вывести следующую информацию о проектах: название проекта, дата начала работы, фамилия сотрудника, а также стоимость проекта
SELECT Проекты.[Наименование проекта],Проекты.[Начало разработки],Проекты.Стоимость Сотрудники.[Фамилия]
FROM Проекты INNER JOIN Сотрудники
ON Проекты.[Номер сотрудника]=
Проекты.[Наименование проекта], Проекты. [Начало разработки], Проекты. Стоимость
FROM Сотрудники, Проекты
WHERE Сотрудники.[Номер сотрудника]=
7.3 Изучение операций внешнего левого LEFT JOIN и правого RIGHT JOIN соединений
Вывести информацию обо всех сотрудниках. Если сотрудник участвовал в проекте, то указать код проекта и оплату за выполнение работ.
Проекты. Оплата,Проекты.[Номер проекта]
FROM Проекты RIGHT JOIN Сотрудники
ON Проекты.[Номер сотрудника]=Сотрудники.[Номер сотрудника]
7.4 Вывести информацию обо всех проектах. Если за проектом закреплены сотрудники, то вывести табельный номер сотрудника и длительность работы сотрудника над проектом
SELECT Проекты.[Наименование проекта] ,Проекты.[Длительность работы(дней)], Проекты.Оплата, Сотрудники.Фамилия, Сотрудники.[Номер сотрудника]
FROM Проекты LEFT JOIN Сотрудники
ON Проекты.[Номер сотрудника]= Сотрудники.[Номер сотрудника]
7.5 Изучение операции декартова произведения для соединения таблиц
Вывести следующую информацию о проектах: фамилия сотрудника, название проекта, длительность работы сотрудника над проектом, а также оплату работы сотрудника.
Проекты.[Наименование проекта], Проекты. [Длительность работы(дней)], Проекты. [Оплата]
FROM Сотрудники, Проекты
7.6 Вывести информацию обо всех сотрудниках. Если сотрудник участвовал в проекте, то указать код проекта и оплату за выполнение работ
Проекты.[Номер проекта], Проекты.[Оплата]
FROM Сотрудники, Проекты
7.8 Использование псевдонимов для самосоединения таблиц
Вывести табельные номера сотрудников, которые работают как над проектом 1, так и над проектом 3.
SELECT Проекты.[Номер сотрудника]
FROM Проекты INNER JOIN Проекты AS Проекты1
ON Проекты.[Номер сотрудника]=
WHERE Проекты.[Номер проекта]=1
AND Проекты1.[Номер проекта]=3
7.9 Использование соединений таблиц при построении вычислений
Вывести информацию об участии сотрудников впроектах с указанием фамилии сотрудника, названия проекта, а также об оплате труда в рублях, долларах и евро.
SELECT Проекты. Оплата AS [Оплата(руб.)]Сотрудники Фамилия
FROM Проекты INNER JOIN Сотрудники
ON Проекты.[Номер сотрудника]=
SELECT Оплата/31,2 AS[Оплата в долларах]
SELECT Оплата/42,4 AS[Оплата в евро]
Вывести информацию о каждом сотруднике, указав количество проектов, в которых он участвует.
SELECT COUNT Проекты. [Номер проекта] AS [Количество проектов], Сотрудники Фамилия,
FROM Проекты INNER JOIN Сотрудники
ON Проекты.[Номер сотрудника]=
Вычислить среднюю стоимость проектов, в которых участвовал сотрудник Карандашов.
SELECT AVG Проекты.(Стоимость)
FROM Проекты INNER JOIN Сотрудники
ON Проекты.[Номер сотрудника]=
WHERE Сотрудники Фамилия = ‘Карандашов’
8. Запросы с подзапросами
8.1 Изучение простых скалярных подзапросов
Вывести информацию обо всех сотрудниках, стаж работы которых больше стажа работы сотрудника Ручкина.
WHERE Стаж >(SELECT Стаж
Вывести информацию о проектах, стоимость которых не ниже среднего значения стоимости.
SELECT [Номер проекта]
WHERE Стоимость =ALL(SELECT COUNT (Стаж )
Вывести информацию о проектах, дата начала работы над которыми превышает соответствующую дату хотя бы одного другого проекта.
SELECT [Наименование проекта]
WHERE [Начало разработки]>=ANY(SELECT [Начало разработки]
8.2 Изучение сложных подзапросов с использованием операции EXISTS
Вывести информацию о тех сотрудниках, которые были задействованы хотя бы над одним проектом.
WHERE Сотрудники.[Номер сотрудника]= Проекты.[Номер сотрудника])
Вывести информацию о тех сотрудниках, которые никогда не работали ни над одним проектом.
WHERE NOT EXISTS(SELECT *
WHERE Сотрудники.[Номер сотрудника]=
8.3 Изучение подзапросов повышенной сложности
Вывести список фамилий сотрудников, которые задействованы ТОЛЬКО в проекте «Проектирование и разработка детали №1256
1. Изучение оператора INSERT INTO . VALUES для добавления новой записи в таблицу.
1.1. Добавить запись с информацией о новом проекте с указанием значений всех атрибутов таблицы.
INSERT INTO Проекты ([Наименование проекта],Стоимость,[Начало разработки],[Длительность работы(дней)],Оплата)
VALUES (‘Проектирование детали № 23’,120000,2008-06-05,30,300000)
Строка добавилась в таблицу
1.2. Добавить запись с информацией о новом сотруднике с указанием значений только тех атрибутов таблицы, которые являются обязательными.
INSERT INTO Сотрудники (Фамилия, Имя, Отчество, Стаж, Адрес, Должность, Телефон, [Номер проекта])
Строка добавилась в таблицу
2. Изучение оператора INSERT INTO . SELECT для добавления выборки в существующую таблицу.
2.1. Создать таблицу «Разрабатываемые Карандашовым проекты», поместив в нее информацию о соответствующих проектах, над которыми работает данный сотрудник.
INSERT INTO [Разрабатываемые Карандашовым проекты] ( [Номер проекта], [Наименование проекта], [Дата начала],Стоимость)
VALUES (1, ‘Проектирование и разработка детали № 1256’,2009-09-09,30000)
Запись в таблицу добавлена
2.2. Создать таблицу «Разработка проекта Лазер», поместив в нее информацию о всех сотрудниках, задействованных над этим проектом.
INSERT INTO [Разработка проекта Лазер]
WHERE [Номер проекта]=8
Запись скопирована из таблицы «Сотрудники» в новую таблицу
2.3. Создать таблицу «Оплата проектов», поместив в нее следующую информацию: код проекта, его название, стоимость проекта в условных единицах.
INSERT INTO [Оплата проектов]([Код проекта],Название,[Стоимость в у.е.])
VALUES (1,’Деталь № 9′,15000)
3. Изучение оператора DELETE для удаления записей из таблицы.
3.1. Удалить все записи из таблицы «Разработка проекта Лазер».
FROM [Разработка проекта Лазер]
Строки были удалены
3.2. Удалить записи с информацией о проекте «Проектирование и разработка детали №1256» из таблицы «Разрабатываемые Карандашовым проекты»
FROM [Разрабатываемые Карандашовым проекты]
WHERE [Наименование проекта]=’Проектирование и разработка детали № 1256′
3.3. Удалить записи из таблицы «Оплата проектов» о разрабатываемых проектах, стоимость которых меньше 50 у.е. и больше 300 у.е.
FROM [Разработка проекта Лазер]
WHERE BETWEEN 50 AND 300
4. Изучение оператора UPDATE для обновления записей таблицы.
4.1. В связи с окончанием очередного календарного года увеличить стаж работы всех сотрудников на 1 год.
UPDATE Сотрудники SET Стаж = Стаж+1
4.2. Изменить название должности «специалист по маркетингу» на «маркетолог».
SET Должность = ‘Специалист по маркетингу’
4.3. Изменить фамилию сотрудницы Ластиковой на Стеркинав связи с заключением брака.
SET Фамилия = ‘Ластикова’
WHERE Фамилия =’Стеркина’
4.4. Увеличить на 20% стоимость проектов, выполняемых сотрудником с самым большим стажем.
Подготовить сценарий для создания файлов БД и таблиц БД. При создании таблиц задать следующие виды ограничений:
— первичные ключи (PRIMARYKEY);
— внешние ключи (FOREIGNKEY);
— ограничения на использование NULL-значений (NOTNULL);
— ограничения уникальности значений (UNIQUE);
— ограничения на значение (CHECK);
— значения по умолчанию (DEFAULT).
Подготовить сценарий, позволяющий заполнить таблицы
1.Создать таблицу «Сотрудники»
CREATE TABLE Сотрудники
([Номер сотрудника] INTEGER,
Должность VARCHAR(50)NOT NULL,
PRIMARY KEY ([Номер сотрудника])
FOREIGN KEY([Номер сотрудника])
2. .Создать таблицу «Проекты»
([Номер проекта] INTEGER NOT NULL,
[Наименование проекта ] VARCHAR(50)NOT NULL,
Стоимость VARCHAR(50)NOT NULL,
[Длительность работы(дней)] INTEGER,
PRIMARY KEY ([Номер проекта])
Размещено на Allbest.ru
Подобные документы
Определение архитектуры реляционных СУБД. Рассмотрение кластеризации как основного способа минимизации числа дисковых операций ввода-вывода данных. Применение индексов для повышения производительности SQL-запросов. Процесс кэширования в базах данных.
курсовая работа [61,1 K], добавлен 15.07.2012
Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.
реферат [14,5 K], добавлен 06.12.2011
Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.
курсовая работа [1,1 M], добавлен 04.09.2014
Создание программного продукта на языке Pascal в визуальной среде программирования Borland Developer Studio в консольном приложении. Разработка типизированного файла для записи данных и их вывод на экран, добавление данных в конец файла, поиск информации.
курсовая работа [1,0 M], добавлен 04.12.2011
Исследование основных операторов языка SQL. Изучение отличий операций произведения и соединения отношения. Выбор из базы данных запрошенной информацию и передача ее пользователю для работы. Список выборки оператора Select. Логическое выражение в опции.
презентация [48,2 K], добавлен 07.12.2013
Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.
курсовая работа [26,7 K], добавлен 19.06.2010
Разработка программы для учета услуг на предприятии и хранения данных о сотрудниках и заказчиках. Анализ и состав входящей и исходящей информации. Структура базы данных, выполнение запросов. Система управления базами данных, принципы их организации.
курсовая работа [1,7 M], добавлен 06.12.2012
Источник