使用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