数据库——《数据定义》

本文详细介绍了如何在SQL Server中使用CREATE TABLE语句创建表,包括列定义、主键约束和外键约束,同时讲解了TRUNCATE TABLE的高效特性及其与DELETE的区别。涵盖了数据库设计和管理的基础知识。
摘要由CSDN通过智能技术生成

表用于在数据库中存储数据。 表在数据库和模式中唯一命名。 每个表包含一个或多个列。 每列都有一个相关的数据类型,用于定义它可以存储的数据类型,例如:数字,字符串和日期。要创建新表,请使用 CREATE TABLE 语句,如下所示:
在这里插入图片描述

在上面的语法中,首先,指定创建表的数据库的名称。database_name 必须是现有数据库的名称。 如果未指定,则database_name 默认为当前数据库。其次, schema_name 指定新表所属的模式。第三,table_name 指定新表的名称。第四,每个表应该有一个由一列或多列组成的主键。通常,首先列出主键列,然后列出其他列。如果主键只包含一列,则可以在列名后使用 PRIMARY KEY 关键字。如果主键由两列或更多列组成,则需要将 PRIMARY KEY 约束指定为表约束。每个列都在语句中的名称后面指定了关联的数据类型。列可能具有一个或多个列约束,例如: NOT NULL 和 UNIQUE。第五,表可能在表约束部分中指定了一些约束,例如: FOREIGN KEY , PRIMARY KEY , UNIQUE和 CHECK。请注意, CREATE TABLE 可以很复杂,并且具有比上述语法更多的选项。
SQL Server CREATE TABLE示例以下语句创建一个名为 visits 的新表来跟踪客户的店内访问:
在这里插入图片描述

在这个示例中:因为没有明确指定创建表的数据库名称,所以在 bb_stores 数据库中创建了 visits 表。但是已经明确指定模式,因此,在 sales 模式中创建了 visits 表。visits 表中定义了 6 列,下面来看每一列的简介描述:visit_id 列是表的主键列。IDENTITY(1,1) 指示SQL Server自动生成从 1 开始的列的整数,并为每个新行递增 1 。first_name 和 last_name 列是 VARCHAR 类型的字符串列。 这些列最多可以存储 50 个字符。visited_at 是 DATETIME 数据类型的列,记录客户访问商店的日期和时间。phone 列是一个接受 NULL 的 VARCHAR 字符串列。store_id 列存储标识客户访问商店的标识号。表定义的末尾是 FOREIGN KEY 约束。 此外键确保 visit 表的 store_id 列中的值必须在 stores表的 store_id 列中可用。可在后续教程中了解有关 FOREIGN KEY 约束的更多信息。
TRUNCATE TABLE 类似于没有 WHERE 子句的 DELETE 语句。 但是, TRUNCATE 语句执行得更快,并且使用的系统和事务日志资源更少。TRUNCATE TABLE与DELETE比较与 DELETE 语句相比, TRUNCATE TABLE 具有以下优点:

  1. 使用较少的事务日志 DELETE 语句一次删除一行,并在事务日志中为每个删除的行插入一个条目。另一方面,TRUNCATE TABLE 语句通过释放用于存储表数据的数据页来删除数据,并仅在事务日志中插入页面解除分配。
  2. 使用更少的锁 使用行锁执行 DELETE 语句时,表中的每一行都被锁定以便删除。TRUNCATE TABLE 锁定表和页,而不是每一行。
  3. 标识重置 如果要截断的表具有标识列,则当使用 TRUNCATE TABLE 语句删除数据后,具有标识列的计数器将重置为开始的值(一般是: 1 )。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值