Добавим несколько записей в таблицу, нарушая целостность базы данных:
-- ADD SOME ADDITIONAL DATA
ALTER TABLE dbo.Account NOCHECK CONSTRAINT all;
ALTER TABLE dbo.Question NOCHECK CONSTRAINT all;
ALTER TABLE dbo.[Session] NOCHECK CONSTRAINT all;
ALTER TABLE dbo.TestCase NOCHECK CONSTRAINT all;
ALTER TABLE dbo.[Type] NOCHECK CONSTRAINT all;
INSERT INTO [dbo].[Account]
([Nick_Name],[Full_Name],[Account_Type],[Notes])
VALUES
('eliza2','Her Majesty Elizabeth II',99,'A Queen of GB');
INSERT INTO [dbo].[Type]
([Name],[Description],[Rights])
VALUES
('CoolGuy','The coolest guy on the district ever',77);
ALTER TABLE dbo.Account CHECK CONSTRAINT all;
ALTER TABLE dbo.Question CHECK CONSTRAINT all;
ALTER TABLE dbo.[Session] CHECK CONSTRAINT all;
ALTER TABLE dbo.TestCase CHECK CONSTRAINT all;
ALTER TABLE dbo.[Type] CHECK CONSTRAINT all;
SELECT * FROM dbo.Account;
SELECT * FROM dbo.[Type];
SELECT, реализующий внутреннее и внешнее (левое, правое и полное) объединение таблиц:
-- INNER JOIN --
SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]
FROM dbo.Account a JOIN dbo.[Type] t ON a.Account_Type = t.Id;
-- LEFT OUTER JOIN --
SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]
FROM dbo.Account a LEFT JOIN dbo.[Type] t ON a.Account_Type = t.Id;
-- RIGHT OUTER JOIN --
SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]
FROM dbo.Account a RIGHT JOIN dbo.[Type] t ON a.Account_Type = t.Id;
-- FULL OUTER JOIN --
SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]
FROM dbo.Account a FULL JOIN dbo.[Type] t ON a.Account_Type = t.Id;
SELECT, реализующий перекрестное объединение таблиц:
-- CROSS JOIN --
SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]
FROM dbo.Account a CROSS JOIN dbo.[Type] t;