본문 바로가기

분류 전체보기112

빡공단 22기 도전기 - SQL 기타 JOIN (24일차) 기타 JOIN() 1. NATURAL JOIN() SELECT * FROM 테이블명1 NATURAL JOIN 테이블명2 ; -- 동일한 표현 SELECT * FROM 테이블명1 INNER JOIN 테이블명2 ON 테이블명1.키 컬럼1 = 테이블명2.키 컬럼2 AND 테이블명1.키 컬럼1 = 테이블명2.키 컬럼2 ; JOIN 조건을 주지 않고 EQUI-JOIN하는 방법 각 테이블에 공통으로 존재하는 컬럼이 '복합 키'로 사용된다. 따라서, 기존에 '키'로 사용되는 컬럼이 '_1'로 하나가 더 추가되었던 것과 달리, '키'당 컬럼 하나가 출력된다. 2. CROSS JOIN() SELECT * FROM 테이블명1 CROSS JOIN 테이블명2 ; -- 동일한 표현 SELECT COUNT(*) FROM 테이블명.. 2022. 12. 7.
빡공단 22기 도전기 - SQL OUTER JOIN (23일차) OUTER-JOIN OUTER-JOIN()을 사용하면, EQUI-JOIN()으로 볼 수 없는 결과데이터를 볼 수 있다. 방식은 LEFT-JOIN(), RIGHT-JOIN()이 있으며, 기준 테이블을 왼쪽으로 할지 오른쪽으로 할지 결정한다. 1. LEFT JOIN() / OUTER JOIN() ( ANSI 표준 작성법 ) SELECT 컬럼명 FROM 테이블명1 LEFT/RIGHT OUTER JOIN 테이블명2 ON 테이블명1.컬럼명1 = 테이블명2.컬럼명2 WHERE 조건식 ; 왼쪽인 'employees'테이블을 기준으로 출력된다. 두 테이블의 결합하고자 하는 컬럼의 '합집합'이라고 생각하면 된다. 따라서 기준 테이블이 null값이어도 행이 출력된다. 2. JOIN SIGN을 이용한 결합 ( Oracle .. 2022. 12. 7.
빡공단 22기 도전기 - SQL JOIN (22일차) EQUI - JOIN 1. EQUI-JOIN (ANSI 표준 JOIN 방식) 서로 다른 테이블을 결합할 때, 각 테이블의 컬럼 간에 같은 필드값이 있는 경우만 출력 employees 테이블과 department 테이블을 join SELECT 필드명 FORM 테이블명1 INNER JOIN 테이블명2 ON 테이블명1.필드명 = 테이블명2.필드명 WHERE 조건식 ; department_id가 employees 테이블쪽 하나, departments 테이블쪽 하나로 2개가 표시된다. INNER JOIN()은 각 테이블에 존재하는 키값들의 교집합에 해당하는 값들만 출력한다. 따라서, 키값이 null값이라면 출력되지 않는다. JOIN() 된 테이블에서 컬럼을 SELECT() 할 경우, 그냥 컬럼명만 적으면 '정의가.. 2022. 12. 7.
빡공단 22기 도전기 - SQL 공공데이터 실습 (21일차) 공공데이터를 활용한 실습 서울시 CCTV설치현황, 비상벨 설치현황을 활용한 실습을 해본다. 1. 데이터 업로드 F5 키를 누르면 전체 스크립트를 실행한다. CCTV 비상벨 파일을 업로드 한다. 2. CCTV 데이터 먼저 기관명이 다르게 표시되어있기 때문에 전처리를 한다. 서울특별시를 빼고 '구'로 통일한다. 경찰서, 구청은 '구'로 통일한다. TRIM()으로 글자 앞 공백을 지운다. 설치 목적을 확인한다. 설치 목적 구분 데이터는 이후에 사용할 예정이니 따로 적어놓는다. 지역별 카메라 설치 수를 확인한다. 설치목적별 카메라 설치 수를 확인한다. CASE WHEN()을 사용하여, 설치목적이 '어린이보호'에 해당하는 경우의 '카메라대수'를 표시하고, 아닌 경우에는 0으로 표시한다. 이렇게 하면 설치목적별로 .. 2022. 12. 7.
비전공자 앱개발 도전기 22년 올해 글을 열심히 써보겠다고 다짐하고, 야심차게 블로그를 만들었다. 상반기에는 온라인 강의를 들으며, 대량의 강의리뷰를 뽑아내고자 다짐했다. 하지만,, 강의 하나를 집중해서 들어도 일주일 이상이 걸리고, 진짜 진이 다 빠져서 리뷰 쓸 엄두가 나지 않았다. 중반기에는 빡공단 참여와 블챌에 도전하며 글을 조금 쓰기는 했다. 하지만,, 블챌도 중간에 힘이 빠져서 결국 완주하지 못했다. 역시나 인생은 계획대로 되지 않는법.. 어떤 한가지를 꾸준히 한다는게 생각만큼 쉽지 않다. 하지만!! 그와중에 진짜 꾸준히 한게 있었다. 그거슨 바로 앱 개발!! 아직 완성은 못했지만, 이제 어느정도 틀이 잡혀서 하나씩 글로 남겨볼까 한다. 프론트 : Flutter (iOS, AndroidOS를 동시에!) 백엔드 : Fl.. 2022. 11. 30.
앱 만들기 2월부터였나, 괜찮은 아이디어가 있어서 앱으로 만들고 있다. 프론트엔드는 'Flutter(플루터)'로, DB는 'Firebase(파이어베이스)'로 작업중이다. 그동안의 과정을 한번 정리해볼까 한다. 지식의 출처1 : Flutter 먼저 Flutter이다. Flutter는 유료강의와 유튜브를 많이 참고했다. 1. 패스트캠퍼스 강의 https://fastcampus.co.kr/dev_online_appsforall https://fastcampus.co.kr/dev_online_makeapp 맨 처음에는 '패스트캠퍼스' 강의를 두 개 들었다. '왕초보 강의'는 문법을 세세하게 알려주고 시작하는 강의였는데, 생초보라 도움이 많이 되었다. 그다음 '입문 강의'에 있는 Flutter 클론코딩 5개를 만들어 보며 .. 2022. 11. 30.
빡공단 22기 도전기 - SQL 복합 함수 (20일차) 복합 함수 1. LPAD()를 활용한 시각화 1000단위로 ◆를 표시한다. 2. 복합함수 연습문제 : 연도별 입사자 수와 평균 급여 출력하기 먼저 입사 연도를 구해본다. GROUP BY()를 이용하여 연도별 입사자수, 평균연봉을 확인한다. ORDER BY()는 SELECT() 다음에 실행되기 때문에, SELECT()에서 지정한 별칭을 사용 가능하다. LPAD()로 시각화를 해본다. 3. 복합함수 연습문제 : 직원들의 이름, 급여, 부서번호, 직업정보, 근속연수 SYSDATE는 현재 시간을 표시한다. MONTHS_BETWEEN()을 사용하여, 입사일로부터 현재 시간까지의 근속연수를 계산한다. 개월수로 구한 후 /12를 하면 연수로 나타낼 수 있다. WHERE()를 이용하여 근속연수가 10년 이상인 사람만 .. 2022. 11. 30.
빡공단 22기 도전기 - SQL 그룹함수3 (19일차) 그룹함수 : Part 3 1. HAVING() 행(row) 데이터에서 필터링을 할 때는 WHERE()를 사용했지만, 집계된 결과에서 다시 필터링을 하려면 HAVING()을 사용한다. GROUP BY()로 집계 된 id의 건수에서 5초과인 값을 추출한다 순서는 GROUP BY() 다음에 위치한다.(순서는 꼭 지켜야 한다.) 1-1. 연습문제 SELECT : 5번 화면에 표시할 열을 지정한다. FROM : 1번 테이블을 불러온다 WHERE : 2번 테이블에서 행기준으로 필터링을 한다. GROUP BY : 3번 그룹으로 묶을 열을 지정한다. HAVING : 4번 추가로 집계 조건을 적용한다. ORDER BY : 6번 나열 순서를 정한다. WHERE()에서는 department_id기준으로 40, 50, 50인.. 2022. 11. 30.
빡공단 22기 도전기 - SQL 그룹함수2 (18일차) 그룹함수 : Part 2 1. GROUP BY() 연습문제 18일차에서 CASE WHEN()으로 풀어본 연습문제이다. CASE WHEN()을 중복으로 사용하며 풀 수도 있지만, 그룹함수로 더 쉽게 풀 수 있다. - 소득구간 00000 ~ 70000 (저소득) 70000 ~ 200000 (중위소득) 200000 ~ 250000 (고소득) 250000 ~ (초고소득) 각 사람이 급여에 따라 어느 그룹에 해당하는지 표시한다. 이렇게 소득그룹을 GROUP BY()로 묶고 각 그룹당 평균급여를 계산할 수 있다. 2. ORDER BY() 연습문제 내림차순으로 정렬하려면 DESC를 붙여준다. 오름차순으로 정렬하려면 아무것도 안쓰거나, ASC를 붙여준다. ORDER BY()는 SQL실행 순서 중 가장 마지막에 동작한다.. 2022. 11. 30.
빡공단 22기 도전기 - SQL 그룹함수1 (17일차) 그룹함수 Part 1 1. 작성 순서 SELECT - 4. 컬럼 선택 FROM - 1. 테이블 선택 WHERE - 2. 필터링 GROUP BY - 3. 집계함수 HAVING - 3. 집계함수 ORDER BY - 5. 정렬 2. GROUP BY() 엑셀에서 피벗테이블과 같은 역할을 한다. 이런식으로 피벗테이블과 같이 'department_id에 어떤 값이 있는지 확인할 수 있다. GROUP BY()를 통해 id를 집계하고, SELECT()를 이용하여 다시 표시하여준다. 또한 COUNT()를 통해 각 아이디에 속한 갯수를 파악할 수 있다. 컴퓨터에서는 SELECT()문에 컬럼이 명시되어있지 않아도, GROUP BY()에서 컬럼으로 묶는 기능을 한다. 직관적으로 확인할 수 있도록 SELECT()에도 컬럼을 작.. 2022. 11. 30.
반응형