使用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 FIELDS 是 SHOW COLUMNS 一个同义词, SHOW KEYS 是 SHOW INDEX 一个同义词。



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



SHOW INDEX 以非常相似于 ODBC 的 SQLStatistics 调用的格式返回索引信息



1,创建一个访问者留言表:



shell> mysql –u root –p





mysql> create database mytest;





mysql> CREATE   TABLE   guestbook





-> (





-> visitor VARCHAR(40),





-> comments TEXT,





-> entrydate DATETIME





->);





2, 如果你在 CREATE 语句后指定一个 SELECT , MySQL 将为在 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 语句的用法。使用 UPDATE 和 DELETE 语句要十分小心,因为可能对你的数据造成危险。尤其是 DELETE 语句,很容易会删除大量数据。使用时,一定小心。


转载于:https://blog.51cto.com/blanklinux/195303