SQL Server organized indexes in a table as B-tree structure, which look like this.
A table that has `clustered index` store actual data rows at leaf level.
A table that has `non-clustered index`, only store (at leaf level) the value from the indexed column and a `row locator` point to actual data rows. It does not store actual data rows.
Specifying Included Columns in `non-clustered index` tell SQL Server you want to store actual data rows at leaf level.
CREATE NONCLUSTERED INDEX IX_Employee_Department ON Employee(EmployeeFirstName) INCLUDE (EmployeeAddress, EmployeeDOB) GO
This example will create `non-clustered index` and its leaf level will store value from indexed column (EmployeeFirstName) and data rows from EmployeeAddress and EmployeeDOB columns.