[ database_name .] table_name
( { <column_definition> }
[ <table_constraint> ] [,...n ] )
[ ; ]
<column_definition> ::=
columu_name <data_type>
[ NULL | NOT NULL ]
[ [ CONSTRAINT constraint_name ] DEFAULT contant_expression ]
| [ IDENTITY [ ( seed , increment ) ] ]
[ ROWGUIDCOL ] [ <column_constraint> [ ...n] ]
<column_constraint> ::=
[ CONSTRAINT contraint_name ]
{ { PRIMARY KEY | UNIQUE}
[ CLUSTERED | NONCLUSTERED ]
| [ FOREIGN KEY ]
| CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}
/**
参数说明:
table_name : 要创建的表的名称。
column_definition: 字段定义。
table_constraint: 表约束定义。
column_name : 字段的名称。
IDENTITY: 自动增长列,其中seed为基数,increment为增长步长。
表约束定义主要参数:
NULL 和 NOT NULL :限制字段可以为NULL(空),或者不能为NOT NULL(非空)。
PRIMARY KEY : 设置字段的主键。
CLUSTERED和NONCLUSTERED : 创建聚集索引或者非聚集索引。
UNIQUE : 设置字段值唯一。
CHECK : 设置CHECK约束。
logical_ CHECK约束检查的逻辑表达式。
提示:
在创建表之前,最好先在纸上画出其轮廓。此时要考虑的内容主要有:
1、表中要存储的数据类型。
2、表中需要的列以及每一列的类型、列的长度。
3、列是否可以为空。
4、是否需要在列上使用约束、默认值和规则。
*/
go
create table demoTB
(
Tid int identity(1,1) not null, /* identity自动增长*/
Tname char(10) not null,
Tmodel char(6) null,
Tprice float null)
修改表结构的规则和示例
*/
ADD [column_name date_type ]
[PRIMARY KEY | CONSTRAINT ]
[FOREIGE KEY (column_name)
REFERENCES ref_table(ref_column)]
DROP [ CONSTRAINT ] constraint_name | COLUMN column_name
/**
各参数的含义如下
ADD 字句 增加字段。
DROP 字句 删除字段或者约束。其中CONSTRAINT 表示删除约束;COLUMN表示删除字段。
例如:修改表中的Tname列,将其最大长度改为15个字符,且不允许为空。
*/
GO
ALTER TABLE demoTB
ALTER COLUMN Tname char(15) NOT NULL
GO
/**
向demoTB表中添加Taddress(产地)列,字段类型为字符型可变长,可以为空。
*/
GO
ALTER TABLE demoTB
ADD Taddress varchar(50) NULL
GO
/**
删除一个表中的一个列。
*/
USE test
GO
ALTER TABLE demoTB
DROP COLUMN Tadress
GO
/**
查看表的定义,可用系统的存储过程SP_help
使用sp-help的方法是在sp_help后面加上要查看的表名作为参数。
*/
GO
EXEC sp_help demoTB
GO
/**
可以使用系统存储过程sp_helpconstraint查看表上定义的约束。
*/
GO
EXEC sp_helpconstraint demoTB
GO
/**
INSERT添加数据的基本语法为:
*/
Table_or_view[ (column_lise ) ]
{ data_values | select...}
/**
参数说明:
INTO:将新的数据存储在表或者视图中。
Table_or_view: 要插入的表或者视图的名称。
data_values: 待插入的数据。
*/
GO
INSERT INTO demoTB VALUSE('苹果电脑','家电','5000')
GO
/**
提示:
由于demoTB表的列为IDENTITY(自动增长),所以在命令中不给Tid列赋值。
如果赋值,将报一下错误信息:仅当使用了列列表并且IDENTITY_INSERT为ON时,
才能为表demoTB中的标识列指定显式值。
*/
/**
修改数据简要语法
*/
SET column_name = expression
[ WHERE logical_expression]
/**
各参数的含义:
column_name = expression :将右边表达式的值赋给左边的列。
logical_expression : 条件表达式。
使用UPDATE...SET,可以更新数据库中原有的数据,SET 字句为被修改列和修改后的数据,
如果没有条件限制(如没有WHERE字句等),表中所有行的指定列将被修改为SET后面的新数据。
新数据可以为常量,也可以为表达式。
例如:demoTB表中的记录,将其Tname为"苹果电脑"的Tmodel列值改为"白色家电"。
*/
GO
UPDATE demoTB
SET Tmodel='白色家电'
WHERE Tname='苹果电脑'
GO