SQL的数据定义(上)

SQL的数据定义(上):

SQL Server数据类型

Character 字符串:

 

Unicode 字符串:

 

VARCHARNVARCHAR比较:

 

Binary 类型:

 

Number 数字类型:

 

 

Date 类型:

 

其他数据类型(了解):

 

数据库表:

 er图:

 

A、SQL Server创建表

 CREATE TABLE语句简介:

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

 

在上面的语法中,

  1. 首先,指定创建表的数据库的名称。 database_name 必须是现有数据库的名称。 如果未指定,则 database_name 默认为当前数据库。
  2.  其次, schema_name 指定新表所属的模式。
  3.  第三, table_name 指定新表的名称。
  4.  第四,每个表应该有一个由一列或多列组成的主键。 通常,首先列出主键列,然后列出其他列。 如果主键只包含一列,则可以在列名后使用 PRIMARY KEY 关键字。 如果主键由两列或更多列组 成,则需要将 PRIMARY KEY 约束指定为表约束。 每个列都在语句中的名称后面指定了关联的数据 类型。 列可能具有一个或多个列约束,例如: NOT NULL 和 UNIQUE 。
  5. 第五,表可能在表约束部分中指定了一些约束,例如: FOREIGN KEY , PRIMARY KEY , UNIQUE 和 CHECK 。

请注意, CREATE TABLE 可以很复杂,并且具有比上述语法更多的选项。 SQL Server CREATE TABLE示例:

 以下语句创建一个名为 visits 的新表来跟踪客户的店内访问:

 

在这个示例中:

因为没有明确指定创建表的数据库名称,所以在 bb_stores 数据库中创建了 visits 表。

 但是已经明确指定模式,因此,在 sales 模式中创建了 visits 表。

 visits 表中定义了 6 列,下面来看每一列的简介描述:

  1. visit_id 列是表的主键列。 IDENTITY(1,1) 指示SQL Server自动生成从 1 开始的列的整数,并 为每个新行递增 1 。
  2. first_name 和 last_name 列是 VARCHAR 类型的字符串列。 这些列最多可以存储 50 个字符。 visited_at 是 DATETIME 数据类型的列,记录客户访问商店的日期和时间。
  3.  phone 列是一个接受 NULL 的 VARCHAR 字符串列。
  4.  store_id 列存储标识客户访问商店的标识号。
  5.  表定义的末尾是 FOREIGN KEY 约束。 此外键确保 visit 表的 store_id 列中的值必须在 stores 表的。 store_id 列中可用。可在后续教程中了解有关 FOREIGN KEY 约束的更多信息。

SQL CREATE TABLE 语句

CREATE TABLE 语句

CREATE TABLE 语句用于创建数据库中的表。

SQL CREATE TABLE 语法

 

数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:

 

SQL CREATE TABLE 实例

本例演示如何创建名为 "Person" 的表。

该表包含 5 个列,列名分别是:"Id_P"、"LastName"、"FirstName"、"Address" 以及 "City":

 

Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。

空的 "Persons" 表类似这样:

 

可使用 INSERT INTO 语句向空表写入数据。

A、SQL Server复制表

 SQL Server中,如果目标表存在:

 

 SQL Server中,,如果目标表不存在:

 

B、SQL Server标识列

 要为表创建标识列,请使用 IDENTITY 属性,如下所示:

 

 在上面语法中,

  1. seed 是表中的第一行的值(第一条记录标识列使用的值)。
  2. increment 是添加到上一行标识值的增量值。

seed 和 increment 的默认值是 1 ,即 (1,1) 。表示加载到表中的第一行的值为: 1 ,第二行的值为: 2 (在上一行: 1 的基础上加 1 ),依此类推。

假设,希望第一行的标识列的值为 10 ,增量值为 2 ,可使用以下语法:

 

SQL Server允许每个表只有一个标识列。

创建一个名为 hr 的新模式用来练习:

 

以下语句在个人标识号( person_id )列上使用 IDENTITY 属性创建新表:

 

重用标识值:

 SQL Server不能重用标识值。 如果在标识列中插入行并且执行 insert 语句失败或回滚,则标识值将丢 失,并且不会再次生成。

 这会导致标识列中出现空白。

方法一:

使用Truncate ,

TRUNCATE TABLE name 可以删除表内所有值并重置标识值 ,但是表内的数据将丢失。

方法二:

你想要重置标识值(不删除数据)采用下面方法即可:

1. DBCC CHECKIDENT ('表名', RESEED, new_value)(重置新的标识值,new_value为新值) ;

2. select IDENT_CURRENT('a') 当前表标识列的最大值;

3. select @@IDENTITY 当前标识列的最大值。

C. SQL Server向表添加列

ALTER TABLE ADD 语句将一个或多个列添加到表中。

以下 ALTER TABLE ADD 语句将新列添加到表中:

 

在上面语句中:

首先, table_name 指定要添加新列的表的名称。

其次, column_name 指定列的名称, data_type 表示数据类型, column_constraint 表示约束(如果 适用)。

如果要使用单个 ALTER TABLE 语句一次向表中添加多个列,请使用以下语法:

 

在此语法中,指定要在 ADD 子句之后添加到表中,以逗号分隔的列列表。

SQL Server ALTER TABLE ADD列示例

以下语句创建一个名为 sales.quotations 的新表:

 

要将名为 description 的新列添加到 sales.quotations 表,请使用以下语句:

 

以下语句将两个名为 amount 和 customer_name 的新列添加到 sales.quotations 表中:

 

SQL ALTER TABLE 语句

ALTER TABLE 语句

ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

SQL ALTER TABLE 语法

如需在表中添加列,请使用下列语法:

 

要删除表中的列,请使用下列语法:

 

注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。

要改变表中列的数据类型,请使用下列语法:

 

原始的表 (用在例子中的):

Persons 表:

 

SQL ALTER TABLE 实例

 

现在,我们希望在表 "Persons" 中添加一个名为 "Birthday" 的新列。

我们使用下列 SQL 语句:

 

请注意,新列 "Birthday" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。

新的 "Persons" 表类似这样:

 

改变数据类型实例

现在我们希望改变 "Persons" 表中 "Birthday" 列的数据类型。

我们使用下列 SQL 语句:

 

请注意,"Birthday" 列的数据类型是 year,可以存放 2 位或 4 位格式的年份。

DROP COLUMN 实例

接下来,我们删除 "Person" 表中的 "Birthday" 列:

 

Persons 表会成为这样:

 

以上就是我最近整理的新的知识内容,现在分享给你们,希望可以帮助到你们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值