表结构的创建、修改和删除
1>表结构的创建
例1
为 sales 数据库创建一个销售人员表 Salers ,它包括销售人员编号 (SaleID) 、姓名 (SaleName) 、性别 (Sex) 、出生日期 (Birthday) 、雇用日期 (HireDate) 、地址 (Address) 、电话 (telephone) 、备注 (Note) 字段,其中 SaleID 、 SaleName 这两列不允许为空。
CREATE TABLE salers
(SaleID char(3) NOT NULL,
SaleName char(8) NOT NULL,
Sex char(2),
Birthday datetime,
HireDate datetime,
Address char(60),
Telephone char(13),
Note char(200)
)
注意: NOT NULL 参数指出了该字段是不可以为空的。和他相对的还有一个 NULL( 指出了字段可以为空 ) 。
例 2
为 sales 数据库创建订单表 Orders ,包括 OrderID 、 CustomerID 、 SaleID 和 OrderDate 字段,其中 OrderID 为标识列,起始值为 10248 ,增值为 1 ; CustomerID 和 SaleID 字段不允许为空值; OrderDate 字段的默认值为当前日期。
CREATE TABLE Orders
(OrderID int IDENTITY(10248,1),
CustomerID char(3) NOT NULL,
SaleID char(3) NOT NULL,
OrderDate datetime DEFAULT getdate()
)
注: getdate() 是系统函数,返回系统当前日期。
Orders 表有一个标识列 OrderID ,该列以 10248 为起始值,以 1 为增值,因此在插入数据时,用户不需提供该列的值, SQL Server 自动填充该列,该列的值依次是 10248 , 10249 , 10250……
Orders 表中 OrderDate 列带有默认值,因此当用户插入数据时,如果没有给该列提供值, SQL Server 就自动用默认值填充该列。默认值为系统当前日期。
例 3
为 sales 数据库在文件组 USER1 上创建类别 Categories 表。
CREATE TABLE Categories
(CategoryID int NOT NULL,
CategoryName nvarchar(15),
Description nvarchar(200)
)
ON USER1
注意:文件组 USER1 必须已经定义。在前两例中没有使用 ON 关键字指出文件组,则表存储在默认的文件组中。
2> 表结构的修改
例 1
sales 数据库中的 Customers 表包含 CustomerID , CompanyName 和 ConnectName 三个字段,现为该表添加公司地址 (Address) 、邮政编码 (ZipCode) 、和电话号码字段 (Telephone) 。
EXEC sp_addtype telephone_code,’varchar(15)’,’NULL’
EXEC sp_addtype zip,’char(6)’,’NOT NULL’
GO
ALTER TABLE Customers
ADD Address char(40),ZipCode zip,Telephone telephone_code
在该列中,添加的 ZipCode 和 Telephone 字段的数据类型为用户自定义数据类型。
例 2
将表 Salers 中的 Sex 列删除。
ALTER TABLE Salers
DROP COLUMN Sex
例 3
将 Salers 表中的 Address 字段的长度改为 30 ,并且不能为空。
ALTER TABLE Salers
ALTER COLUMN Address varchar(30) NOT NULL
注意:只能修改列的数据类型,以及列值是否为空。
3> 表结构的删除
例:
删除当前数据库中一个名为 example1 的表。
DROP TABLE example1
1>表结构的创建
例1
为 sales 数据库创建一个销售人员表 Salers ,它包括销售人员编号 (SaleID) 、姓名 (SaleName) 、性别 (Sex) 、出生日期 (Birthday) 、雇用日期 (HireDate) 、地址 (Address) 、电话 (telephone) 、备注 (Note) 字段,其中 SaleID 、 SaleName 这两列不允许为空。
CREATE TABLE salers
(SaleID char(3) NOT NULL,
SaleName char(8) NOT NULL,
Sex char(2),
Birthday datetime,
HireDate datetime,
Address char(60),
Telephone char(13),
Note char(200)
)
注意: NOT NULL 参数指出了该字段是不可以为空的。和他相对的还有一个 NULL( 指出了字段可以为空 ) 。
例 2
为 sales 数据库创建订单表 Orders ,包括 OrderID 、 CustomerID 、 SaleID 和 OrderDate 字段,其中 OrderID 为标识列,起始值为 10248 ,增值为 1 ; CustomerID 和 SaleID 字段不允许为空值; OrderDate 字段的默认值为当前日期。
CREATE TABLE Orders
(OrderID int IDENTITY(10248,1),
CustomerID char(3) NOT NULL,
SaleID char(3) NOT NULL,
OrderDate datetime DEFAULT getdate()
)
注: getdate() 是系统函数,返回系统当前日期。
Orders 表有一个标识列 OrderID ,该列以 10248 为起始值,以 1 为增值,因此在插入数据时,用户不需提供该列的值, SQL Server 自动填充该列,该列的值依次是 10248 , 10249 , 10250……
Orders 表中 OrderDate 列带有默认值,因此当用户插入数据时,如果没有给该列提供值, SQL Server 就自动用默认值填充该列。默认值为系统当前日期。
例 3
为 sales 数据库在文件组 USER1 上创建类别 Categories 表。
CREATE TABLE Categories
(CategoryID int NOT NULL,
CategoryName nvarchar(15),
Description nvarchar(200)
)
ON USER1
注意:文件组 USER1 必须已经定义。在前两例中没有使用 ON 关键字指出文件组,则表存储在默认的文件组中。
2> 表结构的修改
例 1
sales 数据库中的 Customers 表包含 CustomerID , CompanyName 和 ConnectName 三个字段,现为该表添加公司地址 (Address) 、邮政编码 (ZipCode) 、和电话号码字段 (Telephone) 。
EXEC sp_addtype telephone_code,’varchar(15)’,’NULL’
EXEC sp_addtype zip,’char(6)’,’NOT NULL’
GO
ALTER TABLE Customers
ADD Address char(40),ZipCode zip,Telephone telephone_code
在该列中,添加的 ZipCode 和 Telephone 字段的数据类型为用户自定义数据类型。
例 2
将表 Salers 中的 Sex 列删除。
ALTER TABLE Salers
DROP COLUMN Sex
例 3
将 Salers 表中的 Address 字段的长度改为 30 ,并且不能为空。
ALTER TABLE Salers
ALTER COLUMN Address varchar(30) NOT NULL
注意:只能修改列的数据类型,以及列值是否为空。
3> 表结构的删除
例:
删除当前数据库中一个名为 example1 的表。
DROP TABLE example1
转载于:https://blog.51cto.com/gc319/91647