会员名称:  密码:   验证码:     会员注册  忘记密码? 
设为首页
加入收藏
返回首页
媒体资讯>> 业界资讯 - 会展动态 - 竞赛&活动 - IT互联网  媒体学院>> 图形图像 - 网页制作 - 网络编程 - 数据库 - 服务器 - 网络应用  作品赏析>> 视频音响 - CG动画 - UI设计 - 平面设计 - 网页设计 - 摄影映象 - 三维2D - 其它设计  媒体工作室>> 视频影像 - 音频声响 - 三维2D - 平面视觉 - 软硬技术 - 摄影映象  人物访谈>> 人物访谈 - 华夏新锐  媒体杂志>> 媒体杂志  素材图库>> 丽景佳图 - 设计素材 - 资料图库 - 矢量图库 - 动态动画 - 特色图标  酷站赏析>> 韩国网站 - 国外网站 - 国内网站  会员中心>> 会员注册 - 会员登陆
当前位置:华夏媒体 - > 媒体学院 - > 数据库 - > MYSQL - > MySQL数据库技术(14)
   
   
   
MySQL数据库技术(14) MySQL数据库技...  [MYSQ...]
More... 
   
网络协议X档案全集(十) 网络协议X档案...  [其它...]
不可忽视的BIOS参数设置 不可忽视的BIO...  [其它...]
微软IE浏览器非常规修改全攻略(上) 微软IE浏览器非...  [其它...]
微软IE浏览器非常规修改全攻略(下) 微软IE浏览器非...  [其它...]
网管十招 网管十招  [其它...]
微软安全问题 源自OS和IE中集成RSS 微软安全问题 ...  [其它...]
修改注册表使电脑更安全 修改注册表使电...  [其它...]
利用注册表管理IP地址 利用注册表管理...  [其它...]
有关IIS HACK的一些方法整理 有关IIS HACK的...  [其它...]
More 
MySQL数据库技术(14)
编辑:华夏媒体     作者:未知     来源:网络     时间:2006-07-29     总浏览量:939
文字大小:[      ]     文字颜色:      双击滚屏/单击停止

[上一页] [1] [2] [3] [4] [5] [下一页] 

  3.4 创建、删除、索引和更改表
    可利用C R E ATE TA B L E、DROP TABLE 和A LTER TABLE 语句创建表,然后,对它们进行删除,更改它们的结构。对于它们中的每一条语句,存在MySQL 专有的扩充,这些扩充使各语句更为有用。C R E ATE INDEX 和DROP INDEX 语句使您能够增加或删除现有表上
的索引。
    3.4.1 CREATE TABLE 语句
    用CREATE TABLE 语句创建表。此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单。如我们在第1 章中使用的所有CREATE TABLE 语句都不那么复杂。有意思的是,大多数复杂东西都是一些子句,这些子句MySQL在分析后扔掉。参阅附录D 可看到这些复杂的东西。看看CREATE TABLE 语句的各项条款,注意该语句有多少语法是用于REFERENCES CONSTRAINT 和CHECK 子句的。这些子句涉及外部键、引用完整性及输入值约束。MySQL 不支持这些功能,但它分析其语法使其更容易利用在其他数据库系统中建立的表定义。(可以用较少的编辑工作更容易地利用该代码。)如果您从头开始编写自己的表描述,可以完全不管这些子句。本节中我们对它们也不多做介绍。CREATE TABLE 至少应该指出表名和表中列的清单。例如:

    除构成表的列以外,在创建表时还可以说明它应该怎样索引。另一个选择是创建表时不进行索引,以后再增加索引。如果计划在开始将表用于查询前,用大量的数据填充此表,以后再创建索引是一个好办法。在插入每一行时更新索引较装载数据到一个未索引的表中然后
再创建索引要慢得多。我们已经在第1章中介绍了C R E ATE TABLE 语句的基本语法,并在第2章讨论了怎样描述列类型。这里假定您已经读过了这两章,因此我们就不重复这些内容了。在本节下面,我们将介绍一些MySQL 3.23 中对C R E ATE TABLE 语句的重要扩充,这些扩充在构造表方面提供了很大的灵活性,这些扩充为:
    ■ 表存储类型说明符。
    ■ 仅当表不存在时才进行创建。
    ■ 在客户机会话结束时自动删除临时表。
    ■ 通过选择希望表存储的数据来创建一个表。
    1. 表存储类型说明符
    在MySQL 3.23 之前,所有用户创建的表都利用的是ISAM 存储方法。在MySQL 3.23中,可在CREATE TABLE 语句的列的列表之后指定TYPE = type,以三种类型明确地创建表。其中type 可以为MYISAM、ISAM 或HEAP。例如:

    将表转换为HEAP 类型可能不是一个好主意,但是,如果希望表一直维持到服务器关闭,可以进行这个转换。HEAP 表在服务器退出之前,一直保留在内存中。这三种表类型的一般特点如下:
    ■ MyISAM 表。MyISAM 存储格式自版本3.23 以来是MySQL 中的缺省类型,它有下列特点:
    ■ 如果操作系统自身允许更大的文件,那么文件比ISAM 存储方法的大。
    ■ 数据以低字节优先的机器独立格式存储。这表示可将表从一种机器拷贝到另一种机器,即使它们的体系结构不同也可以拷贝。
    ■ 数值索引值占的存储空间较少,因为它们是按高字节优先存储的。索引值在低位字节中变化很快,因此高位字节更容易比较。
    ■ A U TO_INCREMENT 处理比ISAM 的表更好。详细内容在第2章讨论。
    ■ 减少了几个索引限制。例如,可对含NULL 值的列进行索引,还可以对BLOB 和TEXT 类型的列进行索引。
    ■ 为了改善表的完整性检查,每个表都具有一个标志,在myisamchk 对表进行过检查后,设置该标志。可利用myisamchk - fast 跳过对自前次检查以来尚未被修改过表的检查,这样使此管理任务更快。表中还有一个指示表是否正常关闭的标志。如果服务器关闭不正常,或机器崩溃,此标志可用来检测出服务器起动时需要检查的表。
    ■ ISAM 表。ISAM 存储格式是MySQL 3.23 所用的最旧的格式,但当前仍然可用。通常,相对于ISAM 表来说,宁可使用MyISAM 表,因为它们的限制较少。对ISAM 表的支持随着此存储格式被MyISAM 表格式所支持很有可能会逐渐消失。
    ■ HEAP 表。HEAP 存储格式建立利用定长行的内存中的表,这使表运行得非常快。在服务器停止时,它们将会消失。在这种意义上,这些表是临时的。但是,与用CREATE TEMPORARY TABLE 所创建的临时表相比,HEAP 表是其他客户机可见的。HEAP 表有几个限制,这些限制对MyISAM 或ISAM 表没有,如下所示:
    ■ 索引仅用于“=”和“< = >”比较。
    ■ 索引列中不能有NULL 值。
    ■ 不能使用BLOB 和TEXT 列。
    ■ 不能使用A U TO_INCREMENT 列。
    2. 创建不存在的表
    要创建一个不存在的表,使用C R E ATE TABLE IF NOT EXISTS 即可。在某种应用程序中,无法确定要用的表是否已经存在,因此,要创建这种表。IF NOT EXISTS 修饰符对于作为用mysql 运行的批量作业的脚本极为有用。在这里,普通的C R E ATE TABLE 语句工作得
不是很好。因为作业第一次运行时,建立这些表,如果这些表已经存在,则第二次运行时将出错。如果用IF NOT EXISTS语句,就不会有问题。每一次运行作业时,像前面一样创建表。如果这些表已经存在,在第二次运行时,创建表失败,但不出错。这使得作业可以继续运行,就像创建表的企图已经成功了一样。


[上一页] [1] [2] [3] [4] [5] [下一页] 

打印   收藏   关闭   至顶部  


关于我们 | 联系我们 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 意见建议
版权所有  Copyright © 2005-2006 华夏媒体(Media86.Com). All Rights Reserved .
网站备案号:粤ICP备06055307号