오늘은 join 문법을 파헤쳐보도록 하겠습니다. SQL 실력자들은 보통 join을 자유자재로 하는데요. 제가 스승으로 모시고 있는 용xx준 님도 스승님 이거 테이블 join 어떻게 해요 물어보면 ‘아 이거 별거 아니자나 이거 쉬움ㅋㅋ’ 이라고 하십니다. 누군가 일을 쉽게 한다? 그 분은 이미 전문가이십니다. 그럼 저희도 전문가로 가기위한 첫 발걸음을 떼 보도록 하겠습니다. ㄹㅊㄱㄹ 제 n정규형이 된 테이블을 만드는 것까지는 좋은데, 그거 한다고 해서 테이블을 다 쪼개 놓는다면 나중에 출력은 어떡할까요. 실은 SELECT, JOIN 문법으로 요리조리 잘 쓰면 되기 때문에 걱정할 필요 없습니다. JOIN을 쉽게 이해하려면 테이블을 합치는 방법부터 알아야합니다. 알아보시죠. 다른 테이블에 있는 컬럼도 한꺼번에..
자 지난 시간까지 제1,2 정규형을 알아보았습니다. 오늘은 하… 기훈이형!!! 말고 3정규형을 알아보겠습니다. 제3정규형(3rd Normal Form) 제 2정규형을 만족하는 테이블에서 primary key 또는 composite primary key 컬럼에 종속되는 것이 아닌 하찮은(무도 박명수) 잔챙이 컬럼에 종속된 컬럼을 다른 테이블로 뺀다면 그것이 제3정규형입니다. [체육센터 테이블] 프로그램 가격 강사 출신대학 스쿼시 5000 팜하니 서울대 축구 4000 손흥민 서울대 헬스 7000 덱스 연세대 헬창과정 8000 덱스 고려대 탁구 3000 팜하니 연세대 ⬆️ 대충 제2정규화를 만든 테이블입니다. 이 테이블은 2정규형을 만족하기 때문에 partial dependency는 없습니다. 하지만 ‘출신대..
다덜 DBeaver나 다른 RDBMS에서 클릭하면서 테이블만들고 컬럼 생성하시나요? 실은 쿼리로 테이블과 컬럼을 만들 수 있습니다. 제가 그냥 말단 청소하는 직원이라면 테이블 생성보다는 테이블을 가져다쓰는 일만 많겠지만 인생한방이라고 어떻게 될지 모르는 거 아니겠습니까. 그래서 오늘은 SQL 문법으로 새로운 테이블과 컬럼 만드는 법을 알아보도록 하겠습니다. 렛츠 콩 데이터베이스 생성, 삭제하는 법 CREATE DATABASE 데이터베이스이름 DROP DATABASE 데이터베이스이름 위는 생성 아래는 삭제. 삭제하면 돌이킬 수 없는 강을 건넙니다. 테이블생성 CREATE TABLE 테이블명 ( 컬럼1이름 datatype, 컬럼2이름 datatype, 컬럼3이름 datatype, ... ); 원하는 데이터베..
중요한 IF / CASE 문법 자주쓰는 IF 함수 쿼리를 다루다뷰면 문자나 숫자 같은 데이터 넣는 곳이 많습니다. 근데 그 곳에 한가지 고정이 아니라 조건에 따라 각각 값을 넣고 싶을때 if/case문을 사용합면 됩니다. IF(조건식, 조건식맞으면이거, 조건식틀리면이거); IF() 안에 차례로 이것들을 넣으면 됩니다. 조건식은 WHERE 뒤에 쓰던거 그대로 사용하시면 됩니다. SELECT IF(1+2=3, '정답', '오답'); 이렇게 쿼리를 날리면 어떻게 될까요? 조건식이 참이니 ‘정답’이라는 문자가 그 자리에 남습니다. IF()는 문자, 숫자 등의 데이터가 들어가는 곳에 전부 넣을 수 있기 때문에 이렇게 사용할 수 있습니다. 예를들어 card 테이블에서 사용금액이 20만원이 넘는 경우 ‘부자’ 그게 ..
이런 🐴 이 있습니다. “데이터는 거짓말을 하지 않는다.” 이 데이터 속에 숨겨진 의미를 찾고 싶다면 전체를 통계내는 것보다는 그룹으로 묶고 그 특정 그룹에 안에서 통계를 내는 것이 훨 ~ 씬 더 쉽습니다. 특정 그룹을 뽑고 싶다면 WHERE을 쓰면 되지만, 그룹이 뽑을게 많다? 그렇다면 GROUP BY를 쓰면 됩니다. GROUP BY SELECT 시군구명 FROM 강원도_관광숙박업_현황 GROUP BY 시군구명; select from 뒤에 group by 컬럼명을 붙일 수 있는데, 일케하면 그 컬럼에 있는 카테고리끼리 그룹지어 보여줍니다. ㄹㅇ이네;;; 근데 그룹만 지으면 아무 쓰잘데기 없습니다. GROUP BY 는 전에 했던 MIN, MAX, COUNT, SUM, AVG 함수와 같이 사용하는 경우가 ..
서브쿼리 select 안에 또 select 를 쓸 수 있는거 아시나요? 네? 이미 다 아신다구요? 다시한번 묻겠습니다. select 안에 또 select 를 쓸 수 있는거 아시나요? 네ㅎㅎ 처음 듣는다구요?? 실은 select 문법 안에 select를 또 사용할 수 있는데요. 이런걸 서브쿼리라고 하는데 어떻게 사용하는지 알아봅시다. Q. 위의 테이블에서 사용금액의 평균보다 더 큰 사용금액을 가진 사람만 출력하고 싶을땐 어떻게 해야할까요? 간단합니다. 사용금액 평균을 구한다. 사용금액 > 사용금액 평균을 필터링해주소 이겁니다. 간단하쥬?(백종원 톤으로) SELECT AVG(사용금액) FROM card 사용금액의 평균을 내보면 대충 245000원이 나옵니다. 그담엔 SELECT * FROM card WHER..
MIIN, MAX, AVG, SUM 집계함수로 통계내기 데이터 분야에는 총 세가지 분야가 있는데, Data Science / Data Analysis / Data Engineer 가 있습니다. 요즘은 데이터가 안들어가는 곳이 없기 때문에 꼬꼬꼬꼬꼬꼬꼮 SQL 역량은 필수 입니다. 소위말해 국가 권력급 SQL이라고 할 수 있죠. 이 중에서 Data Analysis를 잘하려면 어떻게 해야할까요? 데이터의 숨은 의미를 잘 찾아야합니다. 숨어있는 의미와 이것저것 의미를 이끌어낸다면 잘하는 것입니다. 가장 쉽게 의미를 찾는 방법은 통계를 내는 것입니다. SQL로 집계함수를 내는 방법은 거의 엑셀과 유사한데요. 최댓값(MAX) SELECT MAX(컬럼) FROM 테이블명 최솟값(MIN) SELECT MIN(컬럼) ..
AND / OR / NOT으로 조건식 나혼자만 레벨업 저희가 하나만 조건 걸어서 데이터 출력하는 것으로 머무르지 않을거잖아요? 가끔은 여러 조건, 요구에 맞춰서 데이터를 출력해야하는 상황이 옵니다. 예를들어서 시군구명은 ‘강릉시’이고 총층수는 ‘6’층이며 건물용도명은 ‘호텔’ 인 데이터를 뽑고싶습니다. 그렇다면 조건식이 2개 이상 필요한 경우 조건식 2개를 AND, OR, NOT을 붙여서 연결해줄 수 있는데요. SELECT * FROM 강원도_관광숙박업_현황 WHERE 시군구명 = '강릉시' AND 총층수 = 6 AND 건물용도 = '호텔'; AND는 모든 조건이 전부 맞으면 ~ 이라는 뜻입니다. 그래서 위코드를 실행하면 강릉시이고 호텔 용도로 6층인 것을 출력해줍니다. SELECT * FROM 강원도_..
안녕하세요 오늘은 SQL에 대해 배워보겠습니다. SQL? 흔히 쿼리라고 하죠. 이 언어는 데이터베이스에 데이터 입출력, 수정삭제, 데이터 가공과 조작 이런 것에 특화된 언어입니다. 정처기 공부할때 봤던 DCL, DML, DDL 이런 것들입니다. 그래서 SQL을 잘 작성하면 데이터를 내 맘에 맞게 출력하고 넣고 지우고 수정하고 씹고뜯고맛보고 즐기고 할 수 있습니다. 그래서 이거 4개만 배우면 SQL 끝인데, 이거 뿐만 아니라 실은 깊게 들어가면 프로그래밍 언어처럼 조건문, 반복문, 변수 만들기 등 많은 것을 할 수 있지만 오늘은 가장 중요한 출력과 정렬을 배워보겠습니다. SELECT 문법 SELECT 컬럼명 FROM 스키마.테이블명 아직은 기초적인 내용이기 때문에 나중에 좀 헷갈리는 것, 어려운 것 위주로..