数据库表操作语句
1,使用DDL创建表, 语法格式如下:
CREATE TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name
(
{ <column_definition>
| column_name AS computed_column_expression [PERSISTED [NOT NULL]]
}
[ <table_constraint> ] [ ,...n ]
)
[ ON { partition_scheme_name ( partition_column_name ) | filegroup | "default" } ]
[ { TEXTIMAGE_ON { filegroup | "default" } ]
[ FILESTREAM_ON { partition_scheme_name | filegroup | "default" } ]
[ WITH ( <table_option> [ ,...n ] ) ]
[ ; ]
<column_definition> ::=
column_name data_type
[ FILESTREAM ]
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ]
DEFAULT constant_expression ]
|[ IDENTITY [ ( seed ,increment ) ] [ NOT FOR REPLICATION ]
]
[ ROWGUIDCOL ]
[ <column_constraint> [ ...n ]]
[ SPARSE ]
说明:
1)database_name是数据库名,schema_name是表所属架构名,table_name是表名。如果省略数据库名则默认在当前数据库中创建表,如果省略架构名,则默认是“dbo”。
(2)<column_definition> 列定义:
● column_name 为列名,data_type为列的数据类型。
● FILESTREAM是SQL Server 2008引进的一项新特性,允许以独立文件的形式存放大对象数据。
● NULL | NOT NULL:确定列是否可取空值。
● DEFAULT constant_expression:为所在列指定默认值。
● IDENTITY:表示该列是标识符列。
● ROWGUIDCOL:表示新列是行的全局唯一标识符列。
● <column_constraint>:列的完整性约束,指定主键、外键等。
● SPARSE:指定列为稀疏列。
(3)column_name AS computed_column_expression [PERSISTED [NOT NULL]]:用于定义计算字段。
(4)<table_constraint>:表的完整性约束。
(5)ON 子句:filegroup | "default"指定存储表的文件组。
(6)TEXTIMAGE_ON {filegroup | "default"}:TEXTIMAGE_ON指定存储text、ntext、image、xml、varchar(MAX)、nvarchar(MAX)、varbinary(MAX)和CLR用户定义类型数据的文件组。
(7)FILESTREAM_ON子句:filegroup | "default"指定存储FILESTREAM数据的文件组。
例:T-SQL语句在stsc数据库中创建student表。
USE stsc
CREATE TABLE student
(
stno char(4) NOT NULL PRIMARY KEY,
stname char(8) NOT NULL,
stsex char(2) NOT NULL,
stbirthday date NOT NULL,
specialist char(12) NULL,
tc int NULL
)
GO
2,由其他表创建新表
用户使用SELECT INTO 语句创建一个新表,并用SELECT 的结果集填充该表,其语法格式如下:
SELECT 列名表 INTO 表1 FROM 表2
该语句的功能是由“表2”的“列名表”来创建新表“表1”
例如:在stsc数据库中,由student表创建student1。
USE stsc
SELECT stno,stname,stbirthday INTO student1
FROM student
3, 使用DDL修改表
修改表的结构使用ALTER TABLE 语句,其语法格式如下:
ALTER TABLE table_name
{
ALTER COLUMN column_name
{
new_data_type [ (precision,[,scale])] [NULL | NOT NULL]
| {ADD | DROP } { ROWGUIDCOL | PERSISTED | NOT FOR REPLICATION | SPARSE }
}/
| ADD {[<colume_definition>]}[,…n]
| DROP {[CONSTRAINT] constraint_name | COLUMN column}[,…n]
}
说明:
● table_name为表名。
● ALTER COLUMN子句:修改表中指定列的属性。
● ADD子句:增加表中的列。
● DROP子句:删除表中的列或约束。
例如:在student1表中新增一列remarks:
USE stsc
ALTER TABLE student1 ADD remarks char(10)
4,使用DDL删除表
删除表使用DROP TABLE 语言,其语法格式如下:
DROP TABLE table_name
其中,table_name是要删除的表的名称。
例如: 删除stsc 数据库中的student1表
USE stsc
DROP TABLE student1