• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mysql] Python - MySQL Where (조건절)

2921  

목차

  1. WHERE 조건절 - 특정 조건의 데이터만 가져오기
  2. % 와일드카드 - 0개 이상의 임의의 문자 대응
  3. SQL Injection 방지 - %s 자리표시자

 

WHERE 조건절 - 특정 조건의 데이터만 가져오기

 

SQL 구문에 WHERE 조건절 추가해 원하는 데이터만 가져옴.

 


[예제]

 

import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member WHERE mb_name = 'homzzang'"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

  print(x)

 

결과값: (1, 'homzzang', '10')

 

% 와일드카드 - 0개 이상의 임의의 문자 대응

 

주어진 문자나 구로 시작, 포함 또는 끝나는 레코드를 선택 가능.

0개, 1개 또는 여러 문자를 나타내려면 '%'와일드 카드를 사용.

 

(예)

h로 시작하는 레코드 : h%

h가 들어가는 레코드 : %h%

h로 종료하는 레코드 : %h


[예제]

 

import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member WHERE mb_name LIKE 'h%'"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

  print(x)

 

 

SQL Injection 방지 - %s 자리표시자

 

사용자가 쿼리 값 제공 시, 값을 회피 (escape)해야 함.

(※ 회피 : SQL Injection (=해킹) 시도하는 코드를 제거.)


mysql.connector 모듈에는 %s 자리표시자 메서드로 쿼리값 회피. 

변수는 cursor 객체의 execute() 메서드의 2번째 매개변수로 전달.

 


[예제]

 

import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member WHERE mb_name = %s"

name = ("homzzang", )

mycursor.execute(sql, name)

myresult = mycursor.fetchall()

for x in myresult:

  print(x)

 

 

PS.

Node.js WHERE 조건절 https://homzzang.com/b/njs-17



분류 제목
mongodb Python - MongoDB Limit (데이터 출력개수)
module Python - random 모듈 메서드 종류
module Python - random.seed() 메서드 - 난수 생성기 초기화 (= seed메서드 = 시드)
module Python - random.getstate() 메서드 - 난수 생성기 현재 상태 반환. (= getstat…
module Python - random.setstate() 메서드 - 난수 생성기 상태 복원. (= setstate메서…
module Python - random.getrandbits() 메서드 ★ - 지정 bit 크기의 정수 반환. (= g…
module Python - random.randrange() 메서드 ★★ - 지정 범위 안에서 정수형 난수 반환. (=…
module Python - random.randint() 메서드 ★★ - 지정 범위 안 int형 난수 생성. (= ra…
module Python - random.choice() 메서드 ★★ - 요소 랜덤 반환. (= choice메서드 = 초…
module Python - random.choices() 메서드 - 가중치 반영해 랜덤 요소 반환. (= choices…
module Python - random.shuffle() 메서드 ★★ - 요소 순서 뒤섞기. (= 순서 랜덤 = shu…
module Python - random.sample() 메서드 ★ - 일부 요소 랜덤 선택. (= sample메서드 =…
module Python - random.random() 메서드 ★ - 0 ~ 1 사이 부동소수 랜덤 반환. (= ran…
module Python - random.uniform() 메서드 ★ - 지정 범위 안 랜덤 부동소수 반환. (= uni…
module Python - random.triangular() 메서드 - 지정 범위 안 가중치 반영 랜덤 부동소수 반환…
module Python - random.betavariate() 메서드 △ - 베타분포 (통계용) 기반 0~1 사이 랜…
module Python - random.expovariate() 메서드 △ - 지수분포 (통계용) 기반 랜덤 부동소수 …
module Python - random.gammavariate() 메서드 △ - 감마분포 (통계용) 기반 랜덤 부동소수…
module Python - random.gauss() 메서드 △ - 가우스분포 (확률이론용) 기반 랜덤 부동소수 반환.
module Python - random.lognormvariate() 메서드 △ - 로그정규분포 (확률이론용) 기반 랜…
4/24
목록
찾아주셔서 감사합니다. Since 2012