创建表(Create table)

语法:

 Create table 数据库名称 模式名 表名(

列名1 数据类型 PRIMARY KEY,

列名2 数据类型 not null,

………

);

如果你没有指定模式就默认在当前数据库的dbo模式下

例:create table stu(

id int identity primary key, -- identity标识列  primary key主键

name varchar (20) not null,

birthday datetime

);

sql server定义库大小 sql定义数据_sql

复制表

如果目标表存在

语法:insert into 目标表 [指定字段]  select * from 原表;

如果目标表不存在

语法:select * into 目标表 from 原表;

标识列

创建标识列(identity)

语法:identity [(第一行的值,添加到上一行标识值的增量值)]

可以不写,如果不写就是默认为(1,1),也可以自定义。

允许每个表只有一个标识列

例:create table a(

aid int identity(1,2) primary key,

aname varchar (50) not null

);

sql server定义库大小 sql定义数据_重置_02

重用标识值

SQL server不能重用标识符。如果在标识符中插入行并执行insert语句失败或回滚,则标识值将丢失,并不会再次生成。会导致标识列中出现空白

重置整个表的标识列(删除数据)

truncate删除表内所有值并重置标识符,但是表内的数据将会丢失而且无法找回。

语法:truncate table 表名;

重置标识列(不删除数据)

  1. dbcc checkident(‘表名’,new_value)重置新的标识符,new_value为新值
  2. select ident_current(‘a’)当前表标识列的最大值
  3. select @@identity 当前标识列的最大值。注:要紧跟着错误的语句查询

向表添加列

语法:alter table 表名 add 列名 数据类型 约束

例:alter table

add tel nvarchar (11) not null;

sql server定义库大小 sql定义数据_数据类型_03

 

修改列

可以修改列的数据类型,列的大小、not null约束

语法:alter table 表名 alter column 列名 数据类型;

例:alter table stu alter column tel varchar(22)

sql server定义库大小 sql定义数据_重置_04

表中有数据时转变数据类型的时候,数据要能转变为目标类型,转变不成就会报错。两个数据类型必须是兼容的。

删除列

语法:alter table 表名 drop column 列名  

例:alter table stu drop column tel;

sql server定义库大小 sql定义数据_重置_05

删除表(drop)

语法:drop table [ if exists] 表名;

添加if exists就不会报错,不管那个表存在不存在

删除具有外键约束的表

约束引用的表。要删除此表,必须先删除引用外键约束或引用表。

语法:

drop table 引用表;

drop table 被引用表;

如果使用单个drop table 删除两个表,则必须将引用表放在前面

语法:drop table 引用表,被引用表;

截断表(truncate table)

truncate table 类似于没有where子句的delete 语句 。但是truncate语句执行的更快,并且使用的系统和事务日志资源更少。

delect 比较的优点:

  1. 使用较少的事务日志

delete语句一次删除一行,并且在事务日志中为每个删除的行插入一个条目。truncate table语句通过释放用于存储表数据的数据页来删除数据,并仅在事务日志中插入页面解除分配。

  1. 使用更少的锁

使用行锁执行语句时,表中的每一行都被锁定以便删除。truncate table 锁定表和页,而不是每一行

  1. 重置标识

如果要截断的表具有标识列,则当使用truncate table 语句删除数据后,具有标识列的计算器将重置为开始的值(一般是:1)。