SQL Server: 浅析SQL 表-初級

在本文中,我们将探讨不同类型的SQL表以及在SQLServer中创建用户定义表。

表是在关系数据库中是存储数据的主要对象。

我們常常使用Excel,它是可视化表格。 Excel电子表格以行[ROW]和列[COLUMN]的格式组织数据。 同样,关系数据库使用多个表来组织数据。

行:标识一条记录具有唯一性。 例如,第1行数据属于名为[Admin]的员工。 它不能为其他员工存储数据。

列:每一列定义表的一个属性。 例如,[FirstName]列存储所有员工的名字。 您不能在此列中存储[UserId]等其他数据。

表實例

假设我们在SQL数据库中需要[Employee]表。 此表存储公司的员工记录。 对于[EmpID]列,我们需要一个正数(不带任何小数点)。 在这种情况下,[integer]数据类型是最合适的。 将[EmpID]列定义为整数后,SQLServer不允许您插入任何不满足整数数据类型的值。 例如,您不能在[EmpID]列中插入字符串“WANG”。

创建SQL表

创建SQL表,基本步骤如下

1. 定义表的类型

2. 确定新表的目标数据库

3. 确定新表的模式SCHEMA

4. 定义表的列以及其类型

5. 定义列的属性,比如是否支持NULL,约束PK,FK,CHECK约束

6. 定义index聚集形clustered或非聚集形nonclustered

概括地说,要创建一个SQL表,我们应该有以下信息:

1. 目标数据库名称是什么?

2. 新表存储在哪个模式中?

3. 新表的列名是什么?

4. 列的数据类型是什么?

5. 列是否允许存储NULL值?

6. 使用主键列吗?如果是,哪一列将作为主键列?

7. 需要创建任何非聚集索引吗?

引用我們上面的例子,让我们使用回答这些问题来创建员工表。

答案1:目标数据库名称为[DemoDatabase]

答案2:表存储在默认的DBO模式中

答案3:[Employee]表应该有五列:[ID]、[FirstName]、[LastName]、[City]和[Birthday]

答案4:[Employee]表应使用以下数据类型。

[ID]:Integer

[FirstName]: Varchar(50) NOT NULL

[LastName]: Varchar(30) NOT NULL

[City]: Varchar[50] NULL

[Birthday]:DATE NOT NULL

答案 5 :上面定义的NULL属性

答案 6 :是的,[ID]列是主键列

答案 7 :不,只需要聚集索引

SQL表的类型

SQL Server表可分为以下几类。

System tables

SQL Server将实例配置和数据库属性存储在一组特殊的表中。这些表称为Systemtables。不允许用户直接更改这些表。SQL Server不允许直接查询特定的系统表。相反,它提供系统存储过程、函数、SQLServer管理对象和复制管理对象来查询这些组件。可以参考Microsoft文档以更详细地了解系统表。

Temporary tables

有时,需要将数据临时存储在数据库中,以便计算、操作或存储中间结果。在这些情况下可以利用始终保存在TempDB系统数据库中的临时表。

SQL Server有两种类型的临时表:

Local:每个本地临时表都以符号(#)开头。它的范围仅限于当前连接。一旦用户断开连接,SQLServer会自动删除这些表。

Global:每个全局临时表都以符号(##)开头。所有用户都可以引用全局临时表。如果所有引用全局表的用户都已连接,SQLServer将删除它。

-–TEMPORARYTable ( Local )

Create table #TableA

(

        ID int,

        [Name] varchar(50)

)

-–GlobalTemporary Table

Create table ##TableB

(

         ID int,

        [Name] varchar(50)

)

Permanentor user-defined table

用户可以根据自己的应用需求定义自己的表结构、列、数据类型、约束和索引。这些表称为用户定义表。

这些表始终存储在数据库中,除非有人明确删除它们。因此,这些也称为永久表。

在 SQL Server 中创建用户定义表有多种方法。

I. 使用ssms

II. 使用T-sql

-–Permanent Table

Create table TableA

(

        ID int,

        [Name] varchar(50)

)

Externaltables

外部表是一种特殊类型的表,可在SQL Server 2016 及更高版本中使用。这些表使用SQL Server 的 PolyBase 功能引用其他数据源,例如 Azure blob storage, Hadoop, Oracle,Excel, ODBC, Bigdata, MongoDB and Teradata。

分類

Graphtables

SQL Server 图形数据库使用不同nodes(顶点)和边edges(关系)的集合。

Graph 表

Node表: 有相同類型的集合。比如person Node表包含所有person節點

Edge表: 有相同類型的集合。比如friend表包含了所有person與person之間的所有鏈接Edge.

node table & edge table
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容