Главная страница

Лабораторная работа 2. Лабораторная работа 2 Создание и изменение объектов базы данных


Скачать 54.35 Kb.
НазваниеЛабораторная работа 2 Создание и изменение объектов базы данных
Дата23.03.2019
Размер54.35 Kb.
Формат файлаdocx
Имя файлаЛабораторная работа 2.docx
ТипЛабораторная работа
#71286

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

Создание и изменение объектов базы данных

Цель: Научиться использовать конструкции Transact-SQL для создания и изменения объектов БД

Задние 1. Выполните следующие упражнения. Текст SQL запросов поместите в отчет.

  1. Используя инструкцию CREATE DATABASE, создайте новую базу данных test_db, задав явные спецификации для файлов базы данных и журнала транзакций. Файл базы данных с логическим именем test_db_dat сохраняется в физическом файле C:\tmp\test_db.mdf, его начальный размер — 5 Мбайт, автоувеличение по 8%, максимальный размер не ограничен. Файл журнала транзакций с логиче-ским именем test_db_log сохраняется в физическом файле C:\tmp\test_db_log.ldf, его начальный размер — 2 Мбайта, автоувеличение по 500 Кбайт, максималь-ный размер 10 Мбайт.

  2. Используя инструкцию ALTER DATABASE, добавьте новый файл журнала в базу данных test_db. Файл сохраняется в физическом файле C:\tmp\emp_log.ldf, его начальный размер — 2 Мбайта, автоувеличение по 2 Мбайта, максимальный размер не ограничен.

  3. В примере для некоторых столбцов четырех созданных таблиц запрещены значения NULL. Для каких из этих столбцов это определение является обязательным, а для каких нет?

USE sample;

CREATE TABLE employee (emp_no INTEGER NOT NULL, emp_fname CHAR(20) NOT NULL, emp_lname CHAR(20) NOT NULL, dept_no CHAR(4) NULL);

CREATE TABLE department(dept_no CHAR(4) NOT NULL, dept_name CHAR(25) NOT NULL, location CHAR(30) NULL);

CREATE TABLE project (project_no CHAR(4) NOT NULL,

project_name CHAR(15) NOT NULL,

budget FLOAT NULL);

CREATE TABLE works_on (emp_no INTEGER NOT NULL,

project_no CHAR(4) NOT NULL, job CHAR (15) NULL,

enter_date DATE NULL);

  1. Почему в предыдущем примере тип данных для столбцов dept_no и project_no определен как CHAR, а не как один из целочисленных типов?

  2. Создайте таблицы customers и orders, содержащие перечисленные в следующей таблице столбцы. Не объявляйте соответствующие первичный и внешние ключи.



  1. Используя инструкцию ALTER TABLE, добавьте в таблицу orders новый столбец shipregion. Столбец должен иметь целочисленный тип данных и разрешать значения NULL.

  2. Используя инструкцию ALTER TABLE, измените тип данных столбца shipregion с целочисленного на буквенно-цифровой длиной 8 символов. Столбец может со-держать значения NULL.

  3. Удалите созданный ранее столбец shipregion.

  4. Дайте точное описание происходящему при удалении таблицы с помощью инструкции DROP TABLE.

  5. Создайте заново таблицы customers и orders, усовершенствовав их определение всеми ограничениями первичных и внешних ключей.



  1. Используя среду SQL Server Management Studio, попробуйте вставить следующую новую строку в таблицу orders:

(10, 'ord0l', getdate(), getdate(), 100.0, 'Windstar', 'Ocean', 1).

Почему система отказывается вставлять эту строку в таблицу?

  1. Используя инструкцию ALTER TABLE, определите значение по умолчанию столбца orderdate таблицы orders в виде текущей даты и времени системы.

  2. Используя инструкцию ALTER TABLE, создайте ограничение для обеспечения целостности, ограничивающее допустимые значения столбца quantity таблицы orders диапазоном значений от 1 до 30.

  3. Отобразите все ограничения для обеспечения целостности таблицы orders.

  4. Попытайтесь удалить первичный ключ таблицы customers. Почему это не удается?

  5. Удалите ограничение для обеспечения целостности prim_empl, определенное в примере 5.7.

  6. В таблице customers измените имя столбца city на town.

Задание 2. Создайте базу данных Sample и заполните ее следующей информацией.

База данных sample

Таблица department(отдел)

dept_no

dept_name

location

d1

Research (исследовательский

Dallas

d2

Accounting (расчетный)

Seattle

d3

Marketing (продаж)

Dallas

Таблица employee (служащие)

emp_no

emp_fname

emp_lname

dept_no

25384

Mathew

Smith

d3

10102

Ann

Jones

d3

18316

John

Barrimore

d1

29346

James

James

d2

9031

Elsa

Bertoni

d2

2581

Elke

Hansel

d2

28559

Sybill

Moser

d1

Таблица project (проекты)

project_no

project_name

budget

p1

Apollo

120000

p2

Gemini

95000

p3

Memory

185600



Таблица works_on (участие в проектах)

emp_no

project_no

job

enter_date

101102

p1

Analyst

1.10.2006

101102

p3

Manager

1.01.2008

25384

p2

Clerk

15.02.15

18316

p2

Null

1.06.2007

29346

p2

Null

15.12.15

2581

p3

Analyst

15.10.2007

9031

p1

Manager

15.04.2015

28559

p1

Null

01.08.2007

28559

p2

Clerk

01.02.2008

9031

p3

Clerk

15.11.2015

29346

p1

Clerk

04.01.2007

Скрипт для создания БД Sample.

USE sample;
CREATE TABLE department(dept_no CHAR(4) NOT NULL,
                       dept_name CHAR(25) NOT NULL,
                       location CHAR(30) NULL,
                      CONSTRAINT prim_dept PRIMARY KEY (dept_no));ы
CREATE TABLE employee  (emp_no INTEGER NOT NULL,
           emp_fname CHAR(20) NOT NULL,
           emp_lname CHAR(20) NOT NULL,
          dept_no CHAR(4) NULL,
          CONSTRAINT prim_emp PRIMARY KEY (emp_no),
          CONSTRAINT foreign_emp FOREIGN KEY(dept_no) REFERENCES department(dept_no));
CREATE TABLE project   (project_no CHAR(4) NOT NULL,
          project_name CHAR(15) NOT NULL,
          budget FLOAT NULL,
         CONSTRAINT prim_proj PRIMARY KEY (project_no));
CREATE TABLE works_on  (emp_no INTEGER NOT NULL,
 project_no CHAR(4) NOT NULL,
 job CHAR (15) NULL,
 enter_date DATE NULL,
 CONSTRAINT prim_works PRIMARY KEY(emp_no, project_no),
 CONSTRAINT foreign1_works FOREIGN KEY(emp_no) REFERENCES employee(emp_no),
 CONSTRAINT foreign2_works FOREIGN KEY(project_no) REFERENCES project(project_no));


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