概述
測試環境:mysql 5.6.21
步驟建立測試表
create table `product` (
`proid` int(11) not null auto_increment comment '商品表主鍵',
`price` decimal(10,2) not null comment '商品**',
`type` int(11) not null comment '商品類別(0生鮮,1食品,2生活)',
`dtime` datetime not null comment '建立時間',
primary key (`proid`)
) engine=innodb auto_increment=1 default charset=utf8 comment='商品表';
create table `producttype` (
`id` int(11) not null comment '商品類別(0生鮮,1食品,2生活)',
`amount` int(11) comment '每種類別商品總金額',
unique key (`id`)
) engine=innodb default charset=utf8 comment='商品類別資金彙總表'
插入測試資料
單錶更新操作
關聯更新操作
1.查詢所有字段
insert into producttype(id) values(4);
update producttype
set producttype.amount= (select ifnull(sum(product.price),0.00) from product where product.type = producttype.id group by product.type);
注意:大家注意看到rows matched:4,表示符合條件的記錄是4條,實際更新了三條,關聯語句預設不去判斷裡面的關聯的實際行。
2.只查詢需要更新的字段
update producttype
set amount=null;
update producttype,product
set producttype.amount=
(select ifnull(sum(product.price),0.00)
from product
where product.type = producttype.id
group by product.type)
where product.type = producttype.id;
改用下面這種方法:rows matched:3,查詢到了符合條件的行是3行,沒有查詢無關聯的行。 總結
mysql的update的關聯操作在5.6中後面不能直接接from語句,只能update 所有的連線表然後where,如果之前有事情其它資料庫產品的習慣在這裡要注意了。
mysql常用函式封裝 mysql的常用操作的封裝
1 概述 為了把繁瑣的操作簡化成簡單的類,設計了2個類用來封裝了mysql的常用操作,以便使用者可以方便地使用。2 組成 1 資料庫操作類cdatabaseconnect 2 sql物件類csqlstatement 3 類的標頭檔案 include include mysql.h include u...
mysql的ccid 學習MySQL常用操作命令
1 啟動mysql伺服器 d mysqlbinmysqld 2 進入mysql互動操作介面 在dos方式下,執行 d mysqlbinmysql 出現 mysql 的提示符,此時已進入mysql的互動操作方式。如果出現 error 2003 can t connect to mysql server...
python字典update去重 字典的操作
字典 要麼是已經有了字典,我們呼叫裡面的鍵值對 要麼是空字典,我們根據實際情況放入鍵值對 增加dict1 建立空字典後逐個新增鍵值對,非空字典也同樣新增,如果遇到鍵相同的話,就會覆蓋掉原先的鍵值對 dict1 color red dict1 points 5 dict1 x position 25 ...