Лабораторная работа 1
Составьте запрос для вывода неповторяющихся должностей из таблицы EMPLOYEES.
select distinct job_id from EMPLOYEES
Employee and Title
Создайте запрос для вывода всех данных из таблицы EMPLOYEES. Разделите столбцы запятыми. Назовите столбец THE_OUTPUT select EMPLOYEE_ID||’,’|| FIRST_NAME ||’,’|| LAST_NAME ||’,’|| EMAIL ||’,’|| PHONE_NUMBER ||’,’|| HIRE_DATE ||’,’|| JOB_ID ||’,’|| SALARY ||’,’|| COMMISSION_PCT ||’,’|| MANAGER_ID ||’,’|| DEPARTMENT_ID as «THE_OUTPUT» from EMPLOYEES
Выборка данных и изменение последовательности вывода строк
Ограничение количества возвращаемых строк с помощью предложения WHERE
Сортировка строк с помощью предложения ORDER BY
Создайте запрос для вывода имени и заработной платы служащих, зарабатывающих более $12000. Сохраните команду SQL в файле lab2_1.sql. выполните запрос. SELECT first_name, salary FROM employees where salary>12000
Создайте запрос для вывода фамилии и номера отдела служащего под номером 176
SELECT last_name, department_id FROM employees where employee_id=176
DEPARTMENT_ID
Измените файл lab2_1.sql и выведите фамилии и оклады всех служащих, чей оклад не входит в диапазон от $5000 до $12000. сохраните команду SQL в файле lab2_3.sql. SELECT first_name, salary FROM employees where salary>12000 or salary<5000
Выведите фамилию, идентификатор должности и дату начала работы всех служащих, нанятых в период с 20 февраля 1998 по 1 мая 1998 г. Отсортируйте данные в порядке возрастания даты найма. SELECT last_name, job_id, hire_date FROM employees where hire_date>=’20-FEB-1998′ and hire_date<=’1-MAY-1998′ Order by hire_date
Выведите фамилию и номер отдела всех служащих из отделов 20 и 50. Отсортируйте данные по фамилиям в алфавитном порядке. SELECT LAST_NAME, DEPARTMENT_ID FROM employees where department_id in (20,50) Order by LAST_NAME
DEPARTMENT_ID
Измените файл lab2_3.sql для вывода фамилий и окладов служащих отделов 20 и 50, зарабатывающих от $5000 до $12000. Назовите столбцы Employee и Monthly Salary, соответственно. Вновь сохраните команду SQL в файле lab2_6.sql. Выполните запрос. SELECT first_name as «Employee», salary as «Monthly Salary» FROM employees where salary>5000 and salary<12000 and department_id in (20,50)
Monthly Salary
Выведите фамилию и дату найма всех служащих, нанятых в 1994 г. SELECT last_name, hire_date FROM employees where hire_date>’31-DEC-93′ and hire_date<‘1-JAN-95’
Выведите фамилии и должности всех служащих, не имеющих менеджера. SELECT last_name, job_id FROM employees where manager_id is null
Выведите фамилию, и комиссионные всех служащих, зарабатывающих комиссионные. Отсортируйте данные в порядке убывания окладов и комиссионных. SELECT LAST_NAME, SALARY, COMMISSION_PCT FROM employees where commission_pct is not null Order by commission_pct desc
Практическое занятие 2
1. Вследствие проблем финансирования отделу HR необходим отчет, в котором показываются фамилии и оклады служащих, получающих более $12,000.
Создайте запрос для вывода фамилии и номера отдела служащего под номером 176
Отделу HR необходимы данные о высокооплачиваемых и низкооплачиваемых сотрудниках. Выведите фамилии и оклады всех служащих, чей оклад не входит в диапазон от $5000 до $12000.
Создайте отчет для вывода фамилии, идентификатора должности и даты начала работы всех служащих, с фамилиями Matos и Taylor. Отсортируйте данные в порядке возрастания даты найма.
Выведите фамилию и номер отдела всех служащих из отделов 20 и 50. Отсортируйте данные по фамилиям в алфавитном порядке.
Вывести фамилии и оклады служащих отделов 20 и 50, зарабатывающих от $5000 до $12,000. Назовите столбцы Employee и Monthly Salary, соответственно.
Отделу HR необходим отчет, в котором выводятся фамилии и даты найма всех служащих, нанятых в 2004 г
Создайте отчет, содержащий фамилии и должности всех служащих, не имеющих менеджера.
Создайте отчет для вывода фамилий, окладов и комиссионные всех служащих, зарабатывающих комиссионные. Отсортируйте данные в порядке убывания окладов и комиссионных.
Сотрудникам отдела HR требуются запросы с более гибкими возможностями. Так необходим отчет, в котором показываются фамилии и оклады служащих, зарабатывающих больше некоторой величины, вводимой пользователем после приглашения. (Можете изменить запрос, созданный при выполнении задания 1.) Запишите запрос в файл lab_02_10.sql. Ниже приводятся результаты, которые получаются, когда после приглашения вводится 12000
Отделу HR необходимы отчеты по каждому менеджеру. Создайте отчет, при выполнении которого запрашивается идентификатор менеджера (manager_ID) и выводятся следующие сведения о подчиняющихся ему сотрудниках: табельный номер, фамилия и номер отдела. Должна быть предоставлена возможность отсортировать результаты на основе заданного столбца.
как отобразить имена сотрудников, начиная с a, а затем b в sql
Я хочу отобразить имена сотрудников, имена которых начинаются с a и b ,это должно быть похоже на то, что список отобразит сотрудников с » a «в качестве первой буквы, а затем» b » в качестве первой буквы.
Итак, любое тело скажет мне, что такое команда для отображения этих.
10 ответов
чтобы получить имена сотрудников, начиная с A или B, перечисленных в порядке.
если вы используете Microsoft SQL Server, вы можете использовать
это не стандартный SQL, хотя он просто переводится на следующий, который есть.
для всех вариантов вам нужно будет рассмотреть, хотите ли вы включить акцентированные варианты, такие как Á и проверьте, делают ли запросы выше то, что вы хотите с ними на ваших СУБД и параметрах сортировки опции.
регулярные выражения работают хорошо, если необходимо найти диапазон начальных символов. Ниже приведены все имена сотрудников, начинающиеся с A, B, C или D, и добавляется «верхний» вызов, если имя находится в базе данных с начальной строчной буквы. Мой запрос работает в Oracle (я не тестировал другие БД). Например, возвращается следующее:
Адамс!—2—> Адамс!—2—> Дин!—2—> Дин!—6—>
этот запрос также игнорирует регистр в порядке через » lower» звоните:
что cfengineers сказал, но это звучит, как вы хотите отсортировать его.
возможно, Вам было бы неплохо проверить некоторые учебники по 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. Получить список с информацией обо всех сотрудниках
Using Single-Row Functions to Customize Output
Таблица Employees. Получить список всех сотрудников у которых длина имени больше 10 букв
Using Conversion Functions and Conditional Expressions
Таблица Employees. Получить список всех сотрудников которые пришли на работу в первый день месяца (любого)
Reporting Aggregated Data Using the Group Functions
Таблица Employees. Получить репорт по department_id с минимальной и максимальной зарплатой, с ранней и поздней датой прихода на работу и с количествов сотрудников. Сорировать по количеству сотрудников (по убыванию)
Displaying Data from Multiple Tables Using Joins
Таблица Employees, Departaments, Locations, Countries, Regions. Получить список регионов и количество сотрудников в каждом регионе
Using Subqueries to Solve Queries
Таблица Employees. Получить список сотрудников с самым длинным именем.
На этом пока всё.
Надеюсь, задачи были интересными и увлекательными.
Буду по возможности дополнять этот список задач.
Также буду рад любым замечаниям и предложениям.