先看看MySQL支持的SQL语句的分类 1, 数据库的选取,创建,丢弃和变更 use create database drap database alter database 2, 数据表和索引的创建,变更和丢弃 create table drop table create index drop index alter index 3, 从数据表检索信息 select union 4, 事务处理 begin commit rollback set autocommit 5, 对数据表里面的信息进行修改 delete insert load data replace update 6, 管理型命令 flush grant revoke 一,命名规则 1MySQL允许用在名字中的系统字符. 任何字母数字加上”_” 或 “$” 2名字的长度. 数据库,数据表,数据列,索引等名字最多64个字母 256别名最多256个字母 3名字的限定符 依据不同的上下文,有时需要给某些名字加上某个限制:如数据列的全限定,部分限定,以及无限制.这一点比较容易理解 select * from db_name.tbl_name… 二,MySQL中的大小写问题 关键字和函数名:不区别 数据库名数据表名:根据服务器主机系统而定 数据列名索引名:不区别 别名:区别大小写 一般来说,不管系统是否区分数据库名和数据表名中的字母大小写情况,我们都应该在同一个查询语句里面以前后一致的字母大小写形式来写出这些名字,这是一个非常好的编程习惯。 三,MySQL支持的名种数据表类型详解 1,ISAM数据表 这是3.23版本之前的MySQL支特的唯一一种表类型,目前己经过时,MyIASM处理程库逐步取代了ISAM处理程序,这种老式的表类型己经没有人在用了
五,变更数据表的结构 当发现某个数据表的结构己经不能满足我们的使用要求时,就要对其结构进行变更.可能需要这个数据表存放比以前更多的信息;也可能是这个数据表里面的某些信息己经没用;了或许是现有的某个数据列宽度太窄…在这些情况下都要用到alter 语匀 1,重新命名数据表 alter table A rename to B //数据表A改名为B rename table A to B //数据表A改名为B rename A toC,B to A,C to A //数据表A和数据表B互换名字 alter table S.A rename to T.A //数据库S里面的表A移动到数据库B里面 rename table S.A to T.A //数据库S里面的表A移动到数据库B里面 2,改变数据列的类型 我们现在要把数据表A里面的一个smallint unsigned类型的数据列I再次改动为 mediumint unsigned 类型 alter table A motify I mediumint unsigned alter table A change I I mediumint unsigned 注意change子句的特点:不仅能够改变数据列的类型,还能改变数据列的名字。这是modify子句所不能完成的。下面就把这个数据列改名了。 alter table A change I J mediumint unsigned 3,将数据表由可变长度数据行转变成固定长度数据行 有的时候为了提高性能,需要做这样的转变,但有一点需要注意:必须用同一条alter命令来一次改变所有的数据列,不能仅仅改变一个数据列!举例如下: create table A(name varchar(40),address varchar(80)) 我们开始修改命令就应该是: alter table A modify name char(40),modify address char(80); 4,将数据表由固定长度数据行转变成可变长度数据行 如果觉得空间利用率不高,那就需要再转变回来,这个就很简单了,没有特别要求 alter table A modify name varchar(40) 5,转换数据表类型 我们知道,MySQL数据库存在多种数据表类型,但每一种类型的特性并不相同。 如果你想让你的数据表支持事务处理机制。那就必须把它搞成BDB或innoBDB格式 alter table A type= BDB alter table A type= InnoBDB