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

  • Перечень оборудования и программного обеспечения Персональный компьютер Microsoft Office (Word, Visio, Access) Краткие теоретические сведения

  • Синтаксис: Создание таблицы CREATE TABLE имя_таблицы

  • Обновление таблиц: удаление и добавление полей Обновление таблиц выполняется при помощи ключевых слов sql ALTER TABLE

  • Команда SELECT ... INTO

  • Порядок выполнения работы 1 Создадим новую таблицу базы данных

  • Создадим таблицу с внешними ключами

  • 3 Создадим таблицу базы данных, используя имеющуюся

  • 4 Осталось создать таблицу

  • Варианты заданий Варианты заданий представлены в практической работе № 39 Контрольные вопросы

  • Используемая литература

  • Практическая работа 48 Создание базы данных с помощью команд sql. Редактирование данных средствами языка sql


    Скачать 0.5 Mb.
    НазваниеПрактическая работа 48 Создание базы данных с помощью команд sql. Редактирование данных средствами языка sql
    Дата18.10.2022
    Размер0.5 Mb.
    Формат файлаpdf
    Имя файла338_BDPR48.pdf
    ТипПрактическая работа
    #739538

    Практическая работа 48
    Создание базы данных с помощью команд SQL.
    Редактирование данных средствами языка SQL
    Цель работы: Получить практический опыт создания таблиц базы данных с помощью команд SQL.
    Перечень оборудования и программного обеспечения
    Персональный компьютер
    Microsoft Office (Word, Visio, Access)
    Краткие теоретические сведения
    Новые элементы базы данных создаются с помощью предложения SQL
    CREATE. Чтобы создать таблицу, используйте команду CREATE TABLE, за которой введите поля и типы данных, предназначенные для добавления в таблицу. В качестве разделителей используйте запятые, а весь список заключите в круглые скобки.
    Это одна из команд языка определения данных DDL. Команды DDL являются подмножеством команд SQL и используются для создания, изменения и удаления структур базы данных.
    Синтаксис:
    Создание таблицы
    CREATE TABLE
    имя_таблицы
    Определение
    столбцов
    (ПОЛЕ тип
    данных,
    [DEFAULT значение NOT
    NULL]
    Значение по Нет
    Умолчанию отсутствующих
    Первичный ключ
    Primarykey (поле,
    …),
    Определение
    ограничения
    Constraint имя
    ограничения
    Определение
    внешнего ключа
    Foreign key (поле,
    …) references имя
    таблицы(поле,
    …));
    On delete Cascade
    Set null
    No action
    Set default
    On update Cascade
    Set null
    No action
    Set default

    Используем следующие правила:

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

    далее в круглых скобках следуют имена столбцов таблицы
    (полей), после которых указывается тип данных, которому будет принадлежать поле;

    не обязательно: затем указывается может ли поле содержать пустые значения (NULL— может быть пустым или NOT NULL — обязательно для заполнения);

    одно из полей назначается первичным ключом (Primary key);

    поля отделяются запятыми.
    SQL - Типы данных
    Тип данных определяет, какое значение может содержать столбец: целочисленные данные, символьные данные, денежные данные, данные даты и времени, двоичные строки и т. д.
    Типы данных SQL
    Каждый столбец в таблице базы данных должен иметь имя и тип данных.
    Разработчик SQL должен решить, какой тип данных будет храниться внутри каждого столбца при создании таблицы. Тип данных является ориентиром для SQL, чтобы понять, какой тип данных ожидается внутри каждого столбца, а также определяет, как SQL будет взаимодействовать с сохраненными данными.
    Типы данных SQL разделяются на три группы:
    — строковые;
    — с плавающей точкой (дробные числа);
    — целые числа, дата и время.
    Типы данных SQL строковые
    Типы данных
    SQL
    Описание
    CHAR(size)
    Строки фиксированной длиной (могут содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Можно записать до 255 символов
    VARCHAR(size) Может хранить не более 255 символов.
    TINYTEXT
    Может хранить не более 255 символов.
    TEXT
    Может хранить не более 65 535 символов.
    BLOB
    Может хранить не более 65 535 символов.
    MEDIUMTEXT
    Может хранить не более 16 777 215 символов.
    MEDIUMBLOB Может хранить не более 16 777 215 символов.

    LONGTEXT
    Может хранить не более 4 294 967 295 символов.
    LONGBLOB
    Может хранить не более 4 294 967 295 символов.
    ENUM(x,y,z,etc.) Позволяет вводить список допустимых значений. Можно ввести до 65535 значений в SQL Тип данных
    ENUM список. Если при вставке значения не будет присутствовать в списке ENUM, то мы получим пустое значение.
    Ввести возможные значения можно в таком формате: ENUM ( 'X', 'Y', 'Z')
    SET
    SQL Тип данных SET напоминает ENUM за исключением того, что SET может содержать до 64 значений.
    Типы данных SQL с плавающей точкой (дробные числа) и целые числа
    Типы данных SQL Описание
    TINYINT(size)
    Может хранить числа от -128 до 127
    SMALLINT(size)
    Диапазон от -32 768 до 32 767
    MEDIUMINT(size) Диапазон от -8 388 608 до 8 388 607
    INT(size)
    Диапазон от -2 147 483 648 до 2 147 483 647
    BIGINT(size)
    Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
    FLOAT(size,d)
    Число с плавающей точкой небольшой точности.
    DOUBLE(size,d)
    Число с плавающей точкой двойной точности.
    DECIMAL(size,d)
    Дробное число, хранящееся в виде строки.
    Типы данных SQL — Дата и время
    Типы данных
    SQL
    Описание
    DATE()
    Дата в формате ГГГГ-ММ-ДД
    DATETIME()
    Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
    TIMESTAMP() Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГ-ММ-ДД ЧЧ:ММ:СС
    TIME()
    Время в формате ЧЧ:ММ:СС
    YEAR()
    Год в двух значной или в четырехзначном формате.
    Так же значение поля, в том случае если это не запрещено, может быть не указано, для этой цели используется ключевое слово NULL.
    Пример:
    CREATE TABLE GROUPS
    (id NUMBER CONSTRAINTgroups_pk PRIMARY KEY,
    num_gr CHAR(8) not null, form CHAR(2) not null,
    CONSTRAINT groups_uk UNIQUE (num_gr, form),
    CHECK (form in(‘Д’,’З’)));
    Команда создает таблицу GROUPS. Столбцы id (уникальный идентификатор), num_gr (номер группы, например, 3091), form (форма обучения, дневная (Д) или заочная (З)).
    Пример:
    CREATE TABLE STUDENTS
    (id NUMBER CONSTRAINTstud_pk PRIMARY KEY, surname CHAR(100)not null, name CHAR(100)not null, patron CHAR(100)not null, gr_id number not null,
    CONSTRAINT stud_gr_id_fk FOREIGN KEY (gr_id)
    REFERENCESgroups( id) ON DELETE CASCADE);
    Команда создает таблицу STUDENTS. Столбцы id (уникальный идентификатор), surname – фамилия, name – имя, patron – отчество студента, gr_id – внешний ключ, ссылающийся на первичный ключ таблицы
    GROUPS.
    Каждый студент из таблицы STUDENTS учится в какой-то группе из таблицы GROUPS. При удалении группы, удаляется и информация о всех студентах, в ней обучающихся (это только для примера, необходимости в этом нет, скорее наоборот, группу с обучающимися в ней студентами удалять не следует).
    Отметим, что таблицы создаются пустыми, а данные в них вносятся с помощью команды Insert.
    Обновление таблиц: удаление и добавление полей
    Обновление таблиц выполняется при помощи ключевых слов sql ALTER TABLE. Обновляя таблицу можно:

    удалять поля DROP COLUMN;

    добавлять поля ADD;
    Пример:

    В таблицу teachers добавить поле phone для номеров телефонов
    ALTER TABLE teachers ADD phone CHAR (20);
    Пример:
    Необходимо удалить поле phone из таблицы teachers
    ALTER TABLE teachers DROP COLUMN phone
    Команда SELECT ... INTO
    Команда SELECT ... INTO позволяет создать новую таблицу на основе данных из других таблиц. Эта команда используется для архивирования данных, резервного копирования таблиц.
    Синтаксис:
    SELECT Поля INTO НоваяТаблица [INБазаДанных] FROM Таблицы;

    Поля - имена одного или нескольких полей, которые будут скопированы в новую таблицу.

    НоваяТаблица - Имя создаваемой таблицы

    БазаДанных - путь и имя внешней базы данных, в которой содержатся таблицы. Если таблицы находятся в текущей базе данных, то этот аргумент необязателен.

    Таблицы - имена таблиц, из которых выбираются записи.
    Если имя новой таблицы совпадает с именем уже существующей, то будет сгенерирована ошибка.
    Пример:
    SELECT ID, Name, Email, Order INTO CopyOfOrders FROM Orders;
    Задания
    1
    Изучить теоретические сведения.
    2
    В соответствии с вариантом задания создать таблицы базы данных с помощью команд SQL.
    3
    В соответствии с вариантом задания выполнить ввод данных в таблицы
    Порядок выполнения работы
    1 Создадим новую таблицу базы данных. Чтобы не писать команды, воспользуемся кодом, сгенерированным в DBDesigner
    CREATE TABLE `Группы`

    (`Код группы` SMALLINT NOT NULL,
    `Название группы` CHAR(10) NOT NULL,
    `Количество человек` INT,
    `Год` CHAR(5),
    `Отделение` CHAR(20) NOT NULL,
    PRIMARY KEY (`Код группы`)
    );
    В меню Создание выбираем Конструктор запросов, закрываем окно добавления таблиц, переходим в режим SQL и вставляем команды.
    Сохраняем запрос и запускаем на выполнение, подтверждаем выполнение запроса
    В результате будет создана таблица
    Если просмотрим полученную таблицу в режиме конструктора, то типы и характеристики полей соответствуют требованиям:

    2 Создадим таблицу с внешними ключами, для этого добавим к списку полей команду FOREIGN KEY (`Код группы`) REFERENCES
    `Группы` (`Код группы`)
    CREATE TABLE `Студенты1` (
    `Код студента` SMALLINT NOT NULL,
    `Фамилия студ` CHAR(20) NOT NULL,
    `Имя студ` CHAR(15) NOT NULL,
    `Отчество студ` CHAR(20) NOT NULL,
    `Код группы` SMALLINT NOT NULL,
    `Пароль` CHAR(15) NOT NULL,
    PRIMARY KEY (`Код студента`),
    FOREIGN KEY (`Код группы`) REFERENCES `Группы` (`Код группы`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
    );
    Но прежде, чем создавать такой запрос, необходимо внести изменения в параметры Access. Для этого в меню выбрать
    Файл

    Параметры

    Конструкторы объектов. В разделе Синтаксис для SQL
    Server выбрать Эта база данных и По умолчанию для новых баз данных

    После создания таблицы Студенты в разделе Схема данных появятся связанные таблицы
    Причем, если открыть окно связи (Правая кнопка мыши, изменить), то каскадное обновление и удаление записей активно):
    3 Создадим таблицу базы данных, используя имеющуюся, причем, содержащую данные. Предположим, что часть данных из нее необходимо вынести в отдельную вспомогательную таблицу, тогда в основной таблицу эти данные должны быть заменены ссылкой на вспомогательную таблицу.
    Определим действия, необходимые для получения результата: а) скопировать поля из исходной таблицы во вспомогательную с помощью команды SELECT; б) во вспомогательной таблице добавить ключевое поле код данных с помощью ALTER TABLE … ADD COLUMN, причем определить это поле как счетчик, тогда записи пронумеруются автоматически; в) в случае необходимости, можно изменить тип первичного ключа на целый с помощью команды ALTER TABLE … ALTER COLUMN; г) создать основную таблицу из исходной, но вместо полей, вынесенных во вспомогательную, перенести из вспомогательной ключевое поле, а чтобы в основную таблицу попали нужные значения, к команде добавить условия (SELECT …INTO …FROM …WHERE); д) после того, как обе таблицы созданы, останется определить связи, т.е. добавить внешние ключи с помощью команды ALTER TABLE … ADD
    CONSTRAINT.
    Предположим, имеется таблица Пр, хранящая данные о предметах и преподавателях.
    CREATE TABLE `Пр`
    (`Код предмета` SMALLINT NOT NULL,
    `Название предмета` CHAR(100) NOT NULL,

    `Фамилия преп` CHAR(20) NOT NULL,
    `Имя преп` CHAR(15) NOT NULL,
    `Отчество преп` CHAR(20) NOT NULL,
    `Семестр` SMALLINT NOT NULL,
    PRIMARY KEY (`Код предмета`)
    );
    Необходимо выделить информацию о преподавателях в отдельную таблицу. Для этого можно использовать команду SELECT ... INTO. Она скопирует указанные поля вместе с данными
    SELECT [Фамилия преп], [Имя преп], [Отчество преп] INTO
    Преподаватели FROM Пр
    Откроем появившуюся таблицу:
    Можно заметить, что одна строка повторяется дважды. Чтобы исключить повторение строк, добавим в команду слово DISTINCT:
    SELECT DISTINCT [Фамилия преп], [Имя преп], [Отчество преп] INTO
    Преподаватели FROM Пр
    Получим результат

    В режиме конструктора в таблице характеристики полей совпадают с
    Пр, но отсутствует первичный ключ и поле код преподавателя, необходимо внести изменения в таблицу Преподаватели. Добавим поле счетчик и назначим его первичным ключом:
    ALTER TABLE Преподаватели ADD COLUMN [Код преп] COUNTER
    PRIMARY KEY;
    4 Осталось создать таблицу Предметы. В ней ФИО преподавателя из
    Пр заменим кодом преподавателя из таблицы Преподаватели. Таким образом для создания таблицы Предметы используем две таблицы Пр и
    Преподаватели, кроме того в поле Код преп необходимо поместить соответствующий код преподавателя. Поэтому в команду создания таблицы добавим условие (иначе вместо 4 в таблице появится 12 строк):
    SELECT [Код предмета], [Название предмета], [Код преп], Семестр
    INTO Предметы
    FROM Пр, Преподаватели
    WHERE Пр.[Фамилия преп] = Преподаватели.[Фамилия преп] AND Пр.[Имя преп] = Преподаватели.[Имя преп];
    Результат:
    Аналогично предыдущей таблице, здесь отсутствуют ключи, как первичный, так и внешний. Внесем изменения в таблицу с помощью SQL запроса:
    ALTER TABLE `Предметы` ADD CONSTRAINT PK_Predm PRIMARY KEY
    (`Код предмета’);

    ALTER TABLE `Предметы` ADD CONSTRAINT FK_Predm_Prep FOREIGN
    KEY (`Код преп`) REFERENCES `Преподаватели`(`Код преп`) ON DELETE
    CASCADE ON UPDATE CASCADE;
    Если необходимо изменить тип поля в таблице, используем команду:
    ALTER TABLE `Предметы` ALTER COLUMN [Код преп] SMALLINT NOT
    NULL;
    Содержание отчета
    1 Название работы
    2 Цель работы
    3 Перечень технических средств обучения
    4 Порядок выполнения работы
    5 Ответы на контрольные вопросы
    6 Вывод
    Варианты заданий
    Варианты заданий представлены в практической работе № 39
    Контрольные вопросы:
    1. Основные категории команд языка SQL
    2. Для чего используется язык определения данных?

    3. Основные команды языка DDL?
    4. К каким объектам применяются команды языка DDL?
    5. Какие действия выполняет команда CREATE?
    6. К каким объектам применяются команда CREATE?
    7. Какие действия выполняет команда ALTER?
    Используемая литература

    Г.Н.Федорова Основы проектирования баз данных. М.:
    Академия, 2020

    Г.Н.Федорова Разработка, администрирование и защита баз данных. М.: Академия, 2018

    https://infopedia.su/16x10105.html

    https://studfile.net/preview/5917121/page:2

    https://codetown.ru/category/sql


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