diff --git a/labs/lab2/report.pdf b/labs/lab2/report.pdf new file mode 100644 index 0000000..ddd9b3c Binary files /dev/null and b/labs/lab2/report.pdf differ diff --git a/labs/lab2/report.typ b/labs/lab2/report.typ new file mode 100644 index 0000000..940f5df --- /dev/null +++ b/labs/lab2/report.typ @@ -0,0 +1,121 @@ +#show link: underline +#set page( + header: context { + if counter(page).get().first() == 1 [ + #align(center)[ + Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики + ] + ] + }, + footer: context { + if counter(page).get().first() == 1 [ + #align(center)[Санкт-Петербург \ 2025] + ] else [ + #align(center)[#counter(page).display("1")] + ] + } +) + + +#show raw.where(block: false): box.with( + fill: luma(240), + inset: (x: 3pt, y: 0pt), + outset: (y: 3pt), + radius: 2pt, +) + +#show raw.where(block: true): block.with( + fill: luma(240), + inset: 10pt, + radius: 4pt, +) + +// title + +\ +\ +\ +#align(center)[Факультет инфокоммуникационных технологий] +#align(center)[Направление подготовки 11.03.02] +\ +\ +#align(center)[Практическая работа №2] +//#align(center)[Установка и первоначальная настройка субд postgresql.] +\ +\ +\ +\ //#align(center)[Вариант 19] +\ +\ +\ +\ +\ +\ +\ +#align(right)[Выполнил:] +#align(right)[Дощенников Никита Андреевич] +#align(right)[Группа: К3221] +#align(right)[Проверила:] +#align(right)[Татьяна Евгеньевна Войтюк] +\ +\ + +#pagebreak() + +=== Цель работы + +=== Задачи, решаемые при выполнении работы + +=== Исходные данные + +==== Задание 1. Описание структуры таблицы, выборка данных из таблицы, задание имен столбцов, сортировка строк с помощью предложения ORDER BY + +===== 1.1 Будет ли успешна эта команда `SELECT`? + +```sql +SELECT * +FROM "EmployeesDepartments".JOB_GRADES; +``` + +===== 1.2 Команда SELECT содержит 4 ошибки. Укажите их. + +```sql +SELECT "EMPLOYEE_ID", "LAST_NAME" +"SAL" x 12 ANNUAL SALARY +FROM "EmployeesDepartments"."EMPLOYEES" +``` + +===== 1.3 Напишите запрос, который отображает структуру таблицы `DEPARTMENTS`, представленную на таблице 1. Сформируйте запрос на выборку данных из нее, результат должен соответствовать таблице 2. + +#align(center)[ + #figure( + table(columns: 3)[*column_name*][*is_nullable*][*Type*][DEPARTMENT_ID][NO][smallint][DEPARTMENT_NAME][NO][character varying][MANAGER_ID][YES][integer][LOCATION_ID][YES][smallint], + caption: [Структура таблицы `DEPARTMENTS`.], + supplement: [Табл.] + ) +] + +#align(center)[ + #figure( + table(columns: 4)[*DEPARTMENT_ID*][*DEPARTMENT_NAME*][*MANAGER_ID*][*LOCATION_ID*][10][Administration][200][1700][20][Marketing][201][1800][50][Shipping][124][1500][60][IT][103][1400][80][Sales - Europe][149][2500][85][Sales - Americas][149][2100][90][Executive][100][1700][110][Accounting][205][1700][190][Contracting][][1700], + caption: [Результат выполнения запроса к таблице `DEPARTMENTS`.], + supplement: [Табл.] + ) +] + +===== 1.4 Напишите запрос, который отображает структуру таблицы `EMPLOYEES`, представленную в таблице 3. + +#align(center)[ + #figure( + table(columns: 3)[*Name*][*Null?*][*Type*][HIRE_DATE][NO][date][SALARY][YES][numeric][COMMISION_PCT][YES][numeric][MANAGER_ID][YES][integer][DEPARTMENT_ID][YES][smallint][EMPLOYEE_ID][NO][integer][BONUS][YES][character varying][FIRST_NAME][YES][character varying][LAST_NAME][NO][character varying][EMAIL][NO][character varying][PHONE_NUMBER][YES][character varying][JOB_ID][NO][character varying], + caption: [Результат выполнения запроса к таблице `DEPARTMENTS`.], + supplement: [Табл.] + ) +] + + + +=== Выполнение работы + +=== Выводы и анализ результатов работы +