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:为查询结果的索引值(默认从0开始),当i=0时可省略i
# n:为查询结果返回的数量
# i与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(级联):父表delete、update的时候,子表会delete、update掉关联记录;
- NO ACTION(不采取行动):同 RESTRICT,也是首先先检查外键;
- RESTRICT(限制):如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
- SET NULL(设置 null):父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
select
*
from
blog
inner join user on user.id = blog.userid // 不一定必须是外键用, 如果 user.id = blog.id
where
user.username = 'wgm'