데이터 분석 41

[SQL 문법] LIKE

유사한 패턴을 가지는 요소를 뽑는다. 이름이 'Jan'으로 시작하는 사람 찾기 SELECT c.first_name , c.last_name FROM customer c WHERE c.first_name LIKE 'Jan%'; 'Jan'이 포함 된 것들이 나옵니다. 검색할 때 사용할 듯 하네요. 여기에 쓰이는 두 개 도우미가 있습니다. '%'와 '_' SELECT 'foo' LIKE 'foo' ,'foo' LIKE 'f%' ,'foo' LIKE '%o' ,'foo' LIKE 'F%' ,'foo' LIKE '_o_' ,'foo' LIKE 'f_' ,'fow' LIKE '%o'; %는 개수에 상관 없이 뭐든 포함 되고, _는 개수가 무조건 맞아야 합니다. 그리고 대소문자 구분합니다 따라서 위의 결과는 참,참,..

[SQL 문법] BETWEEN

특정 범위의 값을 뽑기 'payment' 테이블에서 amount 값이 8과 9 사이인 값 뽑기 SELECT p.customer_id , p.payment_id , p.amount FROM payment p WHERE p.amount BETWEEN 8 AND 9; 결과는 간단하다 반대로 8과 9 사이에 없는 값 뽑기 - NOT SELECT p.customer_id , p.payment_id , p.amount FROM payment p WHERE p.amount NOT BETWEEN 8 AND 9; 결과도 단순~ 일자 비교하기 - 실전 BETWEEN은 일자 비교에 많이 쓰임. 하지만 일자에서 timestamp 형은 비교에 제대로 안됨. 따라서 형을 바꿔야하는데, SELECT p.customer_id , p..

[SQL 문법] IN

집합에 값이 존재하는지 확인하는 연산자 customer_id의 값이 '1'과 '2'인 값 골라내기 SELECT r.customer_id , r.rental_id , r.rental_date FROM rental r WHERE r.customer_id IN (1,2) ORDER BY r.return_date DESC; 이렇게 1, 2 만 골라나옴 같은 표현. SELECT r.customer_id , r.rental_id , r.rental_date FROM rental r WHERE r.customer_id = 1 OR r.customer_id = 2 ORDER BY r.return_date DESC; 하지만, 가독성과 성능 측면에서 IN이 좋으니 IN을 쓰도록 하자~ customer_id의 값에 '1'과..

[SQL 문법] FETCH

LIMIT 와 동일하게 부분 범위 처리 시 사용한다. 부분 범위 처리를 잘하는 사람이 실력을 인정받고 있단다. LIMIT와 비교해서 다를게 없고 취향따라 쓴다고 한다. title로 정렬하여 최초의 1건을 뽑는다 SELECT f.language_id, f.fulltext FROM film f ORDER BY f.title LIMIT 1; 이렇게 하면 안되나? 싶은데 SELECT f.language_id, f.fulltext FROM film f ORDER BY f.title LIMIT 1; 그래서 궁금해서 ctrl + shift + E 해보았다 뭐 비슷.. 앞에 10개 이후에 최초의 10건을 뽑는다 SELECT f.film_id , f.title FROM film f ORDER BY f.title OFFS..

[SQL 문법] LIMIT

출력 값을 제한하는 용도. 엄청 많이 쓰임. postgresql, mysql 에서 지원 'film' table의 5개 행 불러오기 SELECT f.film_id, f.title, f.release_year FROM film f LIMIT 5; 5개를 가져옵니다. 그런데 계속 해보면 film_id 가 랜덤인 것을 알 수 있습니다. 왜냐하면 order by 가 없기 때문입니다. 'film' table의 5번째 까지 행 불러오기 SELECT f.film_id, f.title, f.release_year FROM film f ORDER BY f.film_id LIMIT 5 ; 이젠 5개가 깔끔하게 불러와 집니다. 'film' table의 11번째 부터 15번째 까지 행 불러오기 - OFFSET SELECT f...

[SQL 문법] SELECT DISTINCT

중복 값을 제외하고 분명히 다른 항목만 가져온다. *distinct : 뚜렷이 다른, 별개의 Table 만들기 SELECT DISTINCT - 기초 SELECT DISTINCT bcolor FROM t1 ORDER BY bcolor SELECT DISTINCT - 2개 column SELECT DISTINCT bcolor,fcolor FROM t1 t ORDER BY bcolor ,fcolor ; bcolor와 fcolor 값이 둘다 같은 ('red','red') 가 1개만 나왔다 SELECT DISTINCT - 2개 column 과 'ON' SELECT DISTINCT ON (fcolor) bcolor, fcolor FROM t1 t ORDER BY fcolor, bcolor ; SELECT DISTI..

[SQL 문법]ORDER BY ASC DESC 정리 - '내림차순' '오름차순'

ORDER BY ASCending = 오름차순 : 1부터, a 부터, ㄱ부터, 시간은 옛날 부터, 뭐든 작은 것 부터 1 -> 1,ㄱ 2 -> 2,ㄴ 3 -> 3,ㄷ 4 -> 4,ㄹ DESCending = 내림차순 : 큰 것 부터 1 -> 4 2 -> 3 3 -> 2 4 -> 1 예) email이라는 이름의 column의 것을 오름차순으로 정렬 할게 SELECT c.first_name , c.last_name , c.email , c.last_update FROM customer c ORDER BY c.email ASC 쉽게 쓰는 방법이 있다? 3번째 column의 것을 내림차순으로 정렬 할게 SELECT first_name , last_name , email , last_update FROM custo..

[SQL 문법] SELECT 문 그리고 alias

SELECT 는 말 그대로 Table에서 보고 싶은 Column을 고르기 위한 명령어. 한 두번 해보면 감이 옴. 역시 뭐든 직접 해봐야 해. alias 는 SQL 문의 실행 속도? 효율을 높이는 방법이라 함 DBeaver에서 퍼포먼스 체크가 있는데 SQL 문을 전체 선택하고 (선택 안하면 결과가 다르게 나옴, 물론 선택해도 돌릴 때 마다 결과가 다르게 나옴) ctr + shift + E #1 alias 쓰지 않았을 때 : 0.364 #2 썼을 때 : 0.240 www.postgresqltutorial.com/postgresql-alias/ PostgreSQL Alias www.postgresqltutorial.com 빨라지는 듯. 효율이 중요하니깐, 이건 익혀둬야겠다.