SQLServer快速掌握创建和修改表格

SQLServer快速掌握创建和修改表格,第1张

SQLServer快速掌握创建和修改表格,第2张

本文将介绍数据库定义语言(DDL)创建数据库和表以及修改表结果的指令。

使用这些指令时要小心——很容易删除数据库中的主结构,使你丢失数据。因此,在开始修改数据库之前,您需要知道数据库是什么。

数据库之间的差异

本文中的示例查询系统遵循SQL92 ISO标准。并不是所有的数据库都遵循这个标准,有些数据库做了改进,会产生意想不到的结果。

创建数据库

为了创建一个表,首先需要创建一个可以保存该表的数据库。SQL用来创建数据库的基本语句是:

以下是引号片段:
CREATE DATABASE dbname;


您的数据库用户必须具有建立数据库的适当权限。如果与您相关的用户不能发出创建新数据库的命令,要求数据库管理员为您构建数据库,您也可以以管理员身份登录,然后构建数据库并设置权限。

例如,使用CREATE命令为显示目录的应用程序创建数据库:

下面是一个引用片段:
创建数据库目录;


这为您提供了一个表名,用于在查询时与其他表区分开来。下一步是创建一个表来输入它。

创建表格

如您所知,该表单由几列组成。创建表时,可以定义列并分配字段属性。表建立后,可以用ALTER table指令修改它,我们将在后面提到。

您可以使用以下命令创建数据库。命令行的参数是表名、列名和每列的数据类型。

以下是引号片段:
create table table _ name
(column 1 data _ type,column2data _ type,column 3 data _ type);


不同数据库提供商的标准差别很大。您的帮助文档中应该有一个段落详细说明如何使用每个数据以及接受什么参数。

下面是一个引号片段:
Char
Char(8)
它包含一个定长字符串,其值往往是字符串的长度。
varchar
varchar(128)
它包含一个长度不大于指定值的可变长度字符串。
Int
Int(32)
这是一个不大于指定值的整数,也称为Number或Integer。
Decimal
Decimal (12,2)
这是一个总位数和小数位数不大于指定值的小数。
也叫数值或数字。
Binary
Binary
用于存储二进制对象。它通常不能在数据库中分解和显示。
它也称为Raw或Blob。
布尔值
布尔值


以前只用于真或假,也变成位或字节。
常用数据类型

在这个例子中,我们建立了一个表来存储库存商品的信息。使用的列和数据类型如表B所示:

下面是加引号的片段:
列名:
prod _ id
prod _ color
prod _ size
数据类型:
int (16) [/br


在这个例子中,我使用了三种基本数据类型;但是,在实际使用中,根据数据库支持的内容,我可能还会使用tinyint、text和mediumtext数据类型。

发出以下命令来创建表:

以下为引用片段:
create table products
(prod _ id int(16),prod _ color varchar (20),
prod _ descr varchar (255),prod _ size decimal (8,2));


如果这些指令成功完成,您就可以正常地将信息插入到表格中。

除了数据类型,您还可以在创建表格时定义自动递增字段、关键字、索引和特殊数值限制。定义表时,这些参数与数据类型一起传递。如果在创建表产品时定义了具有特殊数值限制的自动增量prod_id,命令如下:

以下是引用的片段:
create table products
(prod _ id int(16)auto _ increment,
prod _ color varchar (20),prod _ descr varchar (255),
prod _ size decimal (8


如果prod_id用作索引字段定义,您可以使用CREATE INDEX:

以下是引用的片段:
在产品(prod _ id)上创建索引prodindex


这里有必要重申一下,数据库提供者对关键字的处理是不一样的。因此,有关详细信息,请参考数据库提供商的文档。


修改表格

当你开始操作表格时,你可能会觉得有必要修改结构、字段类型等等。在前面,我强烈建议您避免在生产环境中这样做。因为某些操作,如添加、删除和修改字段,可能会删除或破坏相关字段中的数据。

好了,现在让我们看看如何修改表单。首先,向表Product中添加一列。您可以指定此列相对于其他列的插入位置,也可以将其插入到表格的末尾(默认):

以下是引用的片段:
alter table product add prod _ name varchar(20)在prod _ id之后

删除具有类似语句的列:

以下是引用片段:
alter table product drop rod _ size;


最后,更改列的数据类型:

以下是引用的片段:
alter table product change prod _ color prod _ color _ id int(20);


现在,您的表单如表C所示:

下面是加引号的片段:
列名:
prod _ id
prod _ name
prod _ color _ id
数据类型:
int (16) [


请注意,有些数据库不支持关键字DROP。此外,如果更改现有列的数据类型,大多数数据库会尝试转换该列现有数据的数据类型。但是,如果将其转换为不支持的数据类型,数据可能会丢失。例如,如果将包含人名的Varchar类型的字段更改为Int类型,则转换的结果可能是integer的默认值。

删除表和数据库

在删除表和数据库之前,您需要确保丢失这些数据不会导致不良后果。如果删除数据库,数据库中的所有表和内容都将被清除。如果删除表格,表格中的所有内容都将丢失,但库中的其他表格不会受到影响。

在删除表或整列之前,必须知道数据库的结构。如果进入一个已有的数据库,误删除了一个元素,可能会影响触发条件(?触发器)、存储过程和视图。有些数据库支持关键字RESTRICT和CASCADE,以防止删除表造成的损失。RESTRICT一般默认设置为防止表丢失,而CASCADE用于删除与表相关的实体。

现在可以删除上面创建的表产品了,所以让我们开始删除它:

以下是报价片段:
降表产品;


立即删除数据库:

下面是一个引号片段:
DROP DATABASE Catalog;


大多数数据库软件提供商都支持DROP DATABASE命令,尽管它是在SQL99标准而不是SQL92中定义的。

有些数据库提供了FLUSH命令,该命令允许您删除表的内容,但保留表的结果。

以下是引用片段:
同花顺表产品;


如你所见,很难想象删除数据库中的主结构并丢失所有存储的数据是多么容易。所以,一定要小心使用这些命令,不要在不知道数据库里有什么的时候使用。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLServer快速掌握创建和修改表格

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情