当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 跟我学SQL:(五)创建和修改表格

MSSQL
精细讲述SQL Server数据库备份多种方法
让SQL Server也能使用2G以上内存
SQL Server数据库崩溃恢复之法
创建区分大小写的SQL Server 2000实例
SQL Server中易混淆的数据类型
如何优化SQL Server数据库查询
使用Robot连接SQL的例子
如何让你的SQL运行得更快
对Sql Server中的表添加级联更新和级联删除
常用SQL语句书写技巧
SQL Server与Oracle实施成本上的差异
解析SQL Server的数据类型 BLOB
SQL Server数据库和XML标识语言的集成
SQLServer 数据库还原和孤立用户的解决办法
SQL Server 2000/2005 分页SQL
Sql Server锁表
SQLServer2005实现远程数据库备份
SQL精妙语句
SQL Server 2008的逻辑查询处理步骤
如何让你的SQL运行得更快

MSSQL 中的 跟我学SQL:(五)创建和修改表格


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 29 ::
收藏到网摘: n/a

  再次欢迎您来到SQL(结构化查询语言)基础系列教程。本文将介绍数据库定义语言(DDL)用于创建数据库和表格以及修改表格结果的指令。 

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


--------------------------------------------------------------------------------

数据库之间的差异 
本文中的样品查询系统遵循SQL92 ISO标准。并不是所有的数据库都遵循该标准,有些数据库做了改进,这会产生不可预料的结果。如果你不能确定你的数据库是否支持该标准,请参考相应的文档。


--------------------------------------------------------------------------------

创建数据库
为了创建表格,你首先需要需要创建一个可以容纳表格的数据库。SQL用于创建数据库的基本语句是:
CREATE DATABASE dbname;

你的数据库用户必须有建立数据库的适当权限。如果与你有关的用户不能发出用于创建新数据库的命令,要求数据库管理员为你建立数据库,你也作为管理员登录然后建立数据库并设置权限。

举个例子,用CREATE指令为一个应用程序建立一个数据库用于显示一个目录:
CREATE DATABASE Catalog;

这给你一个用于在查询时与其它表格区分的表格名字。下一步是创建用于输入它的表格。

创建表格
如你所知,表格是有若干个栏目所组成。当创建表格时,你可以定义栏目并分配字段属性。表格建立后,可以用ALTER表格指令来修改它,我们稍后将提到这一点。

你可以用下面这条指令来创建数据库,命令行的参数为表格名字、栏目名字,还有每一栏的数据类型。
CREATE TABLE table_name
(column1 data_type, column2 data_type, column3 data_type);

不同的数据库提供商的标准差别很大。你的帮助文档中应该有一段详细说明如何使用每一种数据、接受何种参数。为了通用,我在表A中列出了一些常用的数据类型。

表A
 
数据类型
 用法
 详细说明
 
Char
 Char(8)
 它包含了一个固定长度的字符串,其值常常是字符串长度。
 
Varchar
 Varchar(128)
 它包含了一个长度不大于指定值的长度可变的字符串。
 
Int
 Int(32)
 这是一个不大于指定值得整数,也做Number或Integer。
 
Decimal
 Decimal(12,2)
 这是一个总位数和小数点后位数不大于指定值得小数,也被称为Numeric或Number。
 
Binary
 Binary
 用于存储二进制对象,在数据库中它一般不可分解和显示,也称为Raw或Blob。
 
Boolean
 Boolean
 用来只是真或假,也成为Bit或Byte。
 

通用数据类型


在本例中,我们建立了一个存放库存商品信息的表格。所用到的栏目和数据类型如表B所示:

表B
 
栏目名称:
 prod_id
 prod_color
 prod_descr
 prod_size
 
数据类型:
 Int(16)
 Varchar(20)
 Varchar(255)
 Decimal(8,2)
 



在本例中,我使用了三种基本数据类型;然而,在实际使用时,根据数据库支持的内容,我可能还用用上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);

这里有必要重申:数据库提供商在关键字的处理上有所不同。所以,具体情况请参考你的数据库提供商的文档。


--------------------------------------------------------------------------------

关于索引的更多内容:

索引是一个比较深的课题。除了介绍有关关键字和索