设为首页 加入收藏

TOP

MySQL学习笔记之五有关数据表操作(二)
2015-07-24 11:06:21 来源: 作者: 【 】 浏览:3
Tags:MySQL 学习 笔记 有关 数据 操作
ELECT 查询的结果直接得出一个新表。只需一步就可以完成

任务,不必知道或指定所检索的列的数据类型。这使得很容易创建一个完全用所喜欢的数据填充的表,并且为进一步查询作了准备。

? 如果你在CREATE语句后指定一个SELECT,MySQL将为在SELECT中所有的单元创键新字段。例如:

mysql> CREATE TABLE test

-> (a int not null auto_increment,primary key (a), key(b))

-> SELECT b,c from test2;

这将创建一个有3个列(a,b,c)的表,其中b,c列的数据来自表test2。注意如果在拷贝数据进表时发生任何错误,表将自动被删除

? 可以通过选择一个表的全部内容(无WHERE 子句)来拷贝一个表,或利用一个总是失败的WHERE 子句来创建一个空表,如:

mysql> CREATE TABLE test SELECT * from test2;

mysql> CREATE TABLE test SELECT * from test2 where 0;

如果希望利用LOAD DATA 将一个数据文件装入原来的文件中,而不敢肯定是否具有指定的正确数据格式时,创建空拷贝很有用。您并不希望在第一次未得到正确的选项时以

原来表中畸形的记录而告终。利用原表的空拷贝允许对特定的列和行分隔符用LOAD DATA 的选项进行试验,直到对输入数据的解释满意时为止。在满意之后,就可以将数据装入

原表了。

可结合使用 CREATE TEMPORARY TABLE 与SELECT 来创建一个临时表作为它自身的拷贝,如:

这允许修改my_tbl 的内容而不影响原来的内容。在希望试验对某些修改表内容的查询,而又不想更改原表内容时,这样做很有用。为了使用利用原表名的预先编写的脚本,不

需要为引用不同的表而编辑这些脚本;只需在脚本的起始处增加CREATE TEMPORARY TABLE 语句即可。相应的脚本将创建一个临时拷贝,并对此拷贝进行操作,当脚本结束时服

务器会自动删除这个拷贝。

要创建一个作为自身的空拷贝的表,可以与CREATE TEMPORARY ... SELECT 一起使用WHERE 0 子句,例如:

但创建空表时有几点要注意。在创建一个通过选择数据填充的表时,其列名来自所选择的列名。如果某个列作为表达式的结果计算,则该列的“名称”为表达式的文本。表达式

不是合法的列名,可在mysql 中运行下列查询了解这一点:

为了正常工作,可为该列提供一个合法的别称:

如果选择了来自不同表的具有相同名称的列,将会出现一定的困难。假定表t1 和t2 两者都具有列c,而您希望创建一个来自两个表中行的所有组合的表。那么可以提供别

名指 定新表中惟一性的列名,如:

通过选择数据进行填充来创建一个表并会自动拷贝原表的索引。

五、用ALTER TABLE语句修改表的结构

有时你可能需要改变一下现有表的结构,那么Alter Table语句将是你的合适选择。

? 增加列

alter table tbl_name add col_name type

例如,给表增加一列weight

mysql>alter table pet add weight int;

? 删除列

alter table tbl_name drop col_name

例如,删除列weight:

mysql>alter table pet drop weight;

? 改变列

alter table tbl_name modify col_name type

例如,改变weight的类型:

mysql> alter table pet modify weight samllint;

另一种方法是:

alter table tbl_name change old_col_name col_name type

例如:

mysql> alter table pet change weight weight samllint;

? 给列更名

mysql>alter table pet change weight wei;

? 给表更名

mysql>alter table tbl_name rename new_tbl

例如,把pet表更名为animal

mysql>alter table pet rename animal;

六、用DROP TABLE 语句删除数据表

DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...]

DROP TABLE删除一个或多个数据库表。所有表中的数据和表定义均被删除,故小心使用这个命令!

在MySQL 3.22或以后版本,你可以使用关键词IF EXISTS类避免不存在表的一个错误发生。

例如:

mysql>USE mytest;

mysql>DROP TABLE guestbook;

或者,也可以同时指定数据库和表:

mysql>DROP TABLE mytest.guestbook;

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇每天自动备份mysql脚本 下一篇macjdbc连接mysql

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)