一、表的创建
- 非空约束not null
- default 指定缺省值
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
...
)
二、表的修改
- 增加新列:
ALTER TABLE table_name ADD column_name data_type
默认添加字段为null,要设置not null 必须添加缺省值
- 删除列:
ALTER TABLE table_name DROP COLUMN column_name
在SQL Server中,那些赋予默认值的列,作为主键或者在另外表中标识为外键约束的列不能被删除,如若删除:
ALTER TABLE table_name DROP CONSTRAINT constraint_name
- 修改列:
ALTER TABLE table_name MODIFY/ALTER COLUMN column_name data_type
注:SQL Server 不支持MODIFY
修改列为其增加非空约束时,必须确保该列已经存在的所有记录中无NULL值,SQL Server 不仅允许改变
列的数据长度,而且还允许改变其数据类型,但是当列为以下情况时,则不能改变其数据类型:
- 列是TEXT、IMAGE、NTEXT 或 TIMESTAMP 类型;
- 列是索引的一部分
- 列是PRIMARY KEY 或 FOREIGN KEY 的一部分
- 列具有缺省值约束
- 列具有CHECK或UNIQUE约束
三、表的删除和重命名
- 重命名表:
SP_RENAME table_name ,new_name
- 删除表:
DROP TABLE table_name
四、索引、视图
- 索引:一个表的存储有两部分组成:存放表的数据页面和存放索引页面,索引就存放在索引页面上
- 索引结构:簇索引和非簇索引
- 索引的创建及销毁:
CREATE INDEX index_name ON table_name ([column_name1],[column_name2]...)
DROP INDEX index_name
-
-
- 在非簇索引中,DMBS只对创建索引的列的键值进行排序(升序),而索引的表不排序
- 非簇索引的使用:
-
SELECT column1 ,column2 ,.. FROM table_name WITH (INDEX(index_name))
-
-
- 在创建多字段的非簇索引时,各字段的排列顺序决定了其优先级,排列越靠前,具有越高的优先级
-
CREATE CLUSTERED INDEX index_name ON table_name ([column_name],...)
一个表中只能创建一个簇索引
- 视图(虚表)
- 创建视图:
CREATE VIEW <view_name> [(column1 ,column2,...)] AS SELECT <column_names> FROM <table_name>
-
- 销毁视图:
DROP VIEW view_name