MySQL中各种字段的取值范围
时间:2005-09-29 20:59:14 来源:techtarget.com.cn 作者:techtarget.com.cn
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
� ......
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\\test.sql
......
1、确定数据库默认编码,比如编码为utf8,将读入途径编码同样设为utf8,命令为:set names utf8;
2、source d:/20080613.sql 导入数据。验证数据库中的数据是否存在乱码。
3、如果仍然存在乱码问题,这时候就要考虑改变导入文件的编码,试着导入,直至没有乱码出现。
网页数据存入乱码问题依照以上方法同样可以解决。可将网页编码改为与数据库相同的编码。问题自然解决。
另外,在windows中文件路径 d:\ftptemp\test.sql 应写成 d:/ftptemp/test.sql ......
在程序开发中,有时会被字符乱码的问题所困扰。对此,必须理解 MySQL 的字符集编码设置的原理:在MySQL中,默认使用的是lartin1,也就是ISO8859-1字符集编码。这是一种8位的编码,适用于所有西欧字符。而对于汉字等是不合适的。最好、最通用的编码格式是utf-8,UTF-8(8 位元 Universal Character Set/Unicode Transformation Format)是一种针对Unicode 的可变长度字节编码的Unicode字符集。它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。所以对于8位的西欧字符集来说,更能比较节省空间,而又能够有效地表示汉字等字符。 MySQL服务器对字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。
一、MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置:
(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以� ......
对mysql存储过程的简单应用
向表中插入模拟数据,检查分页效果是否出错。
create procedure dowhile()
begin
declare cnt INT default 0;
while cnt<100 do
INSERT INTO `test`.`news` (`F_ID` ,`F_TITLE` ,`F_CLASSID` ,`F_ISUP` ,`F_CONTENT` ,`F_SOURCE` ,`F_DATETIME` ,`F_READCOUNT` )VALUES (NULL , 'title', '2', '', 'content', '', '', '');
set cnt=cnt+1;
end while;
end//
-----------------------------------------
注意:设置delimiter //
参考:http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html
附:mysql 5.0存储过程学习总结
一.创建存储过程
1.基本语法:
create procedure sp_name()
begin
………
end
2.参数传递
举例:
mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 from t;
-> END//
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> CALL simp ......
1.什么是UDF? UDF(user-defined function)是mysql为用户提供的自定义函数的扩展接口。它本质上和mysql提供的max、min和count等函数类似。 2.UDF可以做什么? UDF是自定义函数,所以它能做什么完全取决于你的实现。UDF可以在普通的sql、trigger以及store procedure被调用。 如果自定义一个tcp_send(ip,port,msg)的函数,那么就可以通过调用"SELECT tcp_send(‘127.0.0.1’, ‘9090’, ‘a msg’)”实现和127.0.0.1:9090的通信。 UDF在trigger中使用: 创建表: CREATE TABLE test.tab1 (a int); 创建触发器: DELIMITER // use test; // CREATE TRIGGER tab1_insert AFTER UPDATE ON test.tab1 FOR EACH ROW BEGIN SET @result = (SELECT http_post('127.0.0.1', '9090', OLD.a)); END; // DELIMITER ; 3. UDF+trigger的实际应用 应用1:实现数据库主动进行cache更新 应用2:实现不同系统间的数据传递 4. UDF DEMO 近期推出… ......