{"id":341378,"date":"2023-04-11T02:39:34","date_gmt":"2023-04-11T01:39:34","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=pycharm&#038;p=341378"},"modified":"2023-04-12T05:19:01","modified_gmt":"2023-04-12T04:19:01","slug":"using-pycharm-to-read-data-from-a-mysql-database-into-pandas","status":"publish","type":"pycharm","link":"https:\/\/blog.jetbrains.com\/ko\/pycharm\/2023\/04\/using-pycharm-to-read-data-from-a-mysql-database-into-pandas\/","title":{"rendered":"PyCharm\uc744 \uc0ac\uc6a9\ud574 MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c pandas\ub85c \ub370\uc774\ud130\ub97c \uc77d\uc5b4\uc624\ub294 \ubc29\ubc95"},"content":{"rendered":"<p>\ub370\uc774\ud130 \uacfc\ud559 \uc791\uc5c5\uc744 \ud558\ub2e4 \ubcf4\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac00\uc838\uc640\uc57c \ud560 \ub54c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ub85c\uceec\uc5d0 \uc800\uc7a5\ub41c CSV \ud30c\uc77c\uc744 \uc77d\ub2e4\uac00 pandas\ub85c \ub118\uc5b4\uac00 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud558\uc5ec \ucffc\ub9ac\ud558\ub294 \uc791\uc5c5\uc740 \uc9c4\ud589\ud558\uae30 \ubd80\ub2f4\uc2a4\ub7ec\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc2dc\ub9ac\uc988\uc758 \uccab \ubc88\uc9f8\uc778 \uc774\ubc88 \ube14\ub85c\uadf8 \uae00\uc5d0\uc11c\ub294 MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ub41c \ub370\uc774\ud130\ub97c pandas\ub85c \ubd88\ub7ec\uc624\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uace0 \uc774 \uacfc\uc815\uc744 \ub354 \uc27d\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc8fc\ub294 \uc720\uc6a9\ud55c PyCharm \uae30\ub2a5\uc744 \uc0b4\ud3b4\ubd05\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-320796\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/04\/Blog_Featured_image_1280x600-15.png\" alt=\"\" width=\"2560\" height=\"1200\"><\/figure>\n<\/div>\n<h2>\ub370\uc774\ud130\ubca0\uc774\uc2a4 \ucf58\ud150\uce20 \uc870\ud68c<\/h2>\n<p>\uc774\ubc88 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c\ub294 MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc788\ub294 \ud56d\uacf5\ud3b8 \uc9c0\uc5f0 \ubc0f \uacb0\ud56d \ub370\uc774\ud130\ub97c pandas DataFrame\uc73c\ub85c \uc77d\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \ub370\uc774\ud130\ub294 Priank Ravichandar\uac00 \uc81c\uc791\ud55c <a href=\"https:\/\/www.kaggle.com\/datasets\/priankravichandar\/airline-delays-from-20032016\" target=\"_blank\" rel=\"noopener\">\u201c2003-2016 \ud56d\uacf5\ud3b8 \uc9c0\uc5f0\u201d<\/a> \ub370\uc774\ud130\uc138\ud2b8\uc758 \ud55c \ubc84\uc804\uc774\uba70 <a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\" target=\"_blank\" rel=\"noopener\">CC0 1.0<\/a> \ub77c\uc774\uc120\uc2a4\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc791\uc5c5\uc744 \ud560 \ub54c \uc9dc\uc99d\ub098\ub294 \uc810 \uc911 \ud558\ub098\ub294 \ubaa8\ub4e0 \ud14c\uc774\ube14\uc774 \uc6d0\uaca9 \uc11c\ubc84\uc5d0 \uc800\uc7a5\ub418\uc5b4 \uc788\uc5b4 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub370\uc774\ud130\uc758 \uac1c\uc694\ub97c \ubcfc \uc218 \uc5c6\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc5ec\uae30\uc11c \uc0ac\uc6a9\ud560 \uccab \ubc88\uc9f8 PyCharm \uae30\ub2a5\uc740 <em>Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4)<\/em> \ub3c4\uad6c \ucc3d\uc73c\ub85c, \ud574\ub2f9 \ucc3d\uc5d0\uc11c\ub294 \ucffc\ub9ac \uc791\uc5c5\uc744 \ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud574\uc11c \uc804\uccb4\uc801\uc73c\ub85c \ub0b4\ubd80 \uac80\uc0ac\ub97c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud558\uae30 \uc704\ud574 \uba3c\uc800 PyCharm\uc758 \uc624\ub978\ucabd\uc73c\ub85c \uc774\ub3d9\ud558\uc5ec <em>Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4)<\/em> \ub3c4\uad6c \ucc3d\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316933\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-1-database-tool-window-2800x1339.png\" alt=\"\" width=\"2800\" height=\"1339\"><\/figure>\n<\/div>\n<p>\ucc3d\uc758 \uc67c\ucabd \uc0c1\ub2e8\uc5d0 + \ubc84\ud2bc\uc774 \uc788\uc2b5\ub2c8\ub2e4. +\ub97c \ub204\ub974\uba74 \ub2e4\uc74c\uc758 \ub4dc\ub86d\ub2e4\uc6b4 \ub300\ud654\uc0c1\uc790 \ucc3d\uc774 \ub098\ud0c0\ub0a9\ub2c8\ub2e4. \ud574\ub2f9 \ucc3d\uc5d0\uc11c <em>Data Source(\ub370\uc774\ud130 \uc18c\uc2a4)<\/em> | <em>MySQL<\/em>\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316944\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-2-new-data-source-2800x1340.png\" alt=\"\" width=\"2800\" height=\"1340\"><\/figure>\n<\/div>\n<p>\uc774\uc81c MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uc5f0\uacb0\ud560 \uc218 \uc788\ub294 \ud31d\uc5c5 \ucc3d\uc774 \ub098\ud0c0\ub0a9\ub2c8\ub2e4. \ub85c\uceec\uc5d0 \ud638\uc2a4\ud305\ub41c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\ubbc0\ub85c <em>Host(\ud638\uc2a4\ud2b8)<\/em>\ub97c &#8216;localhost&#8217;\ub85c \ub450\uace0 <em>Port(\ud3ec\ud2b8)<\/em>\ub294 \uae30\ubcf8 MySQL \ud3ec\ud2b8\uc778 &#8216;3306&#8217;\uc73c\ub85c \uc124\uc815\ud569\ub2c8\ub2e4. <em>Authentication(\uc778\uc99d)<\/em> \uc635\uc158\uc73c\ub85c &#8216;User &amp; Password'(\uc0ac\uc6a9\uc790 \ubc0f \ube44\ubc00\ubc88\ud638)\ub97c \uc0ac\uc6a9\ud558\uace0 <em>User(\uc0ac\uc6a9\uc790)<\/em> \ubc0f <em>Password(\ube44\ubc00\ubc88\ud638)<\/em>\uc5d0 \ubaa8\ub450 &#8216;pycharm&#8217;\uc744 \uc785\ub825\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c <em>Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4)<\/em> \uc774\ub984\uc5d0 &#8216;demo&#8217;\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \ubb3c\ub860 \uc0ac\uc6a9\uc790\uc758 MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud558\ub824\uba74 \ud2b9\uc815 \ud638\uc2a4\ud2b8, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc774\ub984 \ubc0f \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5f0\uacb0\uc5d0 \ub300\ud55c \uc804\uccb4 \uc635\uc158\uc740 <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/mysql.html\" target=\"_blank\" rel=\"noopener\">\ubb38\uc11c<\/a>\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316955\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-3-connecting-to-mysql.png\" alt=\"\" width=\"1612\" height=\"1366\"><\/figure>\n<\/div>\n<p>\ub2e4\uc74c\uc73c\ub85c <em>Test Connection(\uc5f0\uacb0 \ud14c\uc2a4\ud2b8)<\/em>\uc744 \ud074\ub9ad\ud558\uc138\uc694. \uc124\uce58\ub41c \ub4dc\ub77c\uc774\ubc84 \ud30c\uc77c\uc774 \uc5c6\uc73c\uba74 PyCharm\uc774 \uc54c\ub824\uc90d\ub2c8\ub2e4. <em>Download Driver Files(\ub4dc\ub77c\uc774\ubc84 \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc)<\/em>\ub97c \ud074\ub9ad\ud558\uc138\uc694. <em>Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4)<\/em> \ub3c4\uad6c \ucc3d\uc758 \ub9e4\uc6b0 \uc720\uc6a9\ud55c \uae30\ub2a5 \uc911 \ud558\ub098\ub294 \uc62c\ubc14\ub978 \ub4dc\ub77c\uc774\ubc84\ub97c \uc790\ub3d9\uc73c\ub85c \ucc3e\uace0 \uc124\uce58\ud574\uc8fc\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316966\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-4-install-drivers.png\" alt=\"\" width=\"1614\" height=\"1368\"><\/figure>\n<\/div>\n<p>\uc131\uacf5\ud588\uc2b5\ub2c8\ub2e4! \uc774\uc81c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\uc81c <em>Schemas(\uc2a4\ud0a4\ub9c8)<\/em> \ud0ed\uc73c\ub85c \uc774\ub3d9\ud558\uace0 \ub0b4\ubd80 \uac80\uc0ac\ub97c \ud560 \uc2a4\ud0a4\ub9c8\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. \uc608\uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\ub294 \ud558\ub098\uc758 \uc2a4\ud0a4\ub9c8(&#8216;demo&#8217;) \ubc16\uc5d0 \uc5c6\uc9c0\ub9cc, \ub9e4\uc6b0 \ud070 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \uc5ec\ub7ec \uac1c \uc788\ub294 \uacbd\uc6b0 \ud544\uc694\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c\ub9cc \ub0b4\ubd80 \uac80\uc0ac\ub97c \uc2e4\ud589\ud558\uc5ec \uc2dc\uac04\uc744 \uc808\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316977\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-5-select-schemas.png\" alt=\"\" width=\"1616\" height=\"1368\"><\/figure>\n<\/div>\n<p>\ubaa8\ub450 \uc644\ub8cc\ub418\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud560 \uc900\ube44\uac00 \ub05d\ub0a9\ub2c8\ub2e4. <em>OK(\ud655\uc778)<\/em>\ub97c \ub204\ub974\uace0 \uc7a0\uc2dc \uae30\ub2e4\ub9bd\ub2c8\ub2e4. \uc774\uc81c \uc804\uccb4 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub300\ud55c \ub0b4\ubd80 \uac80\uc0ac\uac00 \ud14c\uc774\ube14 \ud544\ub4dc \ubc0f \ud0c0\uc785 \uc218\uc900\uae4c\uc9c0 \ub05d\ub09c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc548\uc5d0 \ubb34\uc5c7\uc774 \uc788\ub294\uc9c0 \uc804\uccb4\uc801\uc73c\ub85c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316988\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-6-introspected-db.png\" alt=\"\" width=\"1206\" height=\"1466\"><\/figure>\n<\/div>\n<h2>MySQL Connector\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc77d\uae30<\/h2>\n<p>\uc774\uc81c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ubb34\uc5c7\uc774 \uc788\ub294\uc9c0 \uc54c\uac8c \ub418\uc5c8\uc73c\ubbc0\ub85c \ucffc\ub9ac\ub97c \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. 2016\ub144\uc5d0 \ucd5c\uc18c 500\uac74\uc758 \uc9c0\uc5f0\uc774 \ubc1c\uc0dd\ud55c \uacf5\ud56d\uc744 \ucc3e\ub294\ub2e4\uace0 \uac00\uc815\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ub0b4\ubd80 \uac80\uc0ac\ub41c <code>airlines<\/code> \ud14c\uc774\ube14\uc758 \ud544\ub4dc\ub97c \ubcf4\uba74 \ub2e4\uc74c\uc758 \ucffc\ub9ac\ub85c \uc6d0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT AirportCode,\n      SUM(FlightsDelayed) AS TotalDelayed\n   FROM airlines\n   WHERE TimeYear = 2016\n   GROUP BY AirportCode\n   HAVING SUM(FlightsDelayed) &gt; 500;<\/pre>\n<p>Python\uc73c\ub85c \uc774 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\ub294 \uccab \ubc88\uc9f8 \ubc29\ubc95\uc740 MySQL Connector\ub77c\ub294 \ud328\ud0a4\uc9c0\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774 \ud328\ud0a4\uc9c0\ub294 <a href=\"https:\/\/pypi.org\/project\/mysql-connector-python\/\" target=\"_blank\" rel=\"noopener\">PyPI<\/a> \ud639\uc740 <a href=\"https:\/\/anaconda.org\/anaconda\/mysql-connector-python\" target=\"_blank\" rel=\"noopener\">Anaconda<\/a>\uc5d0\uc11c \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/creating-virtual-environment.html\" target=\"_blank\" rel=\"noopener\">pip<\/a> \ud639\uc740 <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/conda-support-creating-conda-virtual-environment.html\" target=\"_blank\" rel=\"noopener\">conda<\/a> \ud658\uacbd\uc744 \uc124\uc815\ud558\uac70\ub098 <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/installing-uninstalling-and-upgrading-packages.html\" target=\"_blank\" rel=\"noopener\">\uc885\uc18d\uc131\uc744 \uc124\uce58<\/a>\ud560 \ub54c \ub3c4\uc6c0\uc774 \ud544\uc694\ud558\uba74 \ub9c1\ud06c\ub41c \ubb38\uc11c\ub97c \ucc38\uc870\ud558\uc138\uc694. \uc124\uce58\uac00 \ub05d\ub098\uba74 <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/jupyter-notebook-support.html#get-started\" target=\"_blank\" rel=\"noopener\">\uc0c8 Jupyter Notebook<\/a>\uc744 \uc5f4\uc5b4 MySQL Connector\uc640 pandas\ub97c \ubaa8\ub450 \uac00\uc838\uc635\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import mysql.connector\nimport pandas as pd<\/pre>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc77d\uc73c\ub824\uba74 <a href=\"https:\/\/dev.mysql.com\/doc\/connector-python\/en\/connector-python-connecting.html\" target=\"_blank\" rel=\"noopener\">connector<\/a>\ub97c \uc0dd\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. <code>connect<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uc131\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub97c \uc704\ud574 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \ub54c \ud544\uc694\ud55c \uc790\uaca9 \uc99d\uba85\uc744 \uc804\ub2ec\ud569\ub2c8\ub2e4(<code>host<\/code>, <code>database<\/code> \uc774\ub984, <code>user<\/code> \ubc0f <code>password<\/code>). \uc774\uc804 \uc139\uc158\uc5d0\uc11c <em>Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4)<\/em> \ub3c4\uad6c \ucc3d\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \ub54c \uc0ac\uc6a9\ud55c \uac83\uacfc \ub3d9\uc77c\ud55c \uc790\uaca9 \uc99d\uba85\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql_db_connector = mysql.connector.connect(\n   host=\"localhost\",\n   database=\"demo\",\n   user=\"pycharm\",\n   password=\"pycharm\"\n)<\/pre>\n<p>\uc774\uc81c <a href=\"https:\/\/dev.mysql.com\/doc\/connector-python\/en\/connector-python-api-mysqlcursor.html\" target=\"_blank\" rel=\"noopener\">cursor<\/a>\ub97c \uc0dd\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ub300\uc0c1\uc73c\ub85c SQL \ucffc\ub9ac\ub97c \uc2e4\ud589\ud560 \ub54c \uc0ac\uc6a9\ub418\uba70, connector\uc5d0 \uc9c0\uc815\ub41c \uc790\uaca9 \uc99d\uba85\uc73c\ub85c \uc561\uc138\uc2a4\ub97c \ud68d\ub4dd\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql_db_cursor = mysql_db_connector.cursor()<\/pre>\n<p>\uc774\uc81c \ucffc\ub9ac\ub97c \uc2e4\ud589\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. cursor\uc758 <code>execute<\/code> <a href=\"https:\/\/dev.mysql.com\/doc\/connector-python\/en\/connector-python-api-mysqlcursor-execute.html\" target=\"_blank\" rel=\"noopener\">\uba54\uc11c\ub4dc<\/a>\ub97c \uc0ac\uc6a9\ud558\uace0 \ucffc\ub9ac\ub97c \uc778\uc218\ub85c \uc804\ub2ec\ud558\uc5ec \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">delays_query = \"\"\"\n               SELECT AirportCode,\n                      SUM(FlightsDelayed) AS TotalDelayed\n                   FROM airlines\n                   WHERE TimeYear = 2016\n                   GROUP BY AirportCode\n                   HAVING SUM(FlightsDelayed) &gt; 500;\n              \"\"\"\n\nmysql_db_cursor.execute(delays_query)<\/pre>\n<p>\uadf8\ub7f0 \ub2e4\uc74c cursor\uc758 <code>fetchall<\/code> <a href=\"https:\/\/dev.mysql.com\/doc\/connector-python\/en\/connector-python-api-mysqlcursor-fetchall.html\" target=\"_blank\" rel=\"noopener\">\uba54\uc11c\ub4dc<\/a>\ub97c \uc0ac\uc6a9\ud558\uc5ec \uacb0\uacfc\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql_delays_list = mysql_db_cursor.fetchall()<\/pre>\n<p>\uadf8\ub7ec\ub098 <code>fetchall<\/code>\uc740 \ub370\uc774\ud130\ub97c \ubaa9\ub85d\uc73c\ub85c \ubc18\ud658\ud55c\ub2e4\ub294 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4. pandas\uc5d0 \uc804\ub2ec\ud558\ub824\uba74, DataFrame\uc73c\ub85c \uc804\ub2ec\ud560 \uc218\ub294 \uc788\uc9c0\ub9cc \uc5f4 \uc774\ub984\uc774 \uc0ac\ub77c\uc9c0\uba70 DataFrame\uc744 \uc0dd\uc131\ud560 \ub54c \uc774\ub984\uc744 \uc218\ub3d9\uc73c\ub85c \uc9c0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-316999\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-7-connector-without-column-names.png\" alt=\"\" width=\"2106\" height=\"1200\"><\/figure>\n<\/div>\n<p>\ub2e4\ud589\ud788\ub3c4 pandas\uc5d0 \ub354 \uc88b\uc740 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4. cursor\ub97c \uc0dd\uc131\ud558\ub294 \ub300\uc2e0 <code>read_sql<\/code> <a href=\"https:\/\/pandas.pydata.org\/docs\/reference\/api\/pandas.read_sql.html\" target=\"_blank\" rel=\"noopener\">\uba54\uc11c\ub4dc<\/a>\ub97c \uc0ac\uc6a9\ud558\uba74 \ud55c \ubc88\uc758 \uc808\ucc28\ub9cc\uc73c\ub85c DataFrame\uc744 \ub300\uc0c1\uc73c\ub85c \ud558\ub294 \ucffc\ub9ac\ub97c \uc77d\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql_delays_df2 = pd.read_sql(delays_query, con=mysql_db_connector)<\/pre>\n<p>MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc77d\uc73c\ub824\uba74 \uac04\ub2e8\ud558\uac8c \ucffc\ub9ac\uc640 connector\ub97c \uc778\uc218\ub85c \uc804\ub2ec\ud558\uba74 \ub429\ub2c8\ub2e4. dataframe\uc744 \ubcf4\uba74 \uacb0\uacfc\uac00 \uc704\uc640 \uc644\uc804\ud788 \ub3d9\uc77c\ud558\uc9c0\ub9cc \uc5f4 \uc774\ub984\uc740 \ubcf4\uc874\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317010\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-8-connector-with-column-names.png\" alt=\"\" width=\"2110\" height=\"794\"><\/figure>\n<\/div>\n<p>PyCharm\uc758 \uc720\uc6a9\ud55c \uae30\ub2a5\uc778 \uad6c\ubb38 \uac15\uc870 \ud45c\uc2dc\uac00 Python \ubb38\uc790\uc5f4 \ub0b4\uc5d0 \ud3ec\ud568\ub41c SQL \ucffc\ub9ac\uc5d0\ub3c4 \uc801\uc6a9\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8 \uae00\uc758 \ud6c4\ubc18\uc5d0\uc11c\ub294 PyCharm\uc73c\ub85c SQL \uc791\uc5c5\uc744 \ud560 \uc218 \uc788\ub294 \ub2e4\ub978 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>SQLAlchemy\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc77d\uae30<\/h2>\n<p>MySQL Connector\uc758 \ub300\uc548\uc740 <a href=\"https:\/\/www.sqlalchemy.org\/\" target=\"_blank\" rel=\"noopener\">SQLAlchemy<\/a>\ub77c\ub294 \ud328\ud0a4\uc9c0\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774 \ud328\ud0a4\uc9c0\ub294 MySQL\uc744 \ud3ec\ud568\ud55c \uc5ec\ub7ec \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud558\ub294 \ub9cc\ub2a5 \uba54\uc11c\ub4dc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. SQLAlchemy\ub97c \uc0ac\uc6a9\ud558\uba74 \uc88b\uc740 \uc810 \ud55c \uac00\uc9c0\ub294 \ub370\uc774\ud130 \ud0c0\uc785\uc5d0 \uad00\uacc4\uc5c6\uc774 \ucffc\ub9ac \uad6c\ubb38\uc774 \uc77c\uad00\uc801\uc774\ub77c\ub294 \uac83\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc5ec\ub7ec \uc885\ub958\uc758 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uc791\uc5c5\ud560 \ub54c \uc218\ub9ce\uc740 \uba85\ub839\uc5b4\ub97c \uae30\uc5b5\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc2dc\uc791\ud558\ub824\uba74 <a href=\"https:\/\/pypi.org\/project\/SQLAlchemy\/\" target=\"_blank\" rel=\"noopener\">PyPI<\/a>\ub098 <a href=\"https:\/\/anaconda.org\/anaconda\/sqlalchemy\" target=\"_blank\" rel=\"noopener\">Anaconda<\/a>\uc5d0\uc11c SQLAlchemy\ub97c \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c <code>create_engine<\/code> \uba54\uc11c\ub4dc\uc640 pandas\ub97c \uac00\uc838\uc635\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import pandas as pd\nfrom sqlalchemy import create_engine<\/pre>\n<p>\uc774\uc81c <a href=\"https:\/\/docs.sqlalchemy.org\/en\/20\/core\/engines.html\" target=\"_blank\" rel=\"noopener\">engine<\/a>\uc744 \uc0dd\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. engine\uc744 \uc774\uc6a9\ud558\uba74 \uc5b4\ub5a4 SQL \ud30c\uc0dd \uc5b8\uc5b4\ub97c \uc0ac\uc6a9\ud558\uac8c \ub420\uc9c0(\uc774 \uacbd\uc6b0 MySQL) pandas\uc5d0 \uc54c\ub824\uc904 \uc218 \uc788\uace0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \ub54c \ud544\uc694\ud55c \uc790\uaca9 \uc99d\uba85\ub3c4 \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc804\ubd80 <code>[dialect]:\/\/[user]:[password]@[host]\/[database]<\/code>\uc758 \ud615\ud0dc\ub85c \ud558\ub098\uc758 \ubb38\uc790\uc5f4\ub85c \uc804\ub2ec\ub429\ub2c8\ub2e4. MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c\ub294 \uc5b4\ub5a4 \ubaa8\uc2b5\uc778\uc9c0 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql_engine = create_engine(\"mysql+mysqlconnector:\/\/pycharm:pycharm@localhost\/demo\")<\/pre>\n<p>\uc0dd\uc131\ub418\uba74 <code>read_sql<\/code>\uc744 \ub2e4\uc2dc \uc0ac\uc6a9\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4. \uc774\ubc88\uc5d0\ub294 engine\uc744 <code>con<\/code> \uc778\uc218\ub85c \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql_delays_df3 = pd.read_sql(delays_query, con=mysql_engine)<\/pre>\n<p>MySQL Connector\ub85c <code>read_sql<\/code>\uc744 \uc0ac\uc6a9\ud560 \ub54c\uc640 \uacb0\uacfc\uac00 \uac19\uc740 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317021\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-9-sql-alchemy-table.png\" alt=\"\" width=\"2088\" height=\"730\"><\/figure>\n<\/div>\n<h2>\ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc791\uc5c5\uc744 \uc704\ud55c \uace0\uae09 \uc635\uc158<\/h2>\n<p>connector \uba54\uc11c\ub4dc\ub294 \uba85\ud655\ud558\uac8c \uc6d0\ud558\ub294 \ucffc\ub9ac\ub97c \ucd94\ucd9c\ud560 \ub54c\ub294 \ub9e4\uc6b0 \uc720\uc6a9\ud569\ub2c8\ub2e4. \uadf8\ub807\uc9c0\ub9cc \uc804\uccb4 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\uac00 \uc5b4\ub5a4 \ubaa8\uc2b5\uc77c\uc9c0 \ubbf8\ub9ac \ubcf4\uace0 \uc2f6\uac70\ub098 \uc804\uccb4 \ucffc\ub9ac\uac00 \uc5bc\ub9c8\ub098 \uac78\ub9b4\uc9c0 \uad81\uae08\ud560 \ub54c\ub294 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c\uc694? PyCharm\uc5d0\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc791\uc5c5\uc744 \ud560 \ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uace0\uae09 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><em>Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4)<\/em> \ub3c4\uad6c \ucc3d\uc73c\ub85c \ub3cc\uc544\uac00\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc73c\ub85c \ud074\ub9ad\ud558\uba74 <em>New(\uc0c8\ub85c \ub9cc\ub4e4\uae30)<\/em> \uc544\ub798\uc5d0 <em>Query Console(\ucffc\ub9ac \ucf58\uc194)<\/em>\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\ub294 \uc635\uc158\uc774 \ubcf4\uc785\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317032\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-10-new-query-console.png\" alt=\"\" width=\"1206\" height=\"1468\"><\/figure>\n<\/div>\n<p>\uc774 \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \ucf58\uc194\uc744 \uc5f4\uace0 \ub124\uc774\ud2f0\ube0c SQL\ub85c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ub300\uc0c1\uc73c\ub85c \ud558\ub294 \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucf58\uc194 \ucc3d\uc5d0\ub294 SQL \ucf54\ub4dc \uc644\uc131 \ubc0f \ub0b4\ubd80 \uac80\uc0ac\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \uc190\uc27d\uac8c \ucffc\ub9ac\ub97c \uc791\uc131\ud558\uc5ec Python connector \ud328\ud0a4\uc9c0\uc5d0 \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ucffc\ub9ac\ub97c \uac15\uc870 \ud45c\uc2dc\ud558\uace0 \uc67c\ucabd \uc0c1\ub2e8 \ubaa8\uc11c\ub9ac\uc5d0\uc11c <em>Execute(\uc2e4\ud589)<\/em> \ubc84\ud2bc\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317044\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-11-execute-from-console.png\" alt=\"\" width=\"1310\" height=\"848\"><\/figure>\n<\/div>\n<p>\ucffc\ub9ac\uc758 \uacb0\uacfc\ub294 <em>Services(\uc11c\ube44\uc2a4)<\/em> \ud0ed\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc73c\uba70 \ud574\ub2f9 \ud0ed\uc5d0\uc11c \uacb0\uacfc\ub97c <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/viewing-query-results.html\" target=\"_blank\" rel=\"noopener\">\uac80\uc0ac\ud558\uac70\ub098 \ub0b4\ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4<\/a>. \ucf58\uc194\uc5d0\uc11c \ucffc\ub9ac\ub97c \uc2e4\ud589\ud560 \ub54c\uc758 \uc7a5\uc810\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ucc98\uc74c\uc5d0 \uccab 500\uac1c\uc758 \ud589\ub9cc \uac00\uc838\uc628\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc804\uccb4 \ub370\uc774\ud130\ub97c \uac00\uc838\uc624\uc9c0 \uc54a\uace0\ub3c4 \ud070 \ucffc\ub9ac\uc758 \uacb0\uacfc\uac00 \uc5b4\ub5a8\uc9c0 \uac10\uc744 \uc7a1\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac00\uc838\uc624\ub294 \ud589\uc758 \uc218\ub294 <em>Settings\/Preferences(\uc124\uc815) | Tools(\ub3c4\uad6c) | Database(\ub370\uc774\ud130\ubca0\uc774\uc2a4) | Data Editor and Viewer(\ub370\uc774\ud130 \uc5d0\ub514\ud130 \ubc0f \ubdf0\uc5b4)<\/em>\uc5d0\uc11c <em>Limit page size to(\ub2e4\uc74c\uc73c\ub85c \ud398\uc774\uc9c0 \ud06c\uae30 \uc81c\ud55c:):<\/em>\uc758 \uac12\uc744 \ubcc0\uacbd\ud558\uc5ec \uc870\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317055\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-12-results-of-query.png\" alt=\"\" width=\"1960\" height=\"740\"><\/figure>\n<\/div>\n<p>\ud070 \ucffc\ub9ac\uc758 \uacbd\uc6b0 <a href=\"https:\/\/www.jetbrains.com\/help\/pycharm\/visualize-execution-plan.html\" target=\"_blank\" rel=\"noopener\">\uc2e4\ud589 \uacc4\ud68d<\/a>\uc744 \uc0dd\uc131\ud558\uba74 \ucffc\ub9ac\uac00 \uc5bc\ub9c8\ub098 \uac78\ub9b4\uc9c0 \ub300\ub7b5\uc801\uc73c\ub85c \uc54c\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucffc\ub9ac\ub97c \uac15\uc870 \ud45c\uc2dc\ud558\uace0 \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc73c\ub85c \ud074\ub9ad\ud558\uba74 \uba54\ub274\uc5d0\uc11c <em>Explain Plan(\uacc4\ud68d \uc124\uba85)<\/em> | <em>Explain Analyse(\ubd84\uc11d \uc124\uba85)<\/em>\ub97c \uace0\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \ucffc\ub9ac\uc758 \uc2e4\ud589 \uacc4\ud68d\uc774 \uc0dd\uc131\ub418\uc5b4 \ucffc\ub9ac \ud50c\ub798\ub108\uac00 \uacb0\uacfc\ub97c \uac00\uc838\uc624\uae30 \uc704\ud574 \ucde8\ud558\ub294 \uac01 \ub2e8\uacc4\ub97c \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc2e4\ud589 \ud50c\ub79c\uc740 \ubcc4\uac1c\uc758 \uc8fc\uc81c\uc774\ubbc0\ub85c \uacc4\ud68d\uc5d0 \ub098\uc640 \uc788\ub294 \uac83\uc744 \ubaa8\ub450 \uc774\ud574\ud560 \ud544\uc694\ub294 \uc5c6\uc2b5\ub2c8\ub2e4. \ud604\uc7ac \ubaa9\uc801\uc5d0\uc11c \uc5f0\uad00\uc131 \uc788\ub294 \uc5f4\uc740 \uac01 \ub2e8\uacc4\uc5d0\uc11c \ubaa8\ub4e0 \ud589\uc744 \ubc18\ud658\ud558\ub294 \ub370 \uac78\ub9ac\ub294 \uc2dc\uac04\uc744 \ubcf4\uc5ec\uc8fc\ub294 <em>Actual Total Time(\uc2e4\uc81c \ucd1d \uc2dc\uac04)<\/em> \uc5f4\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574\uc11c \uc804\uccb4 \ucffc\ub9ac \uc2dc\uac04\uc774 \uc5bc\ub9c8\ub098 \uac78\ub9b4\uc9c0 \uc608\uc0c1\ud560 \uc218 \uc788\uace0 \ucffc\ub9ac\uc758 \uc5b4\ub290 \ubd80\ubd84\uc5d0\uc11c \uc2dc\uac04\uc774 \ub9ce\uc774 \uac78\ub9ac\ub294\uc9c0\ub3c4 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317066\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-13-execution-plan.png\" alt=\"\" width=\"2096\" height=\"742\"><\/figure>\n<\/div>\n<p><em>Plan(\uacc4\ud68d)<\/em> \ud328\ub110\uc758 \uc67c\ucabd\uc5d0 \uc788\ub294 <em>Show Visualization(\uc2dc\uac01\ud654 \ud45c\uc2dc)<\/em>\uc744 \ub20c\ub7ec \uc2e4\ud589\uc744 \uc2dc\uac01\ud654\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317077\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-14-show-visualisation-button.png\" alt=\"\" width=\"666\" height=\"400\"><\/figure>\n<\/div>\n<p>\uadf8\ub7ec\uba74 \ud50c\ub85c\ucc28\ud2b8\uac00 \ud45c\uc2dc\ub418\uc5b4 \ucffc\ub9ac \ud50c\ub798\ub108\uac00 \ucde8\ud558\uace0 \uc788\ub294 \ub2e8\uacc4\ub85c \uc190\uc27d\uac8c \uc774\ub3d9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-317088\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/01\/mysql-15-execution-plan-flowchart.png\" alt=\"\" width=\"1646\" height=\"1152\"><\/figure>\n<\/div>\n<p>MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c pandas DataFrames\ub85c \ub370\uc774\ud130\ub97c \uac00\uc838\uc624\ub294 \uac83\uc740 \uc5b4\ub835\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub610\ud55c PyCharm\uc5d0\ub294 MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc791\uc5c5\uc744 \uc218\uc6d4\ud558\uac8c \ub3c4\uc640\uc8fc\ub294 \uac15\ub825\ud55c \ub3c4\uad6c\uac00 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \ube14\ub85c\uadf8 \uae00\uc5d0\uc11c\ub294 PyCharm\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc720\uba85\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud0c0\uc785 \uc911 \ud558\ub098\uc778 PostgreSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c pandas\ub85c \ub370\uc774\ud130\ub97c \uc77d\uc5b4\uc624\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":342201,"comment_status":"closed","ping_status":"closed","template":"","categories":[6943,952,1401,5108,2347],"tags":[2934,731,7057,1176,566],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/pycharm\/341378"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/pycharm"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/pycharm"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=341378"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/pycharm\/341378\/revisions"}],"predecessor-version":[{"id":342206,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/pycharm\/341378\/revisions\/342206"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/342201"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=341378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=341378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=341378"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=341378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}