使用MySQL,目前你可以在三种基本数据库表格式间选择。当你创建一张表时,你可以告诉MySQL它应该对于表使用哪个表类型。MySQL将总是创建一个.frm文件保存表和列定义。视表类型而定,索引和数据将在其他文件中存储。
   SHOW COLUMNS列出在一个给定表中的列。如果列类型不同于你期望的是基于CREATE TABLE语句的那样,注意,MySQL有时改变列类型
  
DESCRIBE语句提供了类似SHOW COLUMNS的信息。DESCRIBE提供关于一张表的列的信息。col_name可以是一个列名字或包含SQL“%”“_”通配符的一个字符串。这个语句为了与 Oracle 兼容而提供的。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

SHOW TABLE STATUS(在版本3.23引入)运行类似SHOW STATUS,但是提供每个表的更多信息。你也可以使用mysqlshow --status db_name命令得到这张表。

SHOW FIELDSSHOW COLUMNS一个同义词,SHOW KEYSSHOW INDEX一个同义词。

你也可以用mysqlshow db_name tbl_namemysqlshow -k db_name tbl_name 列出一张表的列或索引。

SHOW INDEX以非常相似于ODBCSQLStatistics调用的格式返回索引信息
1,创建一个访问者留言表:

shell> mysql –u root –p

mysql> create database mytest;

mysql> CREATE TABLE guestbook

-> (

-> visitor VARCHAR(40),

-> comments TEXT,

-> entrydate DATETIME

->);

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

mysql> CREATE TABLE test

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

-> SELECT b,c from test2;

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

mysql> CREATE TABLE test SELECT * from test2;

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

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;

给表更名

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;
修改、删除数据记录(DELETE\UPDATE)
有时,希望除去某些记录或更改它们的内容。DELETE UPDATE 语句令我们能做到这一点。

update修改记录

UPDATE tbl_name SET 要更改的列

WHERE 要更新的记录

这里的 WHERE 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。

例如,在pet表中,我们发现宠物Whistler的性别没有指定,因此我们可以这样修改这个记录:

mysql> update pet set sex=’f’ where name=” Whistler”;

用delete删除记录
DELETE 语句有如下格式:
DELETE FROM tbl_name WHERE 要删除的记录
WHERE 子句指定哪些记录应该删除。它是可选的,但是如果不选的话,将会删除所有的记录。这意味着最简单的 DELETE 语句也是最危险的。
这个查询将清除表中的所有内容。一定要当心!
为了删除特定的记录,可用 WHERE 子句来选择所要删除的记录。这类似于 SELECT 语句中的 WHERE 子句。
mysql> delete from pet where name="Whistler";
可以用下面的语句清空整个表:
mysql>delete from pet;

总结

本节介绍了两个SQL语句的用法。使用UPDATEDELETE语句要十分小心,因为可能对你的数据造成危险。尤其是DELETE语句,很容易会删除大量数据。使用时,一定小心。