As a database developer, you need to create tables to store data. While creating tables in a relational database. You need to specify certain rules and constraints for columns that specify the kind of data to be stored. In addition, you need to specify the relationships between various tables.
If the table that you are creating needs to store a large volume of data, you can create partitioned table. This helps in improving the performance of the queries.
In addition to creating tables, you are responsible for managing tables. The management of tables involves modifying tables to add columns or to change the rules imposed on the table. It also involves deleting tables, when not required.
CREATE TABLE
[database_name . [ scheme_name ] .] table_name
({ <column_definition> | <computed_column_definition> }
[ <table_constraint> ] [ ,…n])
[ ON { partition_scheme_name (partition_column_name ) |
Filegroup
| “default” } ]
[ {TEXTIMAGE_ON { filegroup | “default” } ]
[ ; ]
Where
Consider the following example. The management of Adventure Works, Inc. needs to maintain the leave details of the employees. For this, you need to create a table, EmployeeLeave, in the HumanResources schema, with the following details.
EmployeeID int NOT NULL
LeaveStartDate date NOT NULL
LeaveEndDate date NOT NULL
LeaveReason Varchar(100) NOT NULL
LeaveType char(2) NOT NULL
You can use the following statement to create the table:
(
CREATE TABLE HumanResources.EmployeeLeave
LeaveStartDate datetime NOT NULL,
LeaveEndDate datetime NOT NULL,
LeaveReson varchar (100),
LeaveType char(2) NOT NULL
)
Apply constraints on columns
If the table that you are creating needs to store a large volume of data, you can create partitioned table. This helps in improving the performance of the queries.
In addition to creating tables, you are responsible for managing tables. The management of tables involves modifying tables to add columns or to change the rules imposed on the table. It also involves deleting tables, when not required.
Creating a Table
In SQL Server, programmer can create a table by using the CREATE TABLE statement. The syntax of the CREATE TABLE statement is:CREATE TABLE
[database_name . [ scheme_name ] .] table_name
({ <column_definition> | <computed_column_definition> }
[ <table_constraint> ] [ ,…n])
[ ON { partition_scheme_name (partition_column_name ) |
Filegroup
| “default” } ]
[ {TEXTIMAGE_ON { filegroup | “default” } ]
[ ; ]
Where
- database_name specifies the name of the database where the table is created if you do not specify a database name, the table is created in the current database.
- Schema_name specifies the schema name where the new table belongs. Schema is a logical group of database objects in a database. Schemas help in improving manageability of objects in a database.
- table_name specifies the new table name. The table name can be a maximum of 128 characters.
- Column_name specifies the name of the column and must be unique in the table. It can be a maximum of 128 characters.
- Computed_column_definition specifies the expression, which produces the value of the computed column. A computed column does not exist physically in the memory but it is used to generate a computed value. For example, if you have the order quantity stored in one column and the unit price in another column, you can use compute_column_definition to find the total price of the products. The following SQL query displays the use of computed_column_definition: totalPrice AS OrderQty * UnitPrice
- table_constraint is an optional keyword that specifies the PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY, or CHECK constraint.
- Partition_scheme_name specifies the partition scheme name that defines the file groups on which the partition of a table is mapped. Ensure that the partition scheme exist within the database.
- partition_column_name specifies the column name on which a partitioned table will be partitioned.
- TEXTIME_ON { filegroup | “default”} are keywords that specify that the text, ntext, image, xml, varchar (max), nvarcar (max), varbinary (max), and CLR user-defined type columns are stored on the specified filegroup. If there are no large value columns in the table, TEXTIMAGE_ON is not allowed.
Consider the following example. The management of Adventure Works, Inc. needs to maintain the leave details of the employees. For this, you need to create a table, EmployeeLeave, in the HumanResources schema, with the following details.
EmployeeID int NOT NULL
LeaveStartDate date NOT NULL
LeaveEndDate date NOT NULL
LeaveReason Varchar(100) NOT NULL
LeaveType char(2) NOT NULL
You can use the following statement to create the table:
(
CREATE TABLE HumanResources.EmployeeLeave
LeaveStartDate datetime NOT NULL,
LeaveEndDate datetime NOT NULL,
LeaveReson varchar (100),
LeaveType char(2) NOT NULL
)
Guidelines to Create Tables
When creating tables, programmer need to consider some guidelines like column names within a table must be unique, but the same column name can be used in different tables within a database. The table name can be of maximum 128 characters.Apply constraints on columns