MySQL

MySQL 导入大SQL文件

使用mysql导入较大的生气了文件时,会发生异常:

Got a packet bigger than‘max_allowed_packet’bytes
// 导入SQL文件大于允许的数据包大小

这时有两种解决办法:

1.临时修改

set global max_allowed_packet=524288000; -- 修改为 512M 

2. 修改MySQL配置文件(my.cnf):

在 [MySQLd] 部分添加一句(如果存在,调整其值就可以):
max_allowed_packet=512M

查看linux上mysql配置文件路径:http://www.jb51.net/article/96009.htm

流程控制

在SQL中使用 “+” 将字段相加求和,如果其中一个值为 NULL ,其结果也为 NULL 。

165427_P75e_3620768.png

这时就需要使用 IFNULL(expr1,expr2) 函数:

101720_nmCS_3620768.png

IFNULL(comm,0) 等效于

//java
if(comm==null)
    return 0;
else
    return comm;
//sql
IF(ISNULL(comm),comm,0)

 

IF(expr1,expr2,expr3)  // 类 java ?:

如果 expr1 为 true,则返回 expr2,否则返回 expr3。

CASE sex
    WHEN '1' THEN '男'
    WHEN '2' THEN '女'
    ELSE 'err'
END // 类java switch

 

decimal

decimal 能表示更准确的精度,因为float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。

decimal从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)

在MySQL 5.1中,参量的取值范围如下:

  • M:是数值的最大长度,包括整数和小数部分(精度 precision)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认值是10。
  • D:是小数点右侧数字的数目(标度 scale)。其范围是0~30,但不得超过M。

注意:

整数部分最大长度为 M-D,小数部分最大长度为 D。

例:decimal(5,3)

能表示的最大数值是:99.999。像 1234.5 这样的数值是不能保存的。

转载于:https://my.oschina.net/ZhongCW/blog/1557342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值