Skip to content
사용 파일 : 엑셀 샘플 파일
사용 시트 : tbook
다양한 검색 방법
엑셀의 고급 필터
데이터베이스의 SQL
판다스의 필터
출판사가 성안당인 것만 검색
엑셀
SQL : SELECT * FROM tbook WHERE 출판사=”성안당”;
판다스
WHERE 절에 사용할 수 있는 연산자
비교 : =, <>, <, <=, >, >=
범위 : BETWEEN
집합 : IN, NOT IN
패턴 : LIKE
NULL : IS NULL, IS NOT NULL
복합조건 : AND, OR, NOT
검색 문제
출판년도가 1998인 목록 검색
출판년도가 1999~2003인 목록 검색(2가지 방법으로)
출판년도가 2002 또는 2005인 목록 검색
청구기호가 005로 시작하는 목록 검색
저자가 김씨인 목록 검색
자료명에 데이터베이스가 포함된 목록 검색
저자가 김씨 또는 이씨인 목록 검색
출판사가 길벗, 이한, 구민사, 정일 인 목록 검색(2가지 방법으로)
자료명에 데이터베이스가 포함되지 않는 목록 검색
ISBN이 없는(NULL인) 목록 검색
저자이름이 호로 끝나는 목록 검색
출판년도가 2로 끝나는 목록 검색(출판년도를 숫자로 저장한 경우)
모든 출판사만 검색
중복된 출판사는 1번만 출력되도록 모든 출판사를 검색
정렬 문제
자료명(도서명)의 오름차순으로 검색
출판년도 순으로 검색하고, 출판년도가 같으면 자료명(도서명) 순으로 검색
출판년도 내림차순으로 검색하고, 출판년도가 같으면 자료명(도서명) 오름차순으로 검색
Pandas : sort_values(by=열, ascending=False)
집계함수 문제
집계함수 : SUM(), AVG(), MIN(), MAX(), COUNT()
Pandas 통계함수 : count(), value_counts(), mean(), median(), max(), min(), std(), corr(),
출판년도의 평균을 검색
가장 최근 출판년도 검색
가장 오래된 출판년도 검색
GROUP BY 검색
GROUP BY로 트플을 그룹으로 묶은 후 SELECT 절에는 GROUP BY에서 사용한 <속성>과 집계함수만 나올 수 있다.
SELECT custid, SUM(saleprice) FROM orders GROUP BY custid; -> 올바른 예
SELECT bookid, SUM(saleprice) FROM orders GROUP BY custid; -> 틀린 예
WHERE 절과 HAVING 절이 같이 포함된 SQL 문은 검색조건이 모호해질 수 있다. HAVING 절은 1) 반드시 GROUP BY 절과 같이 작성해야하고, 2) WHERE 절보다 뒤에 나와야 한다. 3) <검색조건>에는 SUM, AVG, MAX, MIN, COUNT와 같은 집계함수가 나와야 한다.
Pandas : groupby(열)
Pandas 그룹 연산 : 통계함수, agg([‘max’,’min’,’mean’])
======================================================
사용 파일 변경 : 수강신청샘플
JOIN
SELECT HAKBUN, NAME, SEX, ISU, SCODE, TITLE, PROF
FROM TSTUDENT, TSUGANG, TSUBJECT
SELECT HAKBUN, NAME, SEX, ISU, SCODE, TITLE, PROF
FROM TSTUDENT, TSUGANG, TSUBJECT
WHERE TSTUDENT.HAKBUN = TSUGANG.F_HAKBUN AND TSUBJECT.SCODE = TSUGANG.F_SCODE;
JOIN 문법
내부조인 1 : SELECT <속성들> FROM 테이블1, 테이블2 WHERE <조인조건> AND <검색조건>
내부조인 2 : SELECT <속성들> FROM 테이블1 INNER JOIN 테이블2 ON <조인조건> WHERE <검색조건>
외부조인 : SELECT <속성들> FROM 테이블1 {LEFT|RIGHT|FULL [OUTER]} JOIN 테이블2 ON <조인조건> WHERE <검색조건>
부속질의
SELECT bookname FROM Book WHERE price=(SELECT MAX(price) FROM Book);
문제
학과별 학생수 출력
과목별 학생수 출력
학생별 수강신청한 총학점 출력
성적 테이블에서 필드(컬럼) 추가
성적(score) = 출석(present) + 과제(report) + 중간(mid) + 기말(final)
과목별 출석(present), 과제(report), 중간(mid), 기말(final) 의 평균 출력
학생별 출석(present), 과제(report), 중간(mid), 기말(final) 의 평균 출력
과목별 출석(present), 과제(report), 중간(mid), 기말(final) 의 최고점 출력
학생별 출석(present), 과제(report), 중간(mid), 기말(final) 의 최고점 출력
과목별 출석(present), 과제(report), 중간(mid), 기말(final) 의 최저점 출력
학생별 출석(present), 과제(report), 중간(mid), 기말(final) 의 최저점 출력
학생,수강,과목 테이블 inner join
글 내비게이션
error: Content is protected !!