跟我学MS SQL Server(5)
2007-11-11 09:20:06 来源:WEB开发网核心提示: 在本例中,我使用了三种基本数据类型;然而,跟我学MS SQL Server(5)(2),在实际使用时,根据数据库支持的内容,你学会了如何把你操作数据库结构,你学会了创建、修改并销毁表格和数据,我可能还用用上tinyint、文本和mediumtext数据类型,发出如下指令来建立表格:CREATE TABLE Produ
在本例中,我使用了三种基本数据类型;然而,在实际使用时,根据数据库支持的内容,我可能还用用上tinyint、文本和mediumtext数据类型。
发出如下指令来建立表格:
CREATE TABLE Products
(prod_id INT(16), prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2));
如果这些指令顺利完成,你就可以在表格中正常地插入信息。你可以参到文章SQL基础一:数据查询"得到详细说明。
除了数据类型,你还可以在创建表格时定义自动增量字段(auto-incremented field)、关键字、索引和特殊数值限制。在表格定义时,这些参数与数据类型一同传递。如果在创建表格Product时定义具有特殊数值限制的自动增量prod_id,命令如下:
CREATE TABLE Products
(prod_id INT(16)AUTO_INCREMENT, prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2), UNIQUE (`prod_id`));
如果把prod_id做为索引字段定义,可以用CREATE INDEX:
CREATE INDEX ProdIndex ON Product (prod_id);
这里有必要重申:数据库提供商在关键字的处理上有所不同。所以,具体情况请参考你的数据库提供商的文档。
---------------------------------------------------------------------------
关于索引的更多内容:
索引是一个比较深的课题。除了介绍有关关键字和索引的理论,Builder.com的供稿人Eric Roland写了几篇很好的文章,你可以通过它们来学到更多的相关知识。
修改表格
当你开始对表格进行操作时,你也许觉得有必要修改表格的结构、字段类型等等。在前面,我强烈建议你避免在生产环境(production environment)这么做。因为有些操作,如添加、删除和修改字段可能会删除或破坏相关字段中的数据。
好,现在让我们看看如何修改表格。首先,在表格Product中加入一栏。你可以指定该栏插入的相对其它栏的位置,也可以让它插到表格末端(默认):
ALTER TABLE Product ADD prod_name VARCHAR(20) AFTER prod_id;
用类似的语句删除一个栏目:
ALTER TABLE Product DROP prod_size;
最后,更改一个栏目的数据类型:
ALTER TABLE Product CHANGE prod_color prod_color_id INT(20);
现在,你的表格如表C所示:
栏目名称:
prod_id
prod_name
prod_color_id
prod_descr
数据类型:
Int(16)
Varchar(20)
Int(20)
Varchar(255))
注意,有些数据库不支持关键字DROP。另外,如果你改变现有的某一栏的数据类型,大多数数据库会试图转化该栏目现有数据的数据类型。然而,如果是转为一个不支持的数据类型,数据就有可能丢失。举例来说,如果把一个类型为Varchar的包含人名字的字段改为Int类型,转换的结果可能是整型的默认值。
删除表格和数据库
在删除表格和数据库之前,你需要确保丢失这些数据不会造成恶果。如果你删除数据库,库中的所有表格和内容都会被清除。如果你删除一个表格,表格中的所有内容都会丢失,但是库中的其它表格没有影响。
在删除表格或整个栏目之前,你必须清楚数据库的结构。如果你进入一个已经存在的数据库并错误删除了某个元素,可能会影响到促发条件(?trigger)、存储过程和视图。有些数据库支持用关键字RESTRICT和CASCADE去预防由于删除表格带来的损失。RESTRICT一般按默认设置,预防丢失表格,而CASCADE用于删除与该表格有关的实体。
现在上面建立的表格Product是可以被删除的,我们开始删除它:
DROP TABLE Product;
现在删除数据库:
DROP DATABASE Catalog;
大多数数据库软件提供商支持DROP DATABASE命令,尽管它是在SQL99标准中被定义而不是SQL92。
部分数据库提供了FLUSH命令,该命令可以让你删除表格中的内容但又可以保持表格的结果,:
FLUSH TABLE Product;
如你所见,删除数据库中的主要结构并丢失所存的所有数据的容易程度令人难以想象,所以,一定要小心使用这些命令,而当你不清楚数据库中的内容时,就不要使用这些命令。
数据库管理
在前一篇文章中,你学会了如何在一个或多个表格中查找数据。现在,你学会了如何把你操作数据库结构。你学会了创建、修改并销毁表格和数据。这些都是设计数据库驱动的应用程序的必须用的操作。
发出如下指令来建立表格:
CREATE TABLE Products
(prod_id INT(16), prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2));
如果这些指令顺利完成,你就可以在表格中正常地插入信息。你可以参到文章SQL基础一:数据查询"得到详细说明。
除了数据类型,你还可以在创建表格时定义自动增量字段(auto-incremented field)、关键字、索引和特殊数值限制。在表格定义时,这些参数与数据类型一同传递。如果在创建表格Product时定义具有特殊数值限制的自动增量prod_id,命令如下:
CREATE TABLE Products
(prod_id INT(16)AUTO_INCREMENT, prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2), UNIQUE (`prod_id`));
如果把prod_id做为索引字段定义,可以用CREATE INDEX:
CREATE INDEX ProdIndex ON Product (prod_id);
这里有必要重申:数据库提供商在关键字的处理上有所不同。所以,具体情况请参考你的数据库提供商的文档。
---------------------------------------------------------------------------
关于索引的更多内容:
索引是一个比较深的课题。除了介绍有关关键字和索引的理论,Builder.com的供稿人Eric Roland写了几篇很好的文章,你可以通过它们来学到更多的相关知识。
修改表格
当你开始对表格进行操作时,你也许觉得有必要修改表格的结构、字段类型等等。在前面,我强烈建议你避免在生产环境(production environment)这么做。因为有些操作,如添加、删除和修改字段可能会删除或破坏相关字段中的数据。
好,现在让我们看看如何修改表格。首先,在表格Product中加入一栏。你可以指定该栏插入的相对其它栏的位置,也可以让它插到表格末端(默认):
ALTER TABLE Product ADD prod_name VARCHAR(20) AFTER prod_id;
用类似的语句删除一个栏目:
ALTER TABLE Product DROP prod_size;
最后,更改一个栏目的数据类型:
ALTER TABLE Product CHANGE prod_color prod_color_id INT(20);
现在,你的表格如表C所示:
栏目名称:
prod_id
prod_name
prod_color_id
prod_descr
数据类型:
Int(16)
Varchar(20)
Int(20)
Varchar(255))
注意,有些数据库不支持关键字DROP。另外,如果你改变现有的某一栏的数据类型,大多数数据库会试图转化该栏目现有数据的数据类型。然而,如果是转为一个不支持的数据类型,数据就有可能丢失。举例来说,如果把一个类型为Varchar的包含人名字的字段改为Int类型,转换的结果可能是整型的默认值。
删除表格和数据库
在删除表格和数据库之前,你需要确保丢失这些数据不会造成恶果。如果你删除数据库,库中的所有表格和内容都会被清除。如果你删除一个表格,表格中的所有内容都会丢失,但是库中的其它表格没有影响。
在删除表格或整个栏目之前,你必须清楚数据库的结构。如果你进入一个已经存在的数据库并错误删除了某个元素,可能会影响到促发条件(?trigger)、存储过程和视图。有些数据库支持用关键字RESTRICT和CASCADE去预防由于删除表格带来的损失。RESTRICT一般按默认设置,预防丢失表格,而CASCADE用于删除与该表格有关的实体。
现在上面建立的表格Product是可以被删除的,我们开始删除它:
DROP TABLE Product;
现在删除数据库:
DROP DATABASE Catalog;
大多数数据库软件提供商支持DROP DATABASE命令,尽管它是在SQL99标准中被定义而不是SQL92。
部分数据库提供了FLUSH命令,该命令可以让你删除表格中的内容但又可以保持表格的结果,:
FLUSH TABLE Product;
如你所见,删除数据库中的主要结构并丢失所存的所有数据的容易程度令人难以想象,所以,一定要小心使用这些命令,而当你不清楚数据库中的内容时,就不要使用这些命令。
数据库管理
在前一篇文章中,你学会了如何在一个或多个表格中查找数据。现在,你学会了如何把你操作数据库结构。你学会了创建、修改并销毁表格和数据。这些都是设计数据库驱动的应用程序的必须用的操作。
[]
更多精彩
赞助商链接