校园学生学习娱乐资源第一门户 校园第一站 源于校园 服务于校园 分享资源和快乐 网站地图 高级搜索 RSS订阅 收藏本站 设为首页
首页 | 校园 | 教育 | 考试 | 电脑 | 英语 | 读书 | 就业 | 论文 | 体育 | 健康 | 图片 | 分类信息
Q Q | 下载 | 游戏 | 音乐 | 影视 | 专题 | 祝福 | 百科 | 问答 | 博客 | 会员 | 社区 | 校园论坛
·偶像剧免费在线收看
·DEDECMS免费模板规则下载
·
·全能空间、网站建设仅200
文章搜索:
  当前位置: 主页>电脑>数 据 库>MySQL> 文章正文

MySQL语言五:数据定义

http://www.xydyz.com 来源:校园第一站 2007-11-30 阅读: 评论


值。

 

  • MySQL 将其它 SQL 数据库供应商使用的列类型映射到 MySQL 类型。查看章节 2.5 使用来自其它的数据库引擎的列类型。
  • 如果你希望知道在你创建或改变了你的表后, MySQL 是否使用了不同于你所指定的列类型,你可以发出一个 DESCRIBE tbl_name 语句。

    如果你使用 myisampack 压缩一个表,其它的某些列类型可能会发生改变。查看章节 7.1.2.3 压缩表的特征

    5.4 ALTER TABLE 句法

     

    ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]
    
    alter_specification:
            ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
      or    ADD [COLUMN] (create_definition, create_definition,...)
      or    ADD INDEX [index_name] (index_col_name,...)
      or    ADD PRIMARY KEY (index_col_name,...)
      or    ADD UNIQUE [index_name] (index_col_name,...)
      or    ADD FULLTEXT [index_name] (index_col_name,...)
      or	ADD [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
                [reference_definition]
      or    ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
      or    CHANGE [COLUMN] old_col_name create_definition
                   [FIRST | AFTER column_name]
      or    MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
      or    DROP [COLUMN] col_name
      or    DROP PRIMARY KEY
      or    DROP INDEX index_name
      or    DISABLE KEYS
      or    ENABLE KEYS
      or    RENAME [TO] new_tbl_name
      or    ORDER BY col
      or    table_options
    

    ALTER TABLE 允许你改变一个现有表的结构。例如,你可以添加或删除列,创建或撤销索引,更改现有列的类型或将列或表自身更名。你也可以改变表的注释和表的类型。查看章节 5.3 CREATE TABLE 句法

    如果你使用 ALTER TABLE 来改变一个列规约,但是 DESCRIBE tbl_name 显示你的列并没有被修改,这有可能是因为章节 5.3.1 隐式的列定义变化 描述的一个原因,使 MySQL 忽略了你的修改。例如,如果你尝试将一个 VARCHAR 列更改为 CHAR,而如果在这个表中包含其它的变长列,MySQL 将仍然使用 VARCHAR

    ALTER TABLE 通过建立原初表的一个临时副本来工作。更改在副本上执行,然后原初表将被删除,临时表被换名。这样做使所有的修改自动地转向到没有任何更新失败的新表。当 ALTER TABLE 执行时,原初表可被其它客户端读取。更新与写入被延迟到新的表准备好。

    注意,如果你以除 RENAME 之外的其它选项使用 ALTER TABLE ,MySQL 将总是创建一个临时表,即使数据并不确实需要被复制(就像当你改变一个列名时)。我们计划不久来修正它,但是通常人们是不经常执行 ALTER TABLE的,所以在我们的 TODO 上,这个修正并不是急于处理的。对于 MyISAM 表,你可以将变量 myisam_sort_buffer_size 设置和高一点,以加速索引的重建部分(这是重建进程中最慢的部分)。

    • 为了使用 ALTER TABLE,你需要在这个表上有 ALTERINSERTCREATE 权限。

       

    • IGNORE 是 MySQL 对 ANSI SQL92 的扩展。它用于控制当在新表中的唯一键上出现重复值时,ALTER TABLE 如何工作。如果 IGNORE 没有被指定,副本将被放弃并回退。如果 IGNORE 被指定,那么在唯一键上重复的记录行只有第一个记录行被使用;其它的均被删除。

       

    • 你可以在单个的 ALTER TABLE 语句中发出多个 ADDALTERDROPCHANGE 子句。这是 MySQL 对 ANSI SQL92 的扩展,ANSI SQL92 只允许在每个 ALTER TABLE 语句中一个子句。

       

    • CHANGE col_nameDROP col_nameDROP INDEX 是 MySQL 对 ANSI SQL92 的扩展。

       

    • MODIFY is an Oracle extension to ALTER TABLE.
    • 可选词 COLUMN 只是一个无用词组,可被忽略。

       

    • 如果你使用 ALTER TABLE tbl_name RENAME TO new_name,并没有任何其它的选项,MySQL 将简单地重命名与表 tbl_name 的文件。这不需要创建临时表。查看章节 5.5



    【责任编辑:admin 】




    评论
    用户名: 新注册) 密码: 匿名评论
    评论内容:不能超过250字,请自觉遵守互联网相关政策法规。
      相关文章
    MySQL语言四:数据操纵
    MySQL语言六:基本的MySQL用户实用命令
    MySQL语言三:SELECT和WHERE子句的函数
    MySQL语言七:MySQL 事务与锁定命令
    MySQL语言二:列类型
      最新图片
    如何安全的远程使用MySQL GUI工具
    如何安全的远程使用My
    24小时TOP
       
    ·MySQL语言三:SELECT和WHERE子句的函数
    ·MySQL语言二:列类型
    ·MySQL语言四:数据操纵
    ·MySQL语言一:语言结构
    ·MySQL语言九:MySQL 查询缓存
    ·MySQL语言八:MySQL 全文搜索
    ·MySQL语言七:MySQL 事务与锁定命令
    ·MySQL语言六:基本的MySQL用户实用命令
    热门图片
      更多>>>
    如何安全的远程使用MySQL GUI工具
    如何安全的远程使用
    焦点聚焦
      更多>>>
    ·MySQL语言一:语言结构
    论坛精华
      更多>>>
    ·真钱斗地主轧金花龙虎板玖和百家乐http://c
    ·22岁女大学生要嫁48岁乞丐(图)
    ·一条短信毁了一种水果 “蛆橘”传言流变调
    ·蒙古风情十四怪 (一)
    ·《中国高新技术企业》--www.txrb.com--科信
    ·东莞大金空调官方介绍 13559702882卢生
    ·乐众国际最新博彩游戏!真实!新鲜!刺激!
    ·快国庆了大家怎么安排
    最新图片
      更多>>>
    如何安全的远程使用MySQL GUI工具
    如何安全的远程使用
    推荐文章
      更多>>>
    ·如何安全的远程使用MySQL GUI工具
    关于我们 - 版权声明 - 免责声明 - 欢迎投稿 - 广告服务 - 友情链接 - 网站建设 - 诚聘英才 - 联系我们 - -
    Copyright @2007-2009 www.xydyz.com © All rights reserved.
    校园第一站 版权所有 客服E-Mail:hyperblue@163.comn 点击这里给我发消息
    Site design by hyperblue 鄂ICP备07009403号 Powered by DedeCms