Главная страница
Навигация по странице:

  • Лабораторная работа №3 Операторы модификации данных 1. Цель и задачи работы

  • 2. Порядок выполнения работы

  • 4. Теоретические сведения

  • INSERT

  • INSERTINTO

  • CREATE TABLE . Добавление одной строки в таблицу films :INSERT

  • INSERT : INSERT INTO

  • CREATE TABLE

  • DELETE

  • UPDATE

  • Лабораторная работа №4 Извлечение информации из таблиц Цель и задачи работы

  • Порядок выполнения работы

  • Лабораторные_БД_ЭВМ_20 (AutoRecovered). Методические указания по выполнению лабораторных работ по дисциплине (модулю)


    Скачать 0.75 Mb.
    НазваниеМетодические указания по выполнению лабораторных работ по дисциплине (модулю)
    Дата05.05.2022
    Размер0.75 Mb.
    Формат файлаdocx
    Имя файлаЛабораторные_БД_ЭВМ_20 (AutoRecovered).docx
    ТипМетодические указания
    #512616
    страница2 из 12
    1   2   3   4   5   6   7   8   9   ...   12

    Оборудование

    персональный компьютер с установленной операционной системой Windows XP/7/8, браузер (Например, InternetExplorer, GoogleChrome, Opera), СУБД PostgreSQL.


    1. Задание на работу

    1. Напишите три SQL запроса, создающие таблицы в соответствии с вашим вариантом. В работе вы должны продемонстрировать использование различных типов данных: целочисленные, числа с плавающей точкой, числа с фиксированной точкой, строковые типы (с фиксированной и с переменной длиной строки), дата. Чем больше разных типов данных вы используете, тем лучше. Приведите в отчете скриншоты терминала с выполненными командами и их результатом.

    2. С помощью pgAdmin заполните таблицы данными: в каждую таблицу добавьте 10 строк.
    7. Контрольные вопросы

    1. Создать базу данных basa1, причем для данных на приросте 10%, для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

    2. Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций - на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

    3. Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций - на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 %.

    4. Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций - на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

    Лабораторная работа №3

    Операторы модификации данных
    1. Цель и задачи работы

    Целью лабораторной работы является изучение и практическое применение операторов модификации данных.
    2. Порядок выполнения работы

    - ознакомится с теоретическими сведениями;

    - выполнить задание;

    - оформить отчет;

    - ответить на контрольные вопросы, заданные преподавателем.
    3. Оформление отчета

    Отчет должен содержать: титульный лист, цель работы, описание пунктов выполнения лабораторной работы в соответствии с заданием, ответы на контрольные вопросы и выводы по работе.
    4. Теоретические сведения

    В SQL для выполнения операций ввода данных в таблицу, их изменения и удаления предназначены три команды языка манипулирования данными (DML).

    Это команды – INSERT (вставить), UPDATE (обновить), DELETE (удалить).

    Команда INSERT осуществляет вставку в таблицу новой строки. В простейшем случае она имеет следующий вид:

    INSERTINTO<имя таблицы>VALUES (<значение>, <значение>, ...);

    При такой записи указанные в скобках после ключевого слова VALUES значения вводятся в поля добавленной в таблицу новой строки в том порядке, в котором соответствующие столбцы указаны при создании таблицы, то есть в операторе INSERT'>CREATE TABLE.

    Добавление одной строки в таблицу films:

    INSERT INTO films VALUES ('UA502', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes');

    В этом примере столбец len опускается и, таким образом, получает значение по умолчанию:

    INSERT INTO films (code, title, did, date_prod, kind)

    VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');

    В этом примере для столбца с датой задаётся указание DEFAULT, а не явное значение:

    INSERT INTO films VALUES

    ('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes');

    INSERT INTO films (code, title, did, date_prod, kind)

    VALUES ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama');

    Добавление строки, полностью состоящей из значений по умолчанию:

    INSERT INTO films DEFAULT VALUES;

    В случаях, когда необходимо ввести значения полей в порядке, отличном от порядка столбцов, заданного командой CREATE TABLE, или если требуется ввести значения не во все столбцы, то следует использовать следующую форму команды INSERT:

    INSERT INTO STUDENT (STUDENT_ID, CITY, SURNAME, NAME)

    VALUES (101, ' Москва ',' Иванов ', ' Саша ');

    Столбцам, наименования которых не указаны в приведенном в скобках списке, автоматически присваивается значение по умолчанию, если оно назначено при описании таблицы (команда CREATE TABLE), либо значение NULL.

    Применение оператора INSERT с подзапросом позволяет загружать сразу несколько строк в одну таблицу, используя информацию из другой таблицы. В то время как оператор INSERT, использующий VALUES добавляет только одну строку, INSERT с подзапросом добавляет в таблицу столько строк, сколько подзапрос извлекает из другой таблицы. При этом количество и тип возвращаемых подзапросом столбцов должно соответствовать количеству и типу столбцов таблицы, в которую вставляются данные.

    С помощью команды INSERT можно извлечь значение из одной таблицы и разместить его в другой, к примеру, запросом следующего вида:

    INSERT INTO STUDENT 1

    SELECT* FROM STUDENT WHERE CITY = ^ Москва ';

    При этом таблица STUDENT 1должна быть предварительно создана командой CREATE TABLE и иметь структуру, идентичную таблице STUDENT.

    Команда DELETE удаляет из указанной таблицы строки, удовлетворяющие условию WHERE. Если предложение WHERE отсутствует, она удаляет из таблицы все строки, в результате будет получена рабочая, но пустая таблица.

    Удаление всех фильмов, кроме мюзиклов:

    DELETE FROM films WHERE kind <> 'Musical';

    Очистка таблицы films:

    DELETE FROM films;

    Удаление завершённых задач с получением всех данных удалённых строк:

    DELETE FROM tasks WHERE status = 'DONE' RETURNING *;

    Команда UPDATE позволяет изменять, то есть обновлять, значения некоторых или всех полей в существующей строке или строках таблицы.

    UPDATE изменяет значения указанных столбцов во всех строках, удовлетворяющих условию. В предложении SET должны указываться только те столбцы, которые будут изменены; столбцы, не изменяемые явно, сохраняют свои предыдущие значения.

    Изменить строки в таблице, используя информацию из других таблиц в базе данных, можно двумя способами: применяя вложенные запросы или указав дополнительные таблицы в предложении FROM. Выбор предпочитаемого варианта зависит от конкретных обстоятельств.

    Изменение слова Drama на Dramatic в столбце kind таблицы films:

    UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';

    Изменение значений температуры и сброс уровня осадков к значению по умолчанию в одной строке таблицы weather:

    UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT WHERE city = 'San Francisco' AND date = '2003-07-03';
    5. Оборудование

    Персональный компьютер с установленной операционной системой WindowsXP/7/8, браузер (Например, InternetExplorer, GoogleChrome, Opera), СУБДPostgreSQL.
    6. Задание на работу

    1. Предположим, что вам нужно вставить в таблицу строчку и значение одного из полей вставляемой строки вам еще не известно. Напишите запрос в двух вариантах: в одном укажите названия вводимых полей явно, в другом - не указывайте имена полей.

    2. Напишите запрос, обновляющий значение двух полей одной строки.

    3. Напишите запрос, удаляющий значение одной строки.

    4. Напишите запрос, переносящий для нескольких строк значение одного поля в другое поле.

    5. Напишите запрос, переносящий несколько строк одной таблицы в другую таблицу.

    6. Продемонстрируйте, каким образом можно заполнять значение первичного ключа таблицы автоматически. Создайте секвенцию, определите значение, генерируемое секвенцией по умолчанию.

    7. Выполните запрос на вставку данных и получите только что вставленное значение первичного ключа (конструкция RETURNING ID) .
    7. Контрольные вопросы

    1. Даны таблицы Город и Разговор. Удалить данные об абонентах, суммарная продолжительность телефонных разговоров которых оказалась меньше 10 мин.

      CREATE TABLE Город

      ( Код_Города INT ,

      Название VARCHAR(20) NOT NULL,

      Тариф MONEY)


      CREATE TABLE Разговор

      (Код_Разговора INT,

      Код_ГородаINTNOTNULL,

      Фамилия VARCHAR(20),

      Дата DATETIME,

      Продолжительность INT)

    2. Даны таблицы Автор и Книга. Удалить сведения об авторах, издавших только одну книгу.

      CREATE TABLE Автор

      ( Код_Автора INT ,

      Фамилия VARCHAR(50))


      CREATE TABLE Книга

      ( Код_Книги INT,

      Название VARCHAR(50),

      Цена MONEY,

      Код_Автора INT)

    3. Увеличить на 10% стоимость билетов, проданных в день вылета рейса.

    4. Уменьшить на 50% продолжительность телефонных разговоров тех абонентов, которые за последний месяц сделали более 1000 звонков.

    5. Даны таблицы

    CREATE TABLE Город

    (Код_Города INT,

    Название VARCHAR(20) NOT NULL,

    Тариф MONEY)

    CREATE TABLE Разговор

    (Код_Разговора INT,

    Код_Города INT NOT NULL,

    Фамилия IVARCHAR(20),

    Дата DATETIME NOT NULL,

    Продолжительность INT NOT NULL)

    Удалить информацию о городах, с которыми не было ни одного телефонного разговора.

    1. Даны таблицы

    CREATE TABLE Блюдо

    (Название_блюдаVARCHAR(20) NOTNULL,

    Время_приготовления INT NOT NULL,

    Общая_калорийность INT NOT NULL,

    Номер_рецепта INT,

    Повар VARCHAR(20),

    Стоимость_блюда MONEY)

    CREATE TABLE Компонент

    (Название_компонента VARCHAR(20),

    КалорийностьINTNOTNULL,

    ЖирыINT,

    БелкиINT,

    БлюдоVARCHAR(20),

    Углеводы INT,

    Стоимость_компонента MONEY NOT NULL)

    Удалить сведения о блюдах, стоимость которых меньше средней стоимости компонентов.

    1. Даны таблицы:

    CREATE TABLE Автор

    (Код_Автора INT ,

    Фамилия VARCHAR(50) NULL,

    Имя VARCHAR(50) NULL,

    Отчество VARCHAR(50) NULL,

    Пол VARCHAR(50) NOT NULL ,

    Дата_рождения DATETIME ,

    Телефон CHAR(9))

    CREATE TABLE Книга

    (Код_Книги INT,

    Название VARCHAR(50) NOT NULL,

    Цена MONEY,

    Тематика VARCHAR(50) NOT NULL,

    Издательство VARCHAR(50) NOT NULL,

    Код_Автора INT NOT NULL)

    Удалить сведения об авторах, чьи произведения не издаются.
    Лабораторная работа №4

    Извлечение информации из таблиц

    1. Цель и задачи работы

    Целью лабораторной работы является изучение и практическое применение возможностей SQL для извлечения информации из таблиц.


    1. Порядок выполнения работы

    - ознакомится с теоретическими сведениями;

    - выполнить задание;

    - оформить отчет;

    - ответить на контрольные вопросы, заданные преподавателем.


    1. Оформление отчета

    Отчет должен содержать: титульный лист, цель работы, описание пунктов выполнения лабораторной работы в соответствии с заданием, ответы на контрольные вопросы и выводы по работе.


    1. Теоретические сведения

    Запрос - команда, которую вы даете вашей СУБД и которая сообщает ей чтобы она вывела определенную информацию из таблиц в память. Эта информация обычно посылается непосредственно на экран компьютера или терминала, которым вы пользуетесь, хотя, в большинстве случаев, ее можно также послать на принтер, сохранить в файле (как объект в памяти компьютера), или представить, как вводную информацию для другой команды или процесса.

    В самой простой форме, команда SELECT просто инструктирует базу данных, чтобы извлечь информацию из таблицы. Например, можно вывести таблицу «Продавцов» напечатав следующее:

    SELECTsnum, sname, sity, commFROMSalespeople;

    Другими словами, эта команда просто выводит все данные из таблицы. Большинство программ будут также давать заголовки столбца как выше, а некоторые позволяют детальное форматирование вывода, но это уже вне стандартной спецификации. Имеется объяснение каждой части этой команды:

    SELECT

    Ключевое слово, которое сообщает базе данных что эта команда – запрос. Все запросы начинаются этим словом, сопровождаемым пробелом.

    snum

    sname

    Это – список столбцов из таблицы, которые выбираются запросом. Любые столбцы, не перечисленные здесь не будут включены в вывод команды. Это, конечно, не значит что они будут удалены или их информация будет стерта из таблиц, потому что запрос не воздействует на информацию в таблицах; он только показывает данные.

    FROM

    FROM - ключевое слово, подобно SELECT, которое должно Salespeople быть представлено в каждом запросе. Оно сопровождается пробелом и затем именем таблицы используемой в качестве источника информации. В данном случае – это таблица Продавцов (Salespeople).

    ;

    Точка с запятой используется во всех интерактивных командах SQL чтобы сообщать базе данных что команда заполнена и готова выполниться. В некоторых системах наклонна черта влево (\) в строке, является индикатором конца команды.

    Оператор SELECT имеет следующий вид:

    SELECT [ ALL | DISTINCT [ ON ( выражение [, ...] ) ] ]

    [ * | выражение [ [ AS ] имя_результата ] [, ...] ]

    [ FROM элемент_FROM [, ...] ]

    [ WHERE условие ]

    [ GROUP BY элемент_группирования [, ...] ]

    [ HAVING условие [, ...] ]

    [ ORDERBY выражение ]

    Формат запроса с использованием данного оператора:

    SELECT список полей FROM список таблиц WHERE условия…

    Основные ключевые слова, относящиеся к запросу SELECT:

    WHERE — используется для определения, какие строки должны быть выбраны или включены в GROUP BY.

    GROUP BY — используется для объединения строк с общими значениями в элементы меньшего набора строк.

    HAVING — используется для определения, какие строки после GROUP BY должны быть выбраны.

    ORDER BY— используется для определения, какие столбцы используются для сортировки результирующего набора данных.

    Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение, которое вы можете использовать. Звездочка (*) может применяться для вывода полного списка столбцов следующим образом:

    SELECT * FROM Salespeople;

    Условия использующие ключевое слово WHERE. 

    Оператор

    Описание

    =

    Отбираются значения равные указанному

    SELECT * FROMtopicsWHEREid_author=4;

    >

    Отбираются значения больше указанного
    SELECT * FROM topics WHERE id_author>2;

    <

    Отбираются значения меньше указанного
    SELECT * FROM topics WHERE id_author<3;

    >=

    Отбираются значения большие и равные указанному
    SELECT * FROM topics WHERE id_author>=2;

    <=

    Отбираются значения меньшие и равные указанному
    SELECT * FROM topics WHERE id_author<=3;

    !=

    Отбираются значения не равные указанному
    SELECT * FROM topics WHERE id_author!=1;

    IS NOT NULL


    Отбираются строки, имеющие значения в указанном поле
    SELECT * FROM topics WHERE id_author IS NOT NULL;

    IS NULL

    Отбираются строки, не имеющие значения в указанном поле
    SELECT * FROM topics WHERE id_author IS NULL;

    BETWEEN (между)

    Отбираются значения, находящиеся между указанными
    SELECT * FROM topics

    WHERE id_author BETWEEN 1 AND 3;

    IN (значение содержится)

    Отбираются значения, соответствующие указанным
    SELECT * FROM topics WHERE id_author IN (1, 4);

    NOT IN (значение не содержится)

    Отбираются значения, кроме указанных
    SELECT * FROMtopics

    WHERE id_author NOT IN (1, 4);

    LIKE (соответствие)

    Отбираются значения, соответствующие образцу
    SELECT * FROM topics

    WHERE topic_name LIKE 'вел%';

    NOT LIKE

    (не соответствие)

    Отбираются значения, не соответствующие образцу
    SELECT * FROM topics

    WHERE topic_name NOT LIKE 'вел%';



    1. 1   2   3   4   5   6   7   8   9   ...   12


    написать администратору сайта