MySQL中各数据类型的取值范围
2007/08/12 22:23 ArthurXF
以下是MySQL中各字段的取值范围:
TINYINT
-128 - 127
TINYINT UNSIGNED
0 - 255
SMALLINT
-32768 - 32767
SMALLINT UNSIGNED
0 - 65535
MEDIUMINT
-8388608 - 8388607
MEDIUMINT UNSIGNED
0 - 16777215
INT 或 INTEGER
-2147483648 - 2147483647
INT UNSIGNED 或 INTEGER UNSIGNED
0 - 4294967295
BIGINT
-9223372036854775808 - 9223372036854775807
BIGINT UNSIGNED
0 - 18446744073709551615
FLOAT
-3.402823466E+38 - -1.175494351E-38,0,1.175494351E-38 - 3.402823466E+38
DOUBLE 或 DOUBLE PRECISION 或 REAL
-1.7976931348623157E+308 - -2.2250738585072014E-308,0,2.2250738585072014E-308 - 1.7976931348623157E+308
DECIMAL[(M,[D])] 或 NUMERIC(M,D)
由M(整个数字的长度,包括小数点,小数点左边的位数,小数点右边的位数,但不包括负号)和D(小数点右边的位数)来决定,M缺省为10,D缺省为0
DATE
1000-01-01 - 9999-12-31
DATETIME
1000-01-01 00:00:00 - 9999-12-31 23:59:59
TIMESTAMP
1970-01-01 00:00:00 - 2037年的某天(具体是哪天我也不知道,呵呵)
TIME
-838:59:59' to 838:59:59
YEAR[(2|4)]
缺省为4位格式,4位格式取值范围为1901 - 2155,0000,2位格式取值范围为70-69(1970-2069)
CHAR(M) [BINARY] 或 NCHAR(M) [BINARY]
M的范围为1 - 255,如果没有BINARY项,则不分大小写,NCHAR表示使用缺省的字符集.在数据库中以空格补足,但在取出来时末尾的空格将自动去掉.
[NATIONAL] VARCHAR(M) [BINARY]
M的范围为1 - 255.在数据库中末尾的空格将自动去掉.
TINYBLOB 或 TINYTEXT
255(2^8-1)个字符
BLOB 或 TEXT
65535(2^16-1)个字符
MEDIUMBLOB 或 MEDIUMTEXT
16777215 (2^24-1)个字符
LONGBLOB 或 LONGTEXT
4294967295 (2^32-1)个字符
ENUM('value1','value2',...)
可以总共有65535个不同的值
SET('value1','value2',...)
最多有64个成员
TINYINT
-128 - 127
TINYINT UNSIGNED
0 - 255
SMALLINT
-32768 - 32767
SMALLINT UNSIGNED
0 - 65535
MEDIUMINT
-8388608 - 8388607
MEDIUMINT UNSIGNED
0 - 16777215
INT 或 INTEGER
-2147483648 - 2147483647
INT UNSIGNED 或 INTEGER UNSIGNED
0 - 4294967295
BIGINT
-9223372036854775808 - 9223372036854775807
BIGINT UNSIGNED
0 - 18446744073709551615
FLOAT
-3.402823466E+38 - -1.175494351E-38,0,1.175494351E-38 - 3.402823466E+38
DOUBLE 或 DOUBLE PRECISION 或 REAL
-1.7976931348623157E+308 - -2.2250738585072014E-308,0,2.2250738585072014E-308 - 1.7976931348623157E+308
DECIMAL[(M,[D])] 或 NUMERIC(M,D)
由M(整个数字的长度,包括小数点,小数点左边的位数,小数点右边的位数,但不包括负号)和D(小数点右边的位数)来决定,M缺省为10,D缺省为0
DATE
1000-01-01 - 9999-12-31
DATETIME
1000-01-01 00:00:00 - 9999-12-31 23:59:59
TIMESTAMP
1970-01-01 00:00:00 - 2037年的某天(具体是哪天我也不知道,呵呵)
TIME
-838:59:59' to 838:59:59
YEAR[(2|4)]
缺省为4位格式,4位格式取值范围为1901 - 2155,0000,2位格式取值范围为70-69(1970-2069)
CHAR(M) [BINARY] 或 NCHAR(M) [BINARY]
M的范围为1 - 255,如果没有BINARY项,则不分大小写,NCHAR表示使用缺省的字符集.在数据库中以空格补足,但在取出来时末尾的空格将自动去掉.
[NATIONAL] VARCHAR(M) [BINARY]
M的范围为1 - 255.在数据库中末尾的空格将自动去掉.
TINYBLOB 或 TINYTEXT
255(2^8-1)个字符
BLOB 或 TEXT
65535(2^16-1)个字符
MEDIUMBLOB 或 MEDIUMTEXT
16777215 (2^24-1)个字符
LONGBLOB 或 LONGTEXT
4294967295 (2^32-1)个字符
ENUM('value1','value2',...)
可以总共有65535个不同的值
SET('value1','value2',...)
最多有64个成员
推荐一个小巧的MYSQL管理工具——MyWWWatcher
2007/08/04 12:57 ArthurXF
MyWWWatcher是一个管理MySQL的小工具,比PHPMyAdmin要小很多,很容易使用,配置灵活,有下列非常好的功能:
1.Queries
这个功能可以让我们直接输入SQL命令操作数据库,操作的命令都保存在History记录中,你可以随时返回以前输入的命令,为我们节省时间,并且SQL命令执行的结果会直接显示在页面下方,特殊的是,可以直接将数据导出为csv格式文件,或者将SQL命令加入Query archive收藏。
2.Query archive
SQL命令的收藏夹,方便我们使用常用的SQL命令。
3.Import
数据导入功能,可以直接用SQL命令导入数据,也可以导入SQL文件,CVS文件,如果上传得ZIP或者GZ文件,会先解压在导入。
4.Export
数据导出功能,和PHPMyAdmin导出功能类似,这里不做过多介绍了。
5.Data insertion
数据注入器,默认的情况下,允许一次往一张表里提交3条数据,想多提交几条,可以修改配置文件中的insert_rows = 3。
6.Scheme
数据字典生成器,通过这个功能可以非常直观方便的了解每个表的数据字段的设定。
7. Indexes
索引管理器,可以方便删除和添加索引,另外还可以方便建立组合索引。
8.Settings
配置文件管理器,方便得修改配置文件中的参数,保存成功的前提是必须ini目录为可写权限。
这个工具方便小巧,完全可以满足大部分使用的功能了。推荐给大家,大家可以下载试用一下。
访问:http://www.the.cz/mywwwatcher
1.Queries
这个功能可以让我们直接输入SQL命令操作数据库,操作的命令都保存在History记录中,你可以随时返回以前输入的命令,为我们节省时间,并且SQL命令执行的结果会直接显示在页面下方,特殊的是,可以直接将数据导出为csv格式文件,或者将SQL命令加入Query archive收藏。
2.Query archive
SQL命令的收藏夹,方便我们使用常用的SQL命令。
3.Import
数据导入功能,可以直接用SQL命令导入数据,也可以导入SQL文件,CVS文件,如果上传得ZIP或者GZ文件,会先解压在导入。
4.Export
数据导出功能,和PHPMyAdmin导出功能类似,这里不做过多介绍了。
5.Data insertion
数据注入器,默认的情况下,允许一次往一张表里提交3条数据,想多提交几条,可以修改配置文件中的insert_rows = 3。
6.Scheme
数据字典生成器,通过这个功能可以非常直观方便的了解每个表的数据字段的设定。
7. Indexes
索引管理器,可以方便删除和添加索引,另外还可以方便建立组合索引。
8.Settings
配置文件管理器,方便得修改配置文件中的参数,保存成功的前提是必须ini目录为可写权限。
这个工具方便小巧,完全可以满足大部分使用的功能了。推荐给大家,大家可以下载试用一下。
访问:http://www.the.cz/mywwwatcher
MySQL5.1的保留关键字
2007/07/11 14:51 ArthurXF
ADD | ALL | ALTER |
ANALYZE | AND | AS |
ASC | ASENSITIVE | BEFORE |
BETWEEN | BIGINT | BINARY |
BLOB | BOTH | BY |
CALL | CASCADE | CASE |
CHANGE | CHAR | CHARACTER |
CHECK | COLLATE | COLUMN |
CONDITION | CONNECTION | CONSTRAINT |
CONTINUE | CONVERT | CREATE |
CROSS | CURRENT_DATE | CURRENT_TIME |
CURRENT_TIMESTAMP | CURRENT_USER | CURSOR |
DATABASE | DATABASES | DAY_HOUR |
DAY_MICROSECOND | DAY_MINUTE | DAY_SECOND |
DEC | DECIMAL | DECLARE |
DEFAULT | DELAYED | DELETE |
DESC | DESCRIBE | DETERMINISTIC |
DISTINCT | DISTINCTROW | DIV |
DOUBLE | DROP | DUAL |
EACH | ELSE | ELSEIF |
ENCLOSED | ESCAPED | EXISTS |
EXIT | EXPLAIN | FALSE |
FETCH | FLOAT | FLOAT4 |
FLOAT8 | FOR | FORCE |
FOREIGN | FROM | FULLTEXT |
GOTO | GRANT | GROUP |
HAVING | HIGH_PRIORITY | HOUR_MICROSECOND |
HOUR_MINUTE | HOUR_SECOND | IF |
IGNORE | IN | INDEX |
INFILE | INNER | INOUT |
INSENSITIVE | INSERT | INT |
INT1 | INT2 | INT3 |
INT4 | INT8 | INTEGER |
INTERVAL | INTO | IS |
ITERATE | JOIN | KEY |
KEYS | KILL | LABEL |
LEADING | LEAVE | LEFT |
LIKE | LIMIT | LINEAR |
LINES | LOAD | LOCALTIME |
LOCALTIMESTAMP | LOCK | LONG |
LONGBLOB | LONGTEXT | LOOP |
LOW_PRIORITY | MATCH | MEDIUMBLOB |
MEDIUMINT | MEDIUMTEXT | MIDDLEINT |
MINUTE_MICROSECOND | MINUTE_SECOND | MOD |
MODIFIES | NATURAL | NOT |
NO_WRITE_TO_BINLOG | NULL | NUMERIC |
ON | OPTIMIZE | OPTION |
OPTIONALLY | OR | ORDER |
OUT | OUTER | OUTFILE |
PRECISION | PRIMARY | PROCEDURE |
PURGE | RAID0 | RANGE |
READ | READS | REAL |
REFERENCES | REGEXP | RELEASE |
RENAME | REPEAT | REPLACE |
REQUIRE | RESTRICT | RETURN |
REVOKE | RIGHT | RLIKE |
SCHEMA | SCHEMAS | SECOND_MICROSECOND |
SELECT | SENSITIVE | SEPARATOR |
SET | SHOW | SMALLINT |
SPATIAL | SPECIFIC | SQL |
SQLEXCEPTION | SQLSTATE | SQLWARNING |
SQL_BIG_RESULT | SQL_CALC_FOUND_ROWS | SQL_SMALL_RESULT |
SSL | STARTING | STRAIGHT_JOIN |
TABLE | TERMINATED | THEN |
TINYBLOB | TINYINT | TINYTEXT |
TO | TRAILING | TRIGGER |
TRUE | UNDO | UNION |
UNIQUE | UNLOCK | UNSIGNED |
UPDATE | USAGE | USE |
USING | UTC_DATE | UTC_TIME |
UTC_TIMESTAMP | VALUES | VARBINARY |
VARCHAR | VARCHARACTER | VARYING |
WHEN | WHERE | WHILE |
WITH | WRITE | X509 |
XOR | YEAR_MONTH | ZEROFILL |
MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。下面列出了一些例子:
ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP
关于select的嵌套用法
2007/06/05 17:46 ArthurXF
select的嵌套用法:
例子:
如果要从表userinfo(此表也含有userid)中选出与表result的userid不同的所有数据,例子如下:
引用
select A from (select * from tableB) as t1
或者
select A from (select * from tableB) t1
或者
select A from (select * from tableB) t1
例子:
引用
SELECT *
FROM (
SELECT *
FROM affiche
ORDER BY `submit_date` DESC
) AS t1
GROUP BY type_id
ORDER BY `submit_date` DESC
LIMIT 0 , 30
FROM (
SELECT *
FROM affiche
ORDER BY `submit_date` DESC
) AS t1
GROUP BY type_id
ORDER BY `submit_date` DESC
LIMIT 0 , 30
如果要从表userinfo(此表也含有userid)中选出与表result的userid不同的所有数据,例子如下:
引用
select * from userinfo where userinfo.userid not in(select result.userid from result)