Python MySQL-데이터 선택
SELECT 쿼리를 사용하여 MySQL의 테이블에서 데이터를 검색 / 가져올 수 있습니다. 이 쿼리 / 문은 지정된 테이블의 내용을 표 형식으로 반환하며 결과 집합으로 호출됩니다.
통사론
다음은 SELECT 쿼리의 구문입니다-
SELECT column1, column2, columnN FROM table_name;
예
MySQL에서 cricketers_data라는 이름으로 테이블을 만들었다 고 가정합니다.
CREATE TABLE cricketers_data(
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Date_Of_Birth date,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
그리고 INSERT 문을 사용하여 5 개의 레코드를 삽입했다면-
insert into cricketers_data values(
'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India');
insert into cricketers_data values(
'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica');
insert into cricketers_data values(
'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka');
insert into cricketers_data values(
'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India');
insert into cricketers_data values(
'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India');
다음 쿼리는 테이블에서 FIRST_NAME 및 Country 값을 검색합니다.
mysql> select FIRST_NAME, Country from cricketers_data;
+------------+-------------+
| FIRST_NAME | Country |
+------------+-------------+
| Shikhar | India |
| Jonathan | SouthAfrica |
| Kumara | Srilanka |
| Virat | India |
| Rohit | India |
+------------+-------------+
5 rows in set (0.00 sec)
또한 다음과 같이 열 이름의 * instated를 사용하여 각 레코드의 모든 값을 검색 할 수 있습니다.
mysql> SELECT * from cricketers_data;
+------------+------------+---------------+----------------+-------------+
| First_Name | Last_Name | Date_Of_Birth | Place_Of_Birth | Country |
+------------+------------+---------------+----------------+-------------+
| Shikhar | Dhawan | 1981-12-05 | Delhi | India |
| Jonathan | Trott | 1981-04-22 | CapeTown | SouthAfrica |
| Kumara | Sangakkara | 1977-10-27 | Matale | Srilanka |
| Virat | Kohli | 1988-11-05 | Delhi | India |
| Rohit | Sharma | 1987-04-30 | Nagpur | India |
+------------+------------+---------------+----------------+-------------+
5 rows in set (0.00 sec)
Python을 사용하여 MYSQL 테이블에서 데이터 읽기
모든 데이터베이스에 대한 읽기 작업은 데이터베이스에서 유용한 정보를 가져 오는 것을 의미합니다. 다음을 사용하여 MYSQL에서 데이터를 가져올 수 있습니다.fetch() mysql-connector-python에서 제공하는 메소드.
cursor.MySQLCursor의 클래스, 즉 세 가지 방법을 제공합니다fetchall(), fetchmany() 과, fetchone() 어디,
그만큼 fetchall()메서드는 쿼리 결과 집합의 모든 행을 검색하고 튜플 목록으로 반환합니다. (몇 개의 행을 검색 한 후 이것을 실행하면 나머지 행을 반환합니다).
그만큼 fetchone() 메서드는 쿼리 결과에서 다음 행을 가져 와서 튜플로 반환합니다.
그만큼 fetchmany() 메소드는 fetchone ()과 유사하지만 단일 행 대신 쿼리의 결과 세트에서 다음 행 세트를 검색합니다.
Note − 결과 집합은 커서 개체를 사용하여 테이블을 쿼리 할 때 반환되는 개체입니다.
rowcount − 이것은 읽기 전용 속성이며 execute () 메서드의 영향을받은 행 수를 반환합니다.
예
다음 예제는 SELECT 쿼리를 사용하여 EMPLOYEE 테이블의 모든 행을 가져오고 처음에 얻은 결과 집합에서 처음에는 fetchone () 메서드를 사용하여 첫 번째 행을 검색 한 다음 fetchall () 메서드를 사용하여 나머지 행을 가져옵니다.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE'''
#Executing the query
cursor.execute(sql)
#Fetching 1st row from the table
result = cursor.fetchone();
print(result)
#Fetching 1st row from the table
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
산출
('Krishna', 'Sharma', 19, 'M', 2000.0)
[('Raj', 'Kandukuri', 20, 'M', 7000.0), ('Ramya', 'Ramapriya', 25, 'M', 5000.0)]
다음 예제는 fetchmany () 메소드를 사용하여 EMPLOYEE 테이블의 처음 두 행을 검색합니다.
예
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE'''
#Executing the query
cursor.execute(sql)
#Fetching 1st row from the table
result = cursor.fetchmany(size =2);
print(result)
#Closing the connection
conn.close()
산출
[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]