TEXT(len) TEXT(len),len是最大长度。并且LIKE可运用。
INT INT,有很多的选项!
REAL REAL,或FLOAT。有4和8字节版本。
UINT INT UNSIGNED
DATE DATE,使用 ANSI SQL 格式而非mSQL自己的。
TIME TIME
MONEY DECIMAL(12,2),有2个小数位的定点值。
索引创建 MySQL
索引可以在表创建时用CREATE TABLE语句指定。
mSQL
在表被创建了以后,索引必须被创建,用单独的CREATE INDEX语句。
把一个唯一标识符插入到一张表中
MySQL 使用AUTO_INCREMENT作为列类型修饰符。见20.4.29
mysql_insert_id()。
mSQL
在一张表上创建一个SEQUENCE并且选择_seq列。
为行获得一个唯一标识符
MySQL 向表中增加一个PRIMARY KEY或UNIQUE键。
mSQL 使用_rowid列。注意_rowid可以将来改变,取决于很多因素。
得到列最后被修改的时间
MySQL 在表中增加一个TIMESTAMP列。如果你不给出列值或如果你给它一个NULL值,该列自动为INSERT或UPDATE语句设置为当前的日期和时间。
mSQL 使用_timestamp列。
NULL值的比较
MySQL MySQL遵从ANSI SQL且与NULL的比较总是NULL。
mSQL 在mSQL中,NULL = NULL是TRUE(真)。当从mSQL到MySQL移植老的代码时,你必须将=NULL改委IS NULL,并将<>NULL改为IS NOT NULL。
字符串的比较
MySQL
通常,字符串比较以大小写无关方式按当前字符集(缺省为ISO-8859-1 Latin1)决定的排序次序实施。如果你不喜欢这样,声明你的列有BINARY属性,它使得比较根据用在MySQL服务器主机上的ASCII顺序进行。
mSQL
所有的字符串比较以大小写敏感的方式以ASCII顺序排序来进行。
大小写不敏感的搜索
MySQL
LIKE是一个大小写不敏感或大小写敏感的运算符,这取决于涉及的列。如果LIKE参数不以一个通配符字符开始,如有可能,MySQL则使用索引。
mSQL
使用CLIKE。
尾部空格的处理
MySQL
剥去CHAR和VARCHAR列尾部的空格。如果不希望这种行为,使用一个TEXT行列。
mSQL
保留尾部的空格。
WHERE子句
MySQL
MySQL正确地优先化任何东西(AND在OR前计算)。要想在MySQL里得到mSQL的行为,使用括号(如下所示)。
mSQL
从左到右计算任何东西。这意味着超过3个参数的一些逻辑运算不能以任何方式表示,它也意味着当你升级到MySQL时,你必须改变一些查询。你通过增加括号很容易做到这点。假定你有下列mSQL查询:
mysql> SELECT * FROM table WHERE a=1 AND b=2 OR a=3 AND b=4;
为了使MySQL像mSQL那样计算它,你必须增加括号:
mysql> SELECT * FROM table WHERE (a=1 AND (b=2 OR (a=3 AND (b=4))));
存取控制 MySQL
有表来存储对每个用户、主机和数据库的授权(许可)选项。见6.6 权限
系统如何工作。
mSQL
有一个文件“mSQL.acl”,在哪里你能为用户授权读/写权限。
怎样对比MySQL与PostgreSQL PostgreSQL有一些更高级的功能如定义用户类型、触发器、规则和一些事务支持。然而,PostgreSQL 缺乏很多来自 ANSI SQL和ODBC的很多标准类型和函数。对于一个完整的限制列表及其支持或不支持哪一个类型和函数,见crash-me网页。
www.xker.com(小新技术网) 通常,PostgreSQL是比MySQL慢很多。见10.8 使用你自己的基准。这大部分是由于他们的事务系统。如果你确实需要事务或PostgreSQL提供的丰富的类型体系并且你能承受速度的损失,你应该看看 PostgreSQL。

发表评论