con = oracledb.connect(user="사용자이름", password="비밀번호", dsn="호스트이름:port/SID") # DB에 연결 (호스트이름 대신 IP주소 가능)
cursor = con.cursor() # 연결된 DB 지시자(커서) 생성
dsn(데이터베이스 소스 이름)
호스트 이름 또는 IP 주소 부분이 localhost 일 경우: 자체 시스템, 즉 현재 시스템에 있는 작업 DB를 가리킴
포트번호 : DB 서버의 기본 포트번호는 1521입니다.
2. DB작업
cursor.execute("SQL문장") # DB 명령 실행 (cursor가 임시 보관)
out_data = cursor.fetchall() # cursor가 임시 보관한 내용을 out_data에 저장 (결과는 리스트)
# out_data 내용 출력해보기
for record in ou_data :
print(record)
여러 개의 함수를 실행하고 후, fetchall()로 한 번에 생성 가능
fetchone: 하나님께
fetchall: 여러 개가 왔어요 (결과는리스트!)
커서 내용을 저장하여 출력하고 select문처럼 데이터가 조회되는 경우에만(sql 실행 시 반환되는 결과만 있을 경우에만) 내용이 저장됨
주의할 점 : DML 작업을 실행했을 경우, commit을 실행하여 DB에 적용하게 되었습니다!
3. DB 연결 휴가
con.close() # DB 연결 해제
사용예시
con = oracledb.connect(user="system", password="oracle", dsn="localhost:1521/XEPDB1") # 데이터베이스에 연결
cursor = con.cursor() # 연결된 데이터베이스 지시자 생성
print('데이터베이스 연결 성공~!!!')
# 1. emp테이블의 내용 확인
cursor.execute("select * from emp") # 데이터베이스 명령 실행( cursor가 임시로 보관)
out_data = cursor.fetchall() # 커서의 내용을 out_data에 저장
for record in out_data: # out_data의 내용을 출력
print(record)
print('-'*50)
# 2. dept테이블에 2개의 레코드를 삽입 후 승인
cursor.execute("insert into dept values(50, 'DEVELOPER','LA')")
cursor.execute("insert into dept values(60, 'DEVELOPER','ATL')")
cursor.execute('commit') # sqldeveloper에 커밋
cursor.execute("select * from dept")
out_data2 = cursor.fetchall()
for record in out_data2:
print(record)
print('-'*50)
# 3. dept 테이블에서 dname이 "DEVELOPER"인 레코드 삭제 후 승인
cursor.execute("delete from dept where dname = 'DEVELOPER'")
cursor.execute("commit")
cursor.execute("select * from dept")
out_data2 = cursor.fetchall()
for record in out_data2:
print(record)
print('-'*50)
# 4. emp 테이블과 dept 테이블을 inner join 수행
cursor.execute("select e.empno, e.ename, e.mgr, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno")
out_data = cursor.fetchall()
for record in out_data:
print(record)
print('-'*50)
# 5. dept테이블의 구조와 내용을 이용하여 dept_ddl 테이블을 생성하시오. (단, create와 select를 활용하시오.)
cursor.execute("create table dept_ddl as select * from dept")
cursor.execute("select * from dept_ddl")
out_data = cursor.fetchall()
for record in out_data:
print(record)
print('-'*50)
con.close() # 데이터베이스 연결 해제
회사에서 교육을 보내고 자격증을 획득하라는 지시사항에 ㅋㅋ... AICE라는 자격증을 알게 되었어요^^*
저는 2023년 10월 7일 날짜로 제 4회 정기 시험을 보았습니다~!!
AICE 란?
AICE 자격증은 KT와 한국 경제 신문에서 공동으로 주관하는 민간 자격증으로, 인공지능 능력시험입니다.
아래와 같이 5가지 종류로 나뉘어져 있습니다. (왼쪽부터 어려운 순서대로)
저는 이 그림과 같이 Basic단계를 시험보았습니다!! 사실 ASSOCIATE 을 보고 싶었는데, 이번 정기 시험에서는
맛보기로 Basic을 쳐봤습니다 합격하면 그다음 단계로 갈 예정이예요~~~~
가격이 많이 사악하지만 회사에서 지원을 해주는거니...ㅋㅋ 그런데 라이센스를 따야겠죠??
Basic의 내용은 위 사진과 같습니다. 실무에서 가장많이 쓰이는 데이터에 대해서 코딩없이 데이터 분석 및 모델링을 돌리는 것을
출제범위도 확실하게 잘보이네요
시험 후기
인공지능을 공부해오고 있어서 특별히 어려운 부분은 없었던 것 같습니다.
특히 해당 시험은 빅데이터 분석기사 실기 시험과 굉장히 유사하게 출제됩니다!! 덕분에 쉽게 합격할 수 있지 않았나 생각합니다ㅎㅎ
다만, 시험 시작과 동시에 감독 프로그램 서버가 터져서 동작되지 않아서 굉장히 불안했고... 시험 끝나기 몇 분 전에 갑자기 시험 화면이 먹통이 되면서 보이지 않더니 시간이 다 되니까 자동 종료 되더라구요ㅎㅎ... KT측에 문의해봐도 시험에 문제 없다는 말만 되풀이 하시고, 잘 제출되었다고만 하셔서 대처가 많이 부족하지 않았나 하는 생각이 듭니다ㅜㅠㅠ
시험 Tip
정기 시험 이전에 무료로 특강을 해줄 때가 있습니다! 거기서 제공되는 샘플예제만 따라하시고 응용할 수 있으면 충분히