表和索引

来源:互联网 发布:mutsig 数据 编辑:程序博客网 时间:2024/04/28 01:11

 

表和索引

 

表是用来存储数据和操作数据的逻辑结构,关系数据库中的数据都表现为表的形式。表的结构包括列(column)和行(row)。

索引是有效组织表数据的方式,它由表中一列或多列按照一定得排列顺序组成。也是一种数据对象。

 

 

1 掌握创建、删除表的方法

 

T_sql

   Create table

   [ database_name.[owner].| [owner.]table_name

   (

       { <column_definition>

               |column_name as computed_column_expression

                     |<table_constraint>

              } [,…n]

   )

 

[on {file_group|default}]    ------定义表存储在指定的文件组中

[textimage_on {filegroup | default}]   ----如果表中有ntexttextimage类型的数据,则将这----些数据存储在这里指定的文件组中

 

<column_definition>::={column_name data_type}

[     [default constant_expression]

|   [identity [ (seed,increment)]

]

[<column_constraint>][…n]

 

 

 

删除表

如:

Drop table  example-1 

Drop table  pubs.dbo.example-2

   Dbo database owner 的缩写,是数据库对象所有者,sql server中的对象的标准写法是:

          Databasename.databaseownername.objectname

   Dbo 是一个架构(schema)与sql2000不同,在2005中表的调用格式:

          “数据库.架构名.表名”

   表删除后数据也将删除,不能使用drop table语句删除系统表

2 掌握查看、修改表的定义、属性的方法

 

查看表

 

Sp_help table_name

Sp_spaceused  table_name

Sp_depends   table_name

Sp_rename  old_table_name,new_table_name

 

 

修改表

 

Alter  table  table_name

{

[alter column column_name

     {new_data_type [null |not null]}

|add

     {      <column_definition>

               |column_name as computed_column_expression

                     |<table_constraint>

              } [,…n]

 

|  drop

     {constrait constraint_name

       | column column_name

     }[,….n]

| {check| nocheck} constraint {all |constraint_name[,…n]}

 

| {enable|disable}trigger  {all | trigger_name [,…n]}

 

 

}

 

<column_definition>::={column_name data_type}

 [<column_constraint>][…n]

 

 

3 理解索引的特点

索引是sql server在列上建立的一种数据库对象。其对表中数据提供逻辑排序,可以提高数据的访问速度。

   Sql server提供了两种形式的索引,簇集(clustered)索引和非簇集(nonclustered)索引.

簇集索引根据键的值对行进行排序,所以每个表只能有一个簇集索引。非簇集索引不根据键值排序,索引数据结构与数据行是分开的。由于非簇集索引的表没有按顺序进行排列,所以查找速度明显低于带簇集索引的表。

建立索引会占用磁盘空间。

   下列情况适合建立索引

(1)       经常被查询的列,如经常在where子句中出现的列

(2)       order by 子句中使用的列

(3)       是外键或主键的列

(4)       该列的值唯一的列

下列情况不适合建立索引

(1)       在查询中很少的列

(2)       包含太多重复选用值的列。如:性别列

(3)       数据类型为bittextimage等的列不能建立索引

用户可以在多个列上建立索引,这种索引叫做复合索引

 

 

4 掌握创建和删除索引的方法

DROP INDEX不能用来删除建表时自动创建的索引,而主键会自动创建聚集索引;
主键是一种约束,可以通过ALTER TABLE tablename Drop CONSTRAINT 删除,主键去除了,依附于主键的索引也自动消除。

 

T_sql

Create [unique] [ clustered |nonclustered]

 

Index index_name on table (column [,…n])

 

Drop   index   ‘table.index’ [,….n]

 

Use pubs

Go

Create table emp_pay

(employeeid int not null,

Base_pay  money  not null,

Commission decimal (2,2) not null

)

Go

 

Create unique clustered index employeeid_ind

On emp_pay (employeeid)

Go

 

User pubs

Go

 

Drop index emp_pay.employeeid_ind

Go

原创粉丝点击