let sql = `select * from user where 1 = 1`
username && (sql += ` and username='${ username }'`);
password && (sql += ` and password='${ password }'`);
insert into user (username, password, avatar, nickname) values ('${username}', '${password}', '${avatar}', '${nickname}')
update blogs set title=${title}, content=${content} where id=${id}
delete from blogs where id=${id} and author=${author}
select * from blog where 1=1 and title like '%${keyword}%' order by createtime desc
select count(id) from user where 1=1 // 求和
select * from tableName limit i,n
select * from tableName limit n offseet i
# tableName:表名
# i:為查詢結(jié)果的索引值(默認(rèn)從0開始),當(dāng)i=0時(shí)可省略i
# n:為查詢結(jié)果返回的數(shù)量
# i與n之間使用英文逗號","隔開
# 前端應(yīng)用場景: 分頁, 加載朋友圈(也是分頁的一種表現(xiàn)形式)
limit n 等同于 limit 0,n
limit ${pageSize} offset ${ (currentPage-1) * pageSize} // 前端第1頁currentPage=1
select * from tableName order by hits desc limit 0,10
select * from tableName order by hits desc limit 10
blogs.userid 參考 user.id
blogs 是子表,user 是父表。
- CASCADE(級聯(lián)):父表delete、update的時(shí)候,子表會(huì)delete、update掉關(guān)聯(lián)記錄;
- NO ACTION(不采取行動(dòng)):同 RESTRICT,也是首先先檢查外鍵;
- RESTRICT(限制):如果想要?jiǎng)h除父表的記錄時(shí),而在子表中有關(guān)聯(lián)該父表的記錄,則不允許刪除父表中的記錄;
- SET NULL(設(shè)置 null):父表delete、update的時(shí)候,子表會(huì)將關(guān)聯(lián)記錄的外鍵字段所在列設(shè)為null,所以注意在設(shè)計(jì)子表時(shí)外鍵不能設(shè)為not null;
select
*
from
blog
inner join user on user.id = blog.userid // 不一定必須是外鍵用, 如果 user.id = blog.id
where
user.username = 'wgm'