撰写时间:2022 年 4 月 27日

               SQLServer创建表和添加列

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

Create table [database_name.][schema_name.]table_name (
pk_column data_type primary key,
column_1 data_type not null,
column_2 data_type,
…,
Table_constraints
);

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

SQL Server CREATE TABLE示例
以下语句创建一个名为 visits 的新表来跟踪客户的店内访问:
CREATE TABLE sales.visits (
visit_id INT PRIMARY KEY IDENTITY (1, 1),
first_name VARCHAR (50) NOT NULL,
last_name VARCHAR (50) NOT NULL,
visited_at DATETIME, phone VARCHAR(20),
store_id INT NOT NULL,
FOREIGN KEY (store_id) REFERENCES sales.stores (store_id)
);
在这个示例中:
因为没有明确指定创建表的数据库名称,所以在 bb_stores 数据库中创建了 visits 表。但是已经明确指定模式,因此,在 sales 模式中创建了 visits 表。
visits 表中定义了 6 列,下面来看每一列的简介描述:
1、visit_id 列是表的主键列。 IDENTITY(1,1) 指示SQL Server自动生成从 1 开始的列的整数,并为每个新行递增 1 。2、 first_name 和 last_name 列是 VARCHAR 类型的字符串列。 这些列最多可以存储 50 个字符。3、visited_at 是 DATETIME 数据类型的列,记录客户访问商店的日期和时间。4、phone 列是一个接受 NULL 的 VARCHAR 字符串列。5、store_id 列存储标识客户访问商店的标识号。6、表定义的末尾是 FOREIGN KEY 约束。 此外键确保 visit 表的 store_id 列中的值必须在 stores表的 store_id 列中可用。可在后续教程中了解有关 FOREIGN KEY 约束的更多信息。
SQL Server标识列:
要为表创建标识列,请使用 IDENTITY 属性,如下所示:
IDENTITY[(seed,increment)]
在上面语法中,
seed 是表中的第一行的值(第一条记录标识列使用的值)。 increment 是添加到上一行标识值的增量值。seed 和 increment 的默认值是 1 ,即 (1,1) 。表示加载到表中的第一行的值为: 1 ,第二行的值为:2 (在上一行: 1 的基础上加 1 ),依此类推。
假设,希望第一行的标识列的值为 10 ,增量值为 2 ,可使用以下语法:
IDENTITY (10,2)
注:第一条记录标识列的值是:10,第二条记录标识列的值是:12,第三条记录标识列的值为:14,依此类推。

SQL Server允许每个表只有一个标识列。
创建一个名为 hr 的新模式用来练习:
CREATE SCHEMA hr;
以下语句在个人标识号( person_id )列上使用 IDENTITY 属性创建新表:
CREATE TABLE hr.person (
person_id INT IDENTITY(1,1) PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
gender CHAR(1) NOT NULL
);
重用标识值
SQL Server不能重用标识值。 如果在标识列中插入行并且执行 insert 语句失败或回滚,则标识值将丢失,并且不会再次生成。这会导致标识列中出现空白。
方法一:
使用Truncate
TRUNCATE TABLE name 可以删除表内所有值并重置标识值 ,但是表内的数据将丢失。
方法二:
你想要重置标识值(不删除数据)采用下面方法即可:

  1. DBCC CHECKIDENT (‘表名’, RESEED, new_value)(重置新的标识值,new_value为新值) 2. select IDENT_CURRENT(‘a’) 当前表标识列的最大值
  2. select @@IDENTITY 当前标识列的最大值

SQL Server向表添加列:
ALTER TABLE ADD 语句将一个或多个列添加到表中。
以下 ALTER TABLE ADD 语句将新列添加到表中:
ALTER TABLE table_name ADD column_name data_type column_constraint;
在上面语句中:
首先, table_name 指定要添加新列的表的名称。其次, column_name 指定列的名称, data_type 表示数据类型, column_constraint 表示约束(如果适用)。
如果要使用单个 ALTER TABLE 语句一次向表中添加多个列,请使用以下语法:
ALTER TABLE table_name
ADD
column_name_1 data_type_1 column_constraint_1,
column_name_2 data_type_2 column_constraint_2,
…,
column_name_n data_type_n column_constraint_n;
在此语法中,指定要在 ADD 子句之后添加到表中,以逗号分隔的列列表。
SQL Server ALTER TABLE ADD列示例
以下语句创建一个名为 sales.quotations 的新表:
CREATE TABLE sales.quotations (
quotation_no INT IDENTITY PRIMARY KEY,
valid_from DATE NOT NULL,
valid_to DATE NOT NULL
);
要将名为 description 的新列添加到 sales.quotations 表,请使用以下语句:
ALTER TABLE sales.quotations
ADD description VARCHAR (255) NOT NULL;
以下语句将两个名为 amount 和 customer_name 的新列添加到 sales.quotations 表中:
ALTER TABLE sales.quotations
ADD
amount DECIMAL (10, 2) NOT NULL,
customer_name VARCHAR (50) NOT NULL;

SQL Server创建表和添加列相关推荐

  1. SQL语句创建表并添加数据

    SQL语句创建表并添加数据 创建表 use school 指定要用的数据库 go create table student 创建表 ( ID bigint identity(1,1), 添加ID,id ...

  2. 使用SQL Server创建表

    使用SQL Server创建表 一.CREATE TABLE语句简介: 表用于在数据库中存储数据. 表在数据库和模式中唯一命名. 每个表包含一个或多个列. 每列都有一个相关的数据类型,用于定义它可以存 ...

  3. sql server 数据库表中增加列,增加字段,插入列,插入字段,修改列,修改字段,

    格式 --增加列 alter table 表名 add 字段名 类型 null default 默认值--给列增加注释 execute sp_addextendedproperty 'MS_Descr ...

  4. SQL命令向表中添加列

    SQL语言用ALTER TABLE语句修改基本表,其一般格式为: ALTER TABLE <表名> [ADD [COLUMN] <新列名><数据类型>[完整性约束] ...

  5. SQL Server 创建表 添加主键 添加列常用SQL语句

    --删除主键 alter table 表名 drop constraint 主键名 --添加主键 alter table 表名 add constraint 主键名 primary key(字段名1, ...

  6. SQL Server创建表

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

  7. sql Server 创建临时表 嵌套循环 添加数据

    1 begin 2 3 --通过销货单与明细,生成安装项目及明细,及判断明细是否拆分生成多条 4 --delete from sazxm 5 --delete from ssbazrw 6 --获取未 ...

  8. SQL Server 创建表

    一.语句 Example 1: --建立学生表,取名为STUDENT CREATE TABLE STUDENT (SNO CHAR(9) PRIMARY KEY,SNAME CHAR(20) UNIQ ...

  9. SQL server 创建表 前缀的DBO是什么意思

    DBO是 DbOwner 的简写,被意为:数据库所有者. DBO是每个数据库的默认用户,具有所有者权限 通过用DBO作为所有者来定义对象,能够使数据库中的任何用户引用而不必提供所有者名称. 比如:你以 ...

最新文章

  1. 给小孩发布一个有趣的网站 在线动物园
  2. Quart 2D 绘制图形简单总结
  3. XCode编译运行出错解决思路,以及再次推荐AppCode
  4. 意外终止_美国留学本科意外终止怎么办?
  5. 自己封装JSTL 自定义标签
  6. jQuery plugin 开发的一个例子
  7. java删除文件模糊_Java实现的模糊匹配某文件夹下的文件并删除功能示例
  8. c语言自学门槛,初学C语言的人最常问的几个问题
  9. Nvidia CUDA初级教程4 GPU体系架构概述
  10. qq空间把android改成iphone,qq空间利用代码修改iPhone6 Plus详细方法 qq空间修改手机型号教程...
  11. C++重温笔记(五): 多态与虚函数
  12. php控制wifi上网时长,腾达路由器家长控制功能怎么控制孩子上网时间
  13. project-attact of panda virus
  14. 一起来学linux:磁盘与文件系统:
  15. vue做移动端适配最佳解决方案,亲测有效
  16. Ubuntu下安装 rust和urdf-viz
  17. cocos2d-x 多点触控总结
  18. pet-shop Dapp开发(下)
  19. c# datagirdview报dataerror请处理等等
  20. C语言和C++中locale设置

热门文章

  1. P02014094汤雨瑶的信息论问答
  2. 两种将ppt文件转换成pdf格式的方法
  3. 合法立即数与非法立即数
  4. Java中join()方法原理及使用教程
  5. vue怎么实现图标循环和页面跳转页面跳转
  6. 鼠标悬浮事件 -jQuery hover()方法(layer.js)(layer.tips)
  7. python改造电脑解决盲人看电视问题的试验
  8. python数字华容道算法_pyqt 简单实现3X3数字华容道
  9. 出现提示说vs 正忙
  10. 易学智能GPU服务器租用—教程指南