CREATE TABLE (SQL Server Compact)

创建新的 Microsoft SQL Server Compact 表。

CREATE TABLE table_name 
   ( { < column_definition > | < table_constraint > } [ ,...n ] 
   ) 
< column_definition > ::= 
   { column_name data_type } 
   [ { DEFAULT constant_expression 
      | [ IDENTITY [ ( seed , increment ) ]
      ]
    } ] 
   [ ROWGUIDCOL ] 
   [ < column_constraint > [ ...n ] ]
< column_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ NULL | NOT NULL ] 
      | [ PRIMARY KEY | UNIQUE ] 
      | REFERENCES ref_table [ ( ref_column ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ] 
      [ ON UPDATE { CASCADE | NO ACTION } ] 
    }
< table_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ { PRIMARY KEY | UNIQUE } 
      { ( column [ ,...n ] ) } 
      ]
   | FOREIGN KEY 
     ( column [ ,...n ] )
      REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ]
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }
table_name

新表的名称。表名称必须符合标识符规则。table_name 在数据库中必须是唯一的。table_name 最多可包含 128 个字符。

column_name

表中列的名称。列名称必须符合标识符规则,并且在表中必须是唯一的。

注意注意

SQL Server Compact 数据库中的列名称不得以“__sys”开头。例如,不得使用 __sysobjects 作为列名称。

data_type

指定列的数据类型。有关数据类型的信息,请参阅数据类型和 RDA

DEFAULT

指定在插入操作中没有显式提供值时为该列提供的值。除了 IDENTITY 属性定义的列之外,DEFAULT 定义可应用于任何列。删除表时将删除 DEFAULT 定义。常量值可用作默认值。

IDENTITY

指示新列是标识列。在为表添加新行时,SQL Server Compact 将为列提供唯一的增量值。标识列通常与 PRIMARY KEY 约束结合使用以作为表的唯一行标识符。IDENTITY 属性只能分配给int 列。每个表只能创建一个标识列。标识列无法使用绑定默认值和 DEFAULT 约束。必须同时指定种子和增量,或者不指定任何值。如果不指定任何值,则默认为 (1,1)。

seed

向表中加载第一行时所使用的值。

increment

加到所加载的上一行的标识值上的增量值。

ROWGUIDCOL

指示新列是行全局唯一标识符列。每个表只有一个 uniqueidentifier 列可以指派为 ROWGUIDCOL 列。ROWGUIDCOL 属性只能分配给uniqueidentifier 列。

ROWGUIDCOL 自动为插入到表中的新行生成值。

CONSTRAINT

指示 PRIMARY KEYUNIQUEFOREIGN KEY 约束定义开始的可选关键字。约束是强制执行数据完整性并创建表及其列的特殊类型索引的特殊属性。

constraint_name

约束的名称。constraint_name 为可选参数,在数据库中必须是唯一的。如果没有指定 constraint_name,SQL Server Compact 会生成一个约束名。

NULL | NOT NULL

用于指定列中是否允许空值的关键字。从严格意义上讲,NULL 不是一个约束,但可以使用指定NOT NULL 相同的方法来指定。

PRIMARY KEY

通过使用唯一的索引对特定列强制执行实体完整性的约束。每个表只能创建一个 PRIMARY KEY 约束。

UNIQUE

通过使用唯一的索引提供特定列的实体完整性的约束。UNIQUE 约束中的列可以为 NULL,但每一列只允许一个 NULL 值。一个表可以包含多个UNIQUE 约束。

注意注意

SQL Server Compact 可以使用索引强制执行 PRIMARY KEYUNIQUE 约束。我们建议您不要依赖于这种行为,也不要尝试修改由约束创建的任何索引。

FOREIGN KEY...REFERENCES

为列中的数据提供引用完整性的约束。FOREIGN KEY 约束要求列中的每个值都存在于所引用表的指定的列中。

ref_table

FOREIGN KEY 约束所引用的表的名称。

( ref_column [ ,... n ] )

FOREIGN KEY 约束所引用的表中的一列或多列。

ON DELETE {CASCADE | NO ACTION}

指定当创建的表中的行具有引用关系并且从父表中删除该行所引用的行时,要对该行采取的操作。默认设置为 NO ACTION

如果指定 CASCADE,则从父表中删除被引用的行时,也将从引用表中删除具有引用关系的行。如果指定NO ACTION,SQL Server Compact 将返回一个错误,并且回滚父表中所引用行上的删除操作。

ON UPDATE {CASCADE | NO ACTION}

指定当创建的表中的行具有引用关系并且在父表中更新该行所引用的行时,要对该行采取的操作。默认设置为 NO ACTION

如果指定 CASCADE,则在父表中更新被引用的行时,也将在引用表中更新具有引用关系的行。如果指定NO ACTION,SQL Server Compact 将返回一个错误,并且回滚父表中所引用行上的更新操作。

column

用括号括起来的一列或多列,在表约束中表示这些列用在约束定义中。

列定义

在创建表时,必须指定至少一个列定义。

约束

  • PRIMARY KEY 约束

    • 一个表只能包含一个 PRIMARY KEY 约束。

    • 每个 PRIMARY KEY 都生成一个索引。

    • 在 PRIMARY KEY 约束内定义的所有列都必须定义为 NOT NULL。如果未指定为空性,加入 PRIMARY KEY 约束的所有列的为空性都将设置为 NOT NULL。

  • UNIQUE 约束

    • 每个 UNIQUE 约束都生成一个索引。

  • FOREIGN KEY 约束

    • 如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在;否则,将返回违反外键约束的错误消息。

    • FOREIGN KEY 约束可以引用同一表中的其他列,且引用为自我引用。但是,FOREIGN KEY 约束不能用于创建自我引用或循环的 FOREIGN KEY 约束。

    • 列级 FOREIGN KEY 约束的 REFERENCES 子句仅能列出一个引用列。该列必须与定义约束的列具有相同的数据类型。

    • 表级 FOREIGN KEY 约束的 REFERENCES 子句中引用列的数目必须与约束列的列表中的列数相同。每个引用列的数据类型也必须与列的列表中相应列的数据类型相同。

    • FOREIGN KEY 约束只能引用被引用表的 PRIMARY KEY 或 UNIQUE 约束中的列。FOREIGN KEY 约束不能引用唯一索引。

  • 其他约束信息

    • 为约束创建的索引不能用 DROP INDEX 语句删除。必须用 ALTER TABLE DROP CONSTRAINT 语句删除约束。

    • 约束名必须符合标识符规则,但其名称的首字符不能以数字号 (#) 开头。如果没有提供 CONSTRAINT 关键字和constraint_name,将为约束分配系统生成的名称。

    • INSERTUPDATEDELETE 语句中违反约束时,将终止该语句。

DEFAULT 定义

每列只能有一个 DEFAULT 定义。这可以包含常量值或常量函数。

表定义中的为空性规则

列的为空性用于确定在该列中是否允许以空值 (NULL) 作为其数据。NULL 不是零或空白。它表示没有输入任何内容,或提供了一个显式 NULL 值,通常表示该值未知或不适用。

下面的示例用于显示如何完成下列各项操作:

  1. 使用标识列作为 PRIMARY KEY 创建具有两列的表。

  2. 使用 PRIMARY KEY 约束创建具有一列的表。

  3. 创建一个表,使其中的一个列引用另一个表中的列。

CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))
CREATE TABLE MyCustomers2 (CustID int CONSTRAINT pkCustId PRIMARY KEY)
CREATE TABLE MyOrders (OrderID int, CustID int REFERENCES MyCustomers(CustID))


http://msdn.microsoft.com/zh-cn/library/ms173393%28SQL.110%29.aspx



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server Compact Edition (SQLCE) 是一种嵌入式数据库引擎,它支持以下常见的 SQL 命令和功能: 1. 数据定义语言 (DDL) 命令: - CREATE TABLE:用于创建新表。 - ALTER TABLE:用于修改现有表的结构。 - DROP TABLE:用于删除表。 - CREATE INDEX:用于创建索引。 2. 数据操作语言 (DML) 命令: - SELECT:用于从一个或多个表中检索数据。 - INSERT INTO:用于向表中插入新行。 - UPDATE:用于更新表中的现有行。 - DELETE FROM:用于从表中删除行。 3. 数据控制语言 (DCL) 命令: - GRANT:用于授予用户或角色特定的权限。 - REVOKE:用于撤销用户或角色的权限。 4. 事务控制命令: - BEGIN TRANSACTION:用于开始一个事务。 - COMMIT:用于提交事务并永久保存更改。 - ROLLBACK:用于回滚事务并撤销更改。 SQLCE 还支持以下功能: 1. 表关联:通过使用 JOIN 关键字,可以在多个表之间建立关联,从而允许在查询中检索相关数据。 2. 聚合函数:SQLCE 支持常见的聚合函数,如 SUM、AVG、COUNT、MIN 和 MAX,用于对数据进行计算和统计。 3. 子查询:可以在一个查询中嵌套另一个查询,以便在内部查询的结果上执行操作。 4. 视图:可以创建虚拟表来简化复杂查询,视图是基于一个或多个表的查询结果。 5. 索引:可以创建索引来提高查询性能,加快数据检索速度。 6. 触发器:可以在表上定义触发器,以便在特定事件发生时自动执行一些操作。 请注意,SQLCE 是一个轻量级的数据库引擎,与 SQL Server 的功能集有所不同。如果需要更高级的功能,可能需要考虑使用 SQL Server 或其他成熟的数据库管理系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值