SQLite:CREATE TABLE

前端之家收集整理的这篇文章主要介绍了SQLite:CREATE TABLE前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

create-table-stmt:

<a href=Syntax diagram create-table-stmt" src="http://www.sqlite.org/images/Syntax/create-table-stmt.gif">

column-def:

<a href=Syntax diagram column-def" src="http://www.sqlite.org/images/Syntax/column-def.gif">

type-name:

<a href=Syntax diagram type-name" src="http://www.sqlite.org/images/Syntax/type-name.gif">

column-constraint:

<a href=Syntax diagram column-constraint" src="http://www.sqlite.org/images/Syntax/column-constraint.gif">

table-constraint:

<a href=Syntax diagram table-constraint" src="http://www.sqlite.org/images/Syntax/table-constraint.gif">

foreign-key-clause:

<a href=Syntax diagram foreign-key-clause" src="http://www.sqlite.org/images/Syntax/foreign-key-clause.gif">

“CREATE TABLE”命令用来创建一个sqlite数据库中的一个新表。 一个CREATE TABLE命令用来指定新表中的下列属性

  • @H_301_51@新表的名称

  • @H_301_51@创建新表@H_301_51@的数据库@H_301_51@。 @H_301_51@表格可@H_301_51@创建@H_301_51@在主数据库,临时数据库,或在任何附加的数据库中。

  • @H_301_51@表中的每一列的名称

  • @H_301_51@表中的每一列的声明类型。

  • @H_301_51@表中的每一列的默认值或表达式。

  • @H_301_51@表的默认排序方式。

  • @H_301_51@一个表的主键, @H_301_51@无论是单个列或是复合(多列)主键。

  • @H_301_51@表的约束。 @H_301_51@ sqlite支持UNIQUE,NOT NULL,CHECK以及FOREIGN KEY@H_301_51@约束。

@H_301_51@每个CREATE TABLE语句中必须指定一个新表的名称。 @H_301_51@表名以@H_301_51@“sqlite_”@H_301_51@开始的@H_301_51@预留@H_301_51@为内部使用。@H_301_51@尝试创建一个表的名称以“sqlite_”开始的表@H_301_51@是一个错误

@H_301_51@如果一个<database-name>@H_301_51@已经被指定@H_301_51@,则它必须不可以是"main","temp"@H_301_51@,或一个附加的数据库名称。 @H_301_51@在这种情况下,新表才会被创建在指定的数据库中。 @H_301_51@如果"TEMP" or "TEMPORARY" @H_301_51@关键字出现在 "CREATE" 和"TABLE"@H_301_51@之间,那么新表将会创建在临时数据库。 @H_301_51@指定<database-name>,并且出现TEMP或TEMPORARY关键字是错误的,除非<database-name>是“temp@H_301_51@”。 @H_301_51@如果没有指定数据库名称并且TEMP关键字不存在,那么该表是建立在主数据库中的。

尝试创建一个与@H_301_51@数据库中已经存在一个表、索引或视图同名的新表,通常是错误的。@H_301_51@但是,如果@H_301_51@CREATE TABLE语句中存在@H_301_51@“IF NOT EXISTS”子句,表或视图的名称已经存在,CREATE TABLE命令则根本没有效果(并且不会返回错误消息)。 但是即使是“IF NOT EXISTS”子句已被指定,数据库中存在同名索引时,新表仍然无法创建,同时返回一个错误消息。

可以创建一个和现有的触发器同名的新表,这不是一个错误

可以使用DROP TABLE语句删除表。

猜你在找的Sqlite相关文章