71185

Индексы. Ограничения. Создание и удаление

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

Информатика, кибернетика и программирование

Причина состоит в том, что для поля id нет индекса, поэтому не может быть создано ограничение типа FOREIGN KEY. Попробуйте создать внешний ключ на поле id в следующих случаях (Внимание: перед выполнением каждого нового пункта из данного раздела удалите сначала все сделанные изменения)...

Русский

2014-11-03

52.08 KB

0 чел.

Лабораторные работы по дисциплине «Управление данными»

Лабораторной работе №5

«Индексы. Ограничения. Создание и удаление».

1. Создадим ограничение уникальности .

 ALTER TABLE  smallTbl

 ADD UNIQUE KEY unq_Id(Id);

2. Ограничение первичный ключ

ALTER TABLE  smallTbl

 ADD PRIMARY KEY (id) ;

Удаление ключа

ALTER TABLE smallTbl

DROP PRIMARY KEY;

3. Ограничение внешний  ключ

 ALTER TABLE  smallTbl

 ADD CONSTRAINT fk_d FOREIGN KEY (d)

 REFERENCES smallTbl (id) ;

Удаление ключа

ALTER TABLE  smallTbl

 DROP FOREIGN KEY fk_d ;

4. Простое создание индекса.

ALTER TABLE  smallTbl

 ADD INDEX  (id);

Или 

ALTER TABLE  smallTbl

 ADD KEY ind_id(id);

Если не передавать имя индекса, (как в первом случае), то его именем по умолчанию станет таким же, как и название поле.

Удаление индекса:

ALTER TABLE  smallTbl

 DROP INDEX  id;

Ход работы

1. Создадим таблицу 

CREATE TABLES SmallToInt (

id smallint

sid int);

2. Поменяем тип столбца на int

ALTER TABLE  smallToInt

 MODIFY id int;

3. Создадим еще одно поле в этой таблице

ALTER TABLE  smallToInt

 ADD d int;

4. Попробуем добавить ограничение внешний ключ

ALTER TABLE  smallToInt

 ADD CONSTRAINT fk_d

FOREIGN KEY (d)

REFERENCES smallToInt(id) ;

5. Ошибка. Причина состоит в том, что для поля id нет индекса, поэтому не может быть создано ограничение типа FOREIGN KEY.

6.  Попробуйте создать внешний ключ на поле id в следующих случаях (Внимание: перед выполнением каждого нового пункта из данного раздела удалите сначала все сделанные изменения):

6.1. поле id - PRIMARY KEY 

6.2. составной первичный ключ из полей  id  и sid (Внимание: перед добавлением индекса удалите сначала ограничение внешнего ключа, а затем ограничение PRIMARY KEY)

6.3. у не ключевого поля id создайте индекс (Внимание: перед добавлением индекса удалите сначала ограничение внешнего ключа, а затем ограничение PRIMARY KEY)

6.4. у не индексованного поля id создайте UNIQUE KEY (Внимание: перед добавлением ограничения  UNIQUE KEY удалите сначала ограничение внешнего ключа, а затем индекс).

После каждого запроса отображайте состояние таблицы (SHOW CREATE  TABLE smallToInt;)

7. Попробуйте выполнить следующий запрос

SELECT a.Catalog_name, b.Catalog_parent

FROM  lab3.ListCatalog as a INNER  JOIN

(SELECT  Catalog_parent

   FROM lab3.my_files

      GROUP BY lab3.my_files.Catalog_parent

      ORDER BY lab3.my_files.Catalog_parent

          LIMIT 10 )  as b

ON  a.Catalog_ID=b.Catalog_parent;

Теперь создайте индекс для поля lab3.my_files.Catalog_parent.

После чего перезагрузите сервер и повторите попытку выполнение запроса из этого пункта . Как сильно изменилось время выполнения запроса? Сформулируйте основное назначение индексов.

Номер задания

Комментарий

1

Условие отбора

=1

2

Условие отбора

<2000

3

Условие отбора

<=#30.09.2000# And >=#01.09.2000#

4

Условие отбора

>100 And <200

5

Поле

CheckSum: [экземляров]-([колОст]+[взяли])

Условие отбора

<>0

6

В свойствах запроса

«набор значений»

3

Сортировка

по убыванию

7

В свойствах запроса

«набор значений»

1

Сортировка

По возрастанию

Условие отбора

5 (из за того что ключ внешний)

8

В свойствах запроса

«набор значений»

1

Сортировка

По возрастанию

9

Поле

поступило в ноябре 2001года: Count(*)

Условие отбора

<=#30.11.2001# And >=#01.11.2001#

Это поле на экран не выводим

10

Условие отбора

<=#30.09.2000# And >=#01.09.2000#

Групповая операция

Sum (экземпляров)

Групповая операция

Условие (дата поступления)

Вывод на экран

нет(дата поступления)

11

Условие отбора

>="10" And <="32"

Условие отбора

>"20" And <"30"

12

Поле

Кол-во: Count(*)

Условие отбора

>="23" And <="32"

Условие отбора

>"20" And <"30"

13

Условие отбора

>4*30

14

Условие отбора

>Date()


6

9. SELECT a.Фамилия

FROM Фамилии a, Фамилии b

Where a.Фамилия=b.Фамилия and a.Код>b.Код ;

10.  SELECT Фамилии.Фамилия, Count(Фамилии.Фамилия) AS [Count-Фамилия]

 FROM Фамилии

GROUP BY Фамилии.Фамилия

HAVING (((Count(Фамилии.Фамилия))>1));


 

А также другие работы, которые могут Вас заинтересовать

57943. Автомат Калашникова АК–74 63 KB
  Образовательные: познакомить обучающихся с назначением боевыми свойствами АК74 и устройством его частей и механизмов; сформировать представления об автоматическом действии автомата АК74...
57944. Похідна та її застосування. Урок узагальнення і систематизації знань 165 KB
  Актуалізація опорних знань: Усне опитування: Дайте відповіді на запитання: 1 що називається похідною функції в точці 2 який геометричний зміст похідної 3 який механічний зміст похідної 4 запишіть правило знаходження похідної суми двох функцій...
57945. Ситуационные задания по спец Управлению проектами 354.66 KB
  Рассматривается проект организации мини-пивоварни Компанией «Пивовар». Планируется, что продукцией пивоварни будет качественное солодовое пиво, приготовляемое по классической рецептуре из высококачественных отечественных и импортных компонентов...
57946. Розв’язування задач за допомогою квадратних рівнянь 468 KB
  Мета уроку: повторити відомості про квадратне рівняння; продовжити формувати вміння та навички учнів розвязувати рівняння, що зводяться до квадратних...
57947. Использование формул сокращенного умножения 42 KB
  Оборудование: 1 ноутбуки; 2 урок сопровождается учебной презентацией компьютерная программа Microsoft Power Point Приложение 1; КП Использование формул сокращенного умножения; 2 буклет сообщение учащегося компьютерная программа Microsoft Office Publisher...
57948. Рівняння 44.5 KB
  Мета уроку: Систематизувати і узагальнити загальні відомості щодо рівнянь рівносильні рівняння лінійні рівняння рівняннящо містять модуль розв’язування задач за допомогою рівнянь.
57949. Узагальнення і систематизація знань учнів по темі «Лінійні рівняння з однією змінною» 745.5 KB
  Сприяти формуванню практичних умінь та навичок розв’язувати рівняння з однією змінною використовуючи основні властивості рівнянь; розв’язувати задачі за допомогою рівнянь; розвивати логічне мислення; спонукати учнів до прояву творчої активності ініціативи...
57950. Розв’язування ірраціональних рівнянь 168.5 KB
  Запитання: Скільки розв’язків має рівняння один Корінь якого степеня існує із будьякого числа непарного Як називають корінь третього степеня кубічний Скільки розв’язків має рівняння якщо 0 два Як називається рівняння в якому змінна знаходиться під знаком кореня ірраціональне Як називається корінь рівняння який одержується в результаті нерівносильних перетворень сторонній...
57951. НАСЕЛЕННЯ ТА ДЕРЖАВИ ПІВДЕННОЇ АМЕРИКИ 41.5 KB
  Мета: поглибити та систематизувати знання про освоєння території материка походження та формування населення материка його кількість склад та розміщення; ознайомити з політичною картою Південної Америки...