{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    " # TODO:连接数据库\n",
    "import pymysql\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "# 打开数据库连接\n",
    "db = pymysql.connect(host='localhost',\n",
    "                     user='root',\n",
    "                     password='root',\n",
    "                     db='test_db',\n",
    "                     charset='utf8mb4',\n",
    "                     cursorclass=pymysql.cursors.DictCursor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (<ipython-input-23-51515430e9dc>, line 2)",
     "traceback": [
      "\u001b[0;36m  File \u001b[0;32m\"<ipython-input-23-51515430e9dc>\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m    person_sql ='(select count(MALE)  from person where sex = 'MALE' union all select count(FEMALE)  from person where sex = 'FEMALEMALE')'\u001b[0m\n\u001b[0m                                                                  ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
     ],
     "output_type": "error"
    }
   ],
   "source": [
    "#  # 查询person表\n",
    "person_sql ='(select count(MALE)  from person where sex = 'MALE' union all select count(FEMALE)  from person where sex = 'FEMALEMALE')'\n",
    "person_detail=pd.read_sql(sql=person_sql,con=db)\n",
    "\n",
    "# 查询apply表\n",
    "# apply_sql = 'select applicant, status from apply'\n",
    "# apply_detail = pd.read_sql(sql=apply_sql, con=db)\n",
    "\n",
    "\n",
    "\n",
    "# # 查询call表\n",
    "# call_sql =\n",
    "# call_detail=pd.read_sql(sql=call_sql,con=db)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " ## 任务1:查询某个用户是否有处于OVERDUE状态的进件\n",
    " 方法1: 通过代码查询 <br> 方法2: 通过sql语句查询"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "# 获取当前借款人是否有OVERDUE状态的进件(通过代码实现)\n",
    "def get_od_apply(person_id):\n",
    "    # 通过apply_detail拿到'applicant','status'两列的值\n",
    "    apply_list_1 = apply_detail.values\n",
    "    apply_list = apply_list_1.tolist()\n",
    "    # 遍历apply_list,找到person_id,如果有OVERDUE状态进件则返回True,否则返回False\n",
    "    for i in apply_list:\n",
    "        if i[0] == person_id:\n",
    "            if i[1] == 'OVERDUE':\n",
    "                return True\n",
    "            else:\n",
    "                continue\n",
    "        if i[0] > person_id:\n",
    "            return False\n",
    "    \n",
    "print(get_od_apply(20000001))    # False\n",
    "print(get_od_apply(20000035))    # True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODU:获取当前借款人是否有OVERDUE状态的进件(通过sql语句实现)\n",
    "\n",
    "# sql查询用户id为20000035的用户是否有OVERDUE状态的进件\n",
    "#sql1 = select applicant,status from apply where applicant =20000035 and status = 'OVERDUE'   \n",
    "# status1 = \n",
    "# print(stauts1) \n",
    "\n",
    "\n",
    "# # sql查询用户id为20000001的用户是否有OVERDUE状态的进件\n",
    "# sql2 = select applicant,status from apply where applicant =20000001 and status = 'OVERDUE'\n",
    "# stauts2 = \n",
    "# print(stauts2)    # 0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 任务2:\n",
    "1.根据给定金融借款数据,分析出在已知借款人中,男女的具体比例。根据查询结果,画出饼图进行展示。<br>\n",
    "2.查询各种状态进件所占百分比,画出饼图进行展示。<br>\n",
    "3.根据进件状态,分析出男人逾期的概率大还是女人逾期的概率大。<br>\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODU:查询男、女各占比例,并绘制成饼图\n",
    "# 从person_info中获取'FEMALE','MALE'的人数\n",
    "value = \n",
    "# 绘制饼图\n",
    "plt.pie()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}