别院牧志知识库 别院牧志知识库
首页
  • 基础

    • 全栈之路
    • 😎Awesome资源
  • 进阶

    • Python 工匠系列
    • 高阶知识点
  • 指南教程

    • Socket 编程
    • 异步编程
    • PEP 系列
  • 面试

    • Python 面试题
    • 2022 面试记录
    • 2021 面试记录
    • 2020 面试记录
    • 2019 面试记录
    • 数据库索引原理
  • 基金

    • 基金知识
    • 基金经理
  • 细读经典

    • 德隆-三个知道
    • 孔曼子-摊大饼理论
    • 配置者说-躺赢之路
    • 资水-建立自己的投资体系
    • 反脆弱
  • Git 参考手册
  • 提问的智慧
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
首页
  • 基础

    • 全栈之路
    • 😎Awesome资源
  • 进阶

    • Python 工匠系列
    • 高阶知识点
  • 指南教程

    • Socket 编程
    • 异步编程
    • PEP 系列
  • 面试

    • Python 面试题
    • 2022 面试记录
    • 2021 面试记录
    • 2020 面试记录
    • 2019 面试记录
    • 数据库索引原理
  • 基金

    • 基金知识
    • 基金经理
  • 细读经典

    • 德隆-三个知道
    • 孔曼子-摊大饼理论
    • 配置者说-躺赢之路
    • 资水-建立自己的投资体系
    • 反脆弱
  • Git 参考手册
  • 提问的智慧
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 辨析

  • Sockets编程

  • Django

  • stackoverflow

  • Flask

  • 全栈之路

  • 面试

    • Python 面试
    • 途游面试
    • 项目产品面试
    • 2019 面试记录
    • 2020 面试记录
    • 2021 面试记录
      • 智源
        • 按照班级查询每个班成绩最高的学生的成绩
        • 查询总分最高的学生
        • 指令
        • nginx 和 wsgi 区别
        • web 应用如何利用多核服务器提高 cpu 使用率
        • for 循环实现幂运算
      • 塞宁网安
        • Flask 工作原理
        • redis 使用
        • celery 工作原理
        • flask-sqlachemy 中的外键如何设置
        • TCP 粘包问题
        • POST、PUT 和 PATCH 区别
        • 数据库替换
    • 2022 面试记录
    • 工作记录
    • 如何更好地准备面试
  • 代码片段

  • 异步编程

  • 😎Awesome资源

  • PEP

  • Python工匠系列

  • 高阶知识点

  • Python 学习资源待整理
  • 设计模式

  • 如何使用 Python 操作 RabbitMQ
  • 好“艹蛋”的 Python 呀!
  • FIFO | 待学清单📝
  • pip 安装及使用
  • 数据分析

  • 源码阅读计划

  • OOP

  • 关于 python 中的 setup.py
  • 并行分布式框架 Celery
  • 七种武器,让你的代码提高可维护性
  • 使用 pdb 调试 Python 代码
  • 每周一个 Python 标准库
  • 🐍Python
  • 面试
佚名
2021-03-25
目录

2021 面试记录

# 智源

# 按照班级查询每个班成绩最高的学生的成绩

CREATE TABLE tableName
(
    id      varchar(300),
    name    varchar(300),
    classid varchar(300),
    score   int(10)
);

INSERT INTO tableName (id, name, classid, score)
VALUES
    ('1', 'a', '1', 99),
       ('2', 'b', '1', 88),
       ('3', 'c', '1', 60),
       ('4', 'd', '2', 80),
       ('5', '5', '2', 90);


mysql> select * from tableName;
+------+------+---------+-------+
| id   | name | classid | score |
+------+------+---------+-------+
| 1    | a    | 1       |    99 |
| 2    | b    | 1       |    88 |
| 3    | c    | 1       |    60 |
| 4    | d    | 2       |    80 |
| 5    | e    | 2       |    90 |
+------+------+---------+-------+
5 rows in set (0.00 sec)
-- 只查询班级和分数
mysql> select classid,max(score) from tableName group by classid;
+---------+------------+
| classid | max(score) |
+---------+------------+
| 1       |         99 |
| 2       |         90 |
+---------+------------+
2 rows in set (0.00 sec)

-- 查询分数、班级、名称、个人id
mysql> select id,name,classid,max(score) from tableName as t WHERE NOT EXISTS (SELECT 1 FROM tableName WHERE classid = t.classid AND score > t.score) group by classid;
+------+------+---------+------------+
| id   | name | classid | max(score) |
+------+------+---------+------------+
| 1    | a    | 1       |         99 |
| 5    | e    | 2       |         90 |
+------+------+---------+------------+
2 rows in set (0.00 sec)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

求 sql 每个班中成绩最好的_百度知道 (opens new window)

  • 特殊用法select 1

比如说,使用select 1 from table的结果是临时得到 1 列(列的值为 1),其行数为表的记录数(行数),如果配合 exists 语句则可以快速查询结果是否存在,而结果的具体数据不涉及到。

就像我上述提供的例子,它只查询验证 dept 表的字段 deptno 和 emp 的字段 deptno 是否有相等的情况,并且 loc=‘NEW YORK’,而不需要知道 dept 表和 emp 表哪些记录存在那样的情况,也不需要知道相等情况下其他字段的值。在应用中,效率比select * 快。 扩展: select 1 from table;与select anycol(目的表集合中的任意一行) from table;与select * from table从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的 1 是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。

select 1 from ... sql 语句中的 1 代表什么意思?_lili 小虫子的博客-CSDN 博客 (opens new window)

警告

关于上述说法只在低版本中存在,在高版本中并不存在效率更高的问题。

# 查询总分最高的学生

-- 查询单科成绩前十:
select * from student order by subject desc limit 10;

-- 查询总分成绩前十:
select sum(subject) subject,name from student group by name order by subject desc limit 10;
1
2
3
4
5

# 指令

连续创建目录

mkdir -p aa/bb/cc
1

查询日志特定时间内条数

# 查询日志

[root@slave ~]# grep '2021-03-24 14:30:[00-59]' /var/log/ODSP.log
2021-03-24 14:30:00 threadclass-HAFailcountClearThread-hastatus [line:1896]: True
2021-03-24 14:30:05 threadclass [line:183]: net-get 0
2021-03-24 14:30:09 threadclass-nodeip [line:1337]: rsyncstatus=True;managestatus=True
2021-03-24 14:30:15 threadclass [line:183]: net-get 0
2021-03-24 14:30:19 threadclass-nodeip [line:1337]: rsyncstatus=True;managestatus=True
2021-03-24 14:30:24 threadclass-ntp-master-local [line:1268]: slave slave
2021-03-24 14:30:26 threadclass [line:183]: net-get 0
2021-03-24 14:30:30 threadclass-nodeip [line:1337]: rsyncstatus=True;managestatus=True
2021-03-24 14:30:32 threadclass-HAFailcountClearThread-hastatus [line:1896]: True
2021-03-24 14:30:36 threadclass [line:183]: net-get 0
2021-03-24 14:30:41 threadclass-nodeip [line:1337]: rsyncstatus=True;managestatus=True
2021-03-24 14:30:47 threadclass [line:183]: net-get 0
2021-03-24 14:30:51 threadclass-nodeip [line:1337]: rsyncstatus=True;managestatus=True
2021-03-24 14:30:58 threadclass [line:183]: net-get 0
# 记录条数统计
[root@slave ~]# grep '2021-03-24 14:30:[00-59]' /var/log/ODSP.log |wc -l
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

-o模糊匹配,-wo精准匹配

# nginx 和 wsgi 区别

nginx: 反向代理、负责均衡 uwsgi: 实现 Python 程序的 WSGI 协议,接受客户端请求,转发响应的程序。

# web 应用如何利用多核服务器提高 cpu 使用率

uwsgi/gunicorn 线程池、进程池

谈谈如何提高 web 服务器并发性能 | EZLippi-浮生志 (opens new window)

# for 循环实现幂运算

# 幂运算
def cal_mi(x, y):
    if y == 0:
        return 1
    for _ in range(y - 1):
        x += x
    return x


print(cal_mi(2, 5))  # 32


def ano_cal_mi(x, y):
    if y == 0:
        return 1
    n = 1
    for _ in range(y):
        n *= x
    return n


print(ano_cal_mi(2,10)) # 1024
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 累加
def cal_multi_add(x, y):
    n = 0
    for i in range(y):
        n += x
    return n


print(cal_multi_add(2, 2))  # 4
1
2
3
4
5
6
7
8
9

# 塞宁网安

# Flask 工作原理

Python 面试 | 别院牧志知识库

# redis 使用

# celery 工作原理

参阅:celery 工作原理

  • Python celery 原理及运行流程解析 - 云+社区 - 腾讯云 (opens new window)
  • celery 工作原理介绍 - 迎风而来 - 博客园 (opens new window)

# flask-sqlachemy 中的外键如何设置

foreigin_key, relationship + backref
1

# TCP 粘包问题

time.sleep()/ 消息头添加标志字段

# POST、PUT 和 PATCH 区别

推荐使用 POST 来创建资源,使用 PUT 来更新资源。

PUT方法是幂等的。对同一资源的多次PUT操作,不应该返回不同的资源,而对同一资源的多次POST可以生产多个资源。

当你可以通过一个特定资源来对其做完整更新时使用PUT,当需要局部更新时,使用PATCH

# 数据库替换

-- 更新数据库字段: '2021-6-21周' -> '20210621' 
update product_strategy_level_score
set weeks=date_format(replace(weeks, '周', ''), '%Y%m%d') 

1
2
3
4

其中date_format(replace (xxx,'周',''),'%Y%m%d') 首先把"周"替换,然后使用date_format函数转换为年月日类型的数据。

编辑 (opens new window)
#面试
上次更新: 2023-03-21, 01:53:21
2020 面试记录
2022 面试记录

← 2020 面试记录 2022 面试记录→

最近更新
01
动线与人体工程学设计
03-25
02
小件
03-25
03
延米
03-23
更多文章>
Theme by Vdoing | Copyright © 2019-2023 IMOYAO | 别院牧志
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式