您的位置:首页 > 数据库 > MySQL

Mysql 操作

2015-06-02 11:21 513 查看
查看表结构

show columns from table_name from db_name;


增加字段

alter table suplychain_flashsale_orderdetail add column inferior_quantity int(11) not Null;


修改字段类型

ALTER TABLE table_name  MODIFY COLUMN created datetime;


删除字段

ALTER TABLE table_name drop column ##**;


范围内查找

select product_id,sale_time,ding_huo_num,goods_out_num from supply_chain_stats_order
where product_id in ( select outer_id from shop_items_product where outer_id='802055202') group by product_id;


表连接

select A.id,A.name,B.num from table1 as A  left join table2 as B on A.id=B.id


str to date

select id,merge_trade_id,pay_time from shop_trades_mergeorder  pay_time>=str_to_date("2015-05-25 0:0:0","%Y-%m-%d %H:%i:%s");


sum使用

select sum(if(status='1',num,0)) from table group by outer_id
#求出状态为1的num的和


更新字段

update shop_items_product set sale_time="2015-09-03" where sale_time="2015-09-04";


MySQL 150 error

1, 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11) 都显示为integer。另外,你还必须确定两个字段是否一个为 SIGNED,而另一个又是UNSIGNED, 这两字段必须严格地一致匹配。

2,外键定义服从下列情况:

- 所有tables必须是InnoDB型,它们不能是临时表。

- 在引用表中,必须有一个索引,外键列以同样的顺序被列在其中作为第一列。这样一个索引如果不存在,它必须在引用表里被自动创建。

- 在引用表中,必须有一个索引,被引用的列以同样的顺序被列在其中作为第一列。

- 不支持对外键列的索引前缀。这样的后果之一是BLOB和TEXT列不被包括在一个外键中,这是因为对这些列的索引必须总是包含一个前缀长度。

- 如果CONSTRAINTsymbol被给出,它在数据库里必须是唯一的。如果它没有被给出,InnoDB自动创建这个名字。

MySQL 数据迁移

下载导出数据脚本

导入数据命令 mysql -h hostname -u 用户名 -p 密码 -D 数据库名 < 文件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql