SQL 코드조각
mysql에서 실행하면 Mapper 관련 문자열을 뱉어준다.
※ 모두 String 뱉으므로 다른 데이터 타입인 경우 잘 수정해줘야 함
=====================================================================
# name은 테이블이름, c에는 각 컬럼이름
name = "student";
c = ["studno", "name", "userid", "grade", "idnum", "birthdate", "tel", "height", "weight", "deptno", "profno"];
a = []; # 원소마다 _를 기준으로 split하여 배열로 저장
s = ""
insert = "INSERT INTO "+name+" (";
i1 = ") VALUES ("
i2 = ");";
# insert into table_name (여기부분)
for i in range(0, len(c)) :
if(i + 1 < len(c)) :
insert += c[i] + ", "
else :
insert += c[i]
insert += i1
# c 배열의 원소마다 _를 기준으로 split하여 s 빈 문자열에 저장
# 비어있는 ss 문자열에 s 원소를 하나씩 꺼낼 때 첫문자를 대문자로 바꿔서 저장
# 이어서 저장된 문자열 ss를 a 배열에 첫부분과 같이 추가
for i in range(0, len(c)) :
if(c[i].find('_') != -1) :
s = c[i].split("_")
ss = ""
for i in range(1, len(s)) :
ss += s[i].capitalize()
a.append(s[0]+ss)
else :
a.append(c[i])
# values (여기부분)
for i in range(0, len(a)) :
if(i + 1 < len(a)) :
insert += "#{" + a[i] + "}, "
else :
insert += "#{" + a[i] + "}"
insert += i2
print(insert+"\n")
# c[0]은 primary key라고 기준을 잡는다
delete = "DELETE FROM " + name + " WHERE " + a[0] + "=#{" + a[0] + "}"
print(delete+"\n")
update = "UPDATE "+name+" SET ";
cc = ""
a = [];
s = ""
for i in range(0, len(c)) :
if(c[i].find('_') != -1) :
s = c[i].split("_")
ss = ""
for i in range(1, len(s)) :
ss += s[i].capitalize()
a.append(s[0]+ss)
else :
a.append(c[i])
for i in range(0, len(c)) :
if(i + 1 < len(c)) :
cc += c[i] + "=#{" + a[i] + "}, "
else :
cc += c[i] + "=#{" + a[i] + "}"
update += cc + " WHERE " + a[0] + "=#{" + a[0] + "}"
print(update+"\n")
select = "SELECT "
for i in range(0, len(c)) :
if (i + 1 < len(c)) :
select += c[i] + ", "
else :
select += c[i]
select += " FROM " + name + " WHERE " + a[0] + "=#{" + a[0] + "}"
print(select+"\n")
========================================================================
※ datetime의 출력형태를 바꿔야 하는 경우 그 부분만 수정
WHERE절 조건 주의