- [x] 完成今日课后任务。
- [x] 整理笔记。
未搞明白的问题
- [ ] inner join 后面使用 on 和 where 的区别。
课后任务
子查询来自安徽的学生语文成绩
select score.stuid, (select name from shijingyongqiStudent where stuid = score.stuid) as name, (select address from shijingyongqiStudent where stuid = score.stuid) as address, score.kemu, score.score from shijingyongqiScore as score where stuid in (select stuid from shijingyongqiStudent as stu where address like '%安徽%') and score.kemu = '语文';
两表联查来自安徽学生的语文成绩
select student.stuid, student.name, student.address, score.kemu, score.score from shijingyongqiStudent as student inner join shijingyongqiScore as score on student.stuid = score.stuid and address like '%安徽%' and score.kemu = '语文';
两表联查王五的英语成绩
select score.kemu, score.score from shijingyongqiScore as score where stuid = (select stuid from shijingyongqiStudent as stu where stu.name = '王五') and score.kemu = '英语';
日报写到博客园中
Linux 日志介绍
日志:记录一个网站或者系统的执行记录,方便以后进行跟踪。如果程序出现错误,会把错误写到日志文件里。
四个级别:ERROR 错误,WARN 警告,INFO 信息日志,DEBUG 调试日志(只有在 Debug 状态下输出),TRACE(release 下输出,release 下 debug 会消失)
用到 Mock 的情况
- 后台接口还没有开发,前端可以 Mock 模拟数据来进行调试。
- 后端使用 Mock 模拟数据。
- 异常测试场景,比如需要后台返回一些特殊数据。
- 业务系统的关联方太多,模拟关联系统不稳定。
- 定位 APP 上前后端问题,比如前端点击无反应,可以拷贝浏览器中测试(查看是否是前端无法调用手机浏览器的问题)。
UI 点赞测试
Fiddler 返回 500 状态码
笔记
别名
使用别名的时候不用加上引号。别名只是展示结果的时候显示,不会改变数据库中的字段。
别名没有生效,使用之后会报错。比如 select age 年龄 from Student where 年龄 > 10 是错误的。
- 列名 AS 别名:select sex as 性别 from Student;
- 列名 别名:select sex 性别, age 年龄 from Student;
- SQL Server: select 序号 = id +2 from Student; (每行的序号+2)
- 例子:select id, 总成绩 = (数学分数+英语分数+语文分数) from 成绩表;
select 学生 id, (数学分数+英语分数+语文分数) as 总成绩 from 成绩表; // 这样也可以使用。
两表联查
A表 inner join B表 on 两张表关联的数据,必须两张表的数据有同时存在的。
select Student.Name, Student.Sex, Score.Course, Score.Grade from Student join Score on Student.id = Score.stuId;
Having
where 对列进行筛选
having 对聚合函数结果进行筛选,聚合函数都可以在这里使用。
求人数大于 5 的专业
select department, count(department) from Student Group by department having count(department) > 5;
Count 的特殊形式
聚合函数里面,字段中的值有 NULL,那么不参与运算。
count(1) 和 count(*) 在字段值有 NULL 没有影响。
Linux 使用命令
brew install sshpass # 带密码登录 Liunx sshpass -p "password" ssh -p "port" "username"@"ip" # 环境变量中设置别名 vim ~/.bash_profile # 或者 vim /etc/profile alias tanklinux="sshpass -p "password" ssh -p "port" "username"@"ip"" source ~/.bash_profile # 使用 Docker 安装 tomcat apt-get install docker.io systemctl enable docker docker search tomcat docker pull docker docker run -d --name='tomcat' -p 38080:8080 -v /usr/local/myhtml:/usr/local/tomcat/webapps/test --restart always tomcat # scp 本地复制文件到远程,使用的时候先赋予 chmod 777 remote_folder 权限 scp local_file remote_username@remote_ip:remote_folder # scp 本地复制文件夹到远程,使用端口 22 scp -r -P 22 local_folder remote_username@remote_ip:remote_folder # scp 远程文件复制到本地 scp remote_username@remote_ip:remote_folder local_folder # scp 远程文件夹复制到本地 scp -r remote_username@remote_ip:remote_folder local_folder
Token 认证
- token 可以位于请求行,请求头,请求体任意一个部分。
- 登录,响应里面有一个 token 字符串,JMeter 提取出来之后,存到一个变量里面。
- 之后的请求中,需要使用到这个 token 认证才可以放行。
反编译 APK
先把软件安上,目前搞不定,以后有空再搞。
# 反编译 apk 资源文件 brew install apktool # 将 class.dex 转换为 classes-dex2jar.jar brew install dex2jar # 查看 classes-dex2jar.jar 源码 brew cask install jd-gui