数据库表操作语句
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 ) GO2,由其他表创建新表
用户使用SELECT INTO 语句创建一个新表,并用SELECT 的结果集填充该表,其语法格式如下:
SELECT 列名表 INTO 表1 FROM 表2
该语句的功能是由“表2”的“列名表”来创建新表“表1”
例如:在stsc数据库中,由student表创建student1。
USE stsc SELECT stno,stname,stbirthday INTO student1 FROM student3, 使用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