CREATE TABLE ind (
id INT,
name VARCHAR(30),
lastname VARCHAR(30)
)
--Установка индекса
CREATE INDEX i_no ON ind (id) --Удаление индекса
DROP INDEX i_no ON ind
DROP TABLE ind
--Первичные(Столбцы первичного ключа уже имеют индекс) и внешние ключи
CREATE TABLE "firsttable"(
"ID" INT NOT NULL PRIMARY KEY,
"name" NVARCHAR (50) NULL,
"lastname" NVARCHAR (100) NULL
)
CREATE TABLE "secondtable" (
"ID" INT NOT NULL PRIMARY KEY,
"sname" NVARCHAR (50) NULL,
"slastname" NVARCHAR (100) NULL,
"mainID" INT NOT NULL
CONSTRAINT FK_ToFirsttable FOREIGN KEY ("mainID")
REFERENCES "firsttable" ("ID")
);
--Добавим внутрь данные
INSERT INTO firsttable("ID","name", "lastname")
VALUES ('1','name1', 'lastname1');
INSERT INTO firsttable("ID","name", "lastname")
VALUES ('2','name2', 'lastname2');
INSERT INTO firsttable("ID","name", "lastname")
VALUES ('3','name3', 'lastname3');
INSERT INTO secondtable("ID","sname", "slastname","mainID")
VALUES ('1','name1', 'lastname1','1');
INSERT INTO secondtable("ID","sname", "slastname","mainID")
VALUES ('2','name2', 'lastname2','2');
INSERT INTO secondtable("ID","sname", "slastname","mainID")
VALUES ('3','name3', 'lastname3','3');
--При объединении таблиц лучше всегда индексировать столбец, являющийся внешним ключом.
--Создадим индекс для внешнего ключа
CREATE NONCLUSTERED INDEX I_FK ON "secondtable" ("mainID");
--Объединение таблиц
SELECT "name", "lastname"
FROM "firsttable" AS FirstT
INNER JOIN "secondtable" AS SecondT
ON FirstT."ID" = SecondT."mainID"
WHERE
FirstT."ID" != 2
SELECT "name", "lastname"
FROM "firsttable" AS FirstT
INNER JOIN "secondtable" AS SecondT
ON FirstT."ID" = SecondT."ID"
WHERE
FirstT."lastname" LIKE '%3%'