分类: Mysql/postgreSQL
2008-04-20 11:08:02
下面是某些变量的描述:
变量 | 描述 |
identity | last_insert_id 的别名 (Sybase 兼容) |
sql_low_priority_updates | low_priority_updates 的别名 |
sql_max_join_size | max_join_size 的别名 |
delay_key_write_for_all_tables | 如它与 delay_key_write 一起被设置,那么所有新打开的 MyISAM 表将使用 delayed key writes. |
version | VERSION() 的别名 (Sybase (?) 兼容) |
在启动选项章节中可以找到其它的变量的描述,SHOW VARIABLES
的描述在 SET
部分。查看章节 。查看章节 。查看章节 。
MySQL 服务器支持 # 到该行结束
、-- 到该行结束
以及 /* 行中间或多个行 */
的注释方格:
mysql> SELECT 1+1; # 这个注释直到该行结束 mysql> SELECT 1+1; -- 这个注释直到该行结束 mysql> SELECT 1 /* 这是一个在行中间的注释 */ + 1; mysql> SELECT 1+ /* 这是一个 多行注释的形式 */ 1;
注意 -- (双长划)
注释风格要求在两个长划后至少有一个空格!
尽管服务器理解刚才描述的注释句法,但 MySQL 客户端的语法分析在 /* ... */
注释方式上还有所限止:
mysql
,你会产生困惑,因为提示符从 mysql>
变为 '>
或 ">
。
不论你是以交互式运行 mysql
还是将命令放在一个文件中,然后以 mysql < some-file
告诉 mysql
读取它的输入,这个限制均存在。
MySQL 支持 `--' ANSI SQL 注释风格,但在两个长划后必须跟有一个空格。查看章节 。
一个常见的问题来于试图使用 MySQL 内置的数据类型或函数名作为表的字段名来创建数据表,例如 TIMESTAMP
或 GROUP
。但是,允许你这样做(例如,ABS
是一个允许的列名),当使用函数名也是列名的函数时,函数名与后面跟着的 “(” 之间不允许存在空格。
下面的词在 MySQL 中是被明确保留的。它们大多数被 ANSI SQL92 禁止作为列或表名(例如, GROUP
)。一些被保留是因为 MySQL 需要它们并且它使用的是一个 yacc
语法分析器:
单词 | 单词 | 单词 |
ADD |
ALL |
ALTER |
ANALYZE |
AND |
AS |
ASC |
AUTO_INCREMENT |
BDB |
BEFORE |
BERKELEYDB |
BETWEEN |
BIGINT |
BINARY |
BLOB |
BOTH |
BTREE |
BY |
CASCADE |
CASE |
CHANGE |
CHAR |
CHARACTER |
CHECK |
COLLATE |
COLUMN |
COLUMNS |
CONSTRAINT |
CREATE |
CROSS |
CURRENT_DATE |
CURRENT_TIME |
CURRENT_TIMESTAMP |
DATABASE |
DATABASES |
DAY_HOUR |
DAY_MINUTE |
DAY_SECOND |
DEC |
DECIMAL |
DEFAULT |
DELAYED |
DELETE |
DESC |
DESCRIBE |
DISTINCT |
DISTINCTROW |
DIV |
DOUBLE |
DROP |
ELSE |
ENCLOSED |
ERRORS |
ESCAPED |
EXISTS |
EXPLAIN |
FALSE |
FIELDS |
FLOAT |
FOR |
FORCE |
FOREIGN |
FROM |
FULLTEXT |
FUNCTION |
GRANT |
GROUP |
HASH |
HAVING |
HIGH_PRIORITY |
HOUR_MINUTE |
HOUR_SECOND |
IF |
IGNORE |
IN |
INDEX |
INFILE |
INNER |
INNODB |
INSERT |
INT |
INTEGER |
INTERVAL |
INTO |
IS |
JOIN |
KEY |
KEYS |
KILL |
LEADING |
LEFT |
LIKE |
LIMIT |
LINES |
LOAD |
LOCALTIME |
LOCALTIMESTAMP |
LOCK |
LONG |
LONGBLOB |
LONGTEXT |
LOW_PRIORITY |
MASTER_SERVER_ID |
MATCH |
MEDIUMBLOB |
MEDIUMINT |
MEDIUMTEXT |
MIDDLEINT |
MINUTE_SECOND |
MOD |
MRG_MYISAM |
NATURAL |
NOT |
NULL |
NUMERIC |
ON |
OPTIMIZE |
OPTION |
OPTIONALLY |
OR |
ORDER |
OUTER |
OUTFILE |
PRECISION |
PRIMARY |
PRIVILEGES |
PROCEDURE |
PURGE |
READ |
REAL |
REFERENCES |
REGEXP |
RENAME |
REPLACE |
REQUIRE |
RESTRICT |
RETURNS |
REVOKE |
RIGHT |
RLIKE |
RTREE |
SELECT |
SET |
SHOW |
SMALLINT |
SOME |
SONAME |
SPATIAL |
SQL_BIG_RESULT |
SQL_CALC_FOUND_ROWS |
SQL_SMALL_RESULT |
SSL |
STARTING |
STRAIGHT_JOIN |
STRIPED |
TABLE |
TABLES |
TERMINATED |
THEN |
TINYBLOB |
TINYINT |
TINYTEXT |
TO |
TRAILING |
TRUE |
TYPES |
UNION |
UNIQUE |
UNLOCK |
UNSIGNED |
UPDATE |
USAGE |
USE |
USER_RESOURCES |
USING |
VALUES |
VARBINARY |
VARCHAR |
VARCHARACTER |
VARYING |
WARNINGS |
WHEN |
WHERE |
WITH |
WRITE |
XOR |
YEAR_MONTH |
ZEROFILL |
以下的符号(来自上表)是被 ANSI SQL 禁止的,但是可以被 MySQL 用于列/表名。这是由于用他们命名是很自然的并且有很多的人已经使用了它们。
ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP