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));


 

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

772. Измерение теплоемкости 791 KB
  Изменение положения тигля в ячейке. Различие в теплофизических и физических характеристиках образца и стандарта. Отличие средней температуры образца от измеряемой температуры. Значения параметров кинетических уравнений элементарных стадий.
773. Creation of international business networks 447.93 KB
  Internal business environment Market space. External networks and alliances. Benefits of assotiations and networks. Risks and limitations. Define strategy. Forms of strategic alliances. Internationalization on SMEs. Measuring global business activities.
774. Проектирование механического привода к конвейеру 160 KB
  В проектируемом приводе используется двухступенчатый Планетарно-коническии горизонтальновертикальный редуктор. Быстроходная ступень - планетарная, тихоходная - коническая. Проектный расчет валов редуктора и подбор подшипников. Проектировочный тиходной коничесокой ступени.
775. Заболевания слизистой полости рта (стоматиты, молочница) 160 KB
  Воспалительные заболевания слизистой полости рта. Катаральный стоматит чаще встречается у детей грудного возраста и у дошкольников. Поражение слизистой полости рта грибками рода Candida.
776. Гельминтозы у детей 154.5 KB
  Заболевания, вызываемые гельминтами (аскариды, острицы, карликовый цепень, власоглав, бычий цепень, широкий лентец и др.) Личинка пробуравливает стенку тонкого кишечника и попадает в кровь.
777. Заболевания ЖКТ (острый гастрит, гастродуоденит,панкреатит, лямблиоз) 179.5 KB
  Острое воспаление слизистой оболочки желудка, вызванное кратковременным действием сильных раздражителей. Хроническое рецидивирующее, склонное к прогрессированию воспалительно–дистрофическое поражение слизистой оболочки.
778. Особенности протекания кори и краснухи 46.5 KB
  Острое вирусное высокозаразное заболевание, вызываемое фильтрующимся вирусом и сопровождающееся лихорадкой, сыпью, воспалением слизистых оболочек. Острое инфекционное заболевание, вызываемое фильтрующимся вирусом, сопровождающееся появлением сыпи и увеличением затылочных лимфатических узлов.
779. Проект производственных подразделений АТП с детальной разработкой поста по ТР коробки передач автомобиля ГАЗ-3302 319.5 KB
  Определение количества рабочих на объекте проектирования. График межсменного времени и времени работы подвижного состава на линии с графиком работы основных подразделений АТП. Подбор технологического оборудования, организационной и технологической оснастки. Распределение трудоемкости работ ТО и ТР.