개-발/SQL

· 개-발/SQL
postgresql bash 로 접속후 로그인 까지 완료 해준다. docker exec -it 도커네임 psql -U postgres -W postgres postgres select * from pg_tables; 일반적으로 이렇게 조회를 생각했었는데 이러면 시스템 테이블까지 조회가 됏었다. 생성된 테이블만 조회를 하려면 데이터테이블을 제외 해주고 조회를 한다. SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';
· 개-발/SQL
합집합(정제된), UNION UNION은 합집합 연산. 사용할 컬럼의 수와 데이터 형식이 일치해야 하며, 합친 후 '중복 제거'한다. SELECT * FROM (테이블1) UNION SELECT * FROM (테이블2); 합집합(정제하지 않는), UNION ALL 정렬하지 않고 중복 제거 하지않는다. ( 정제하지 않음) SELECT * FROM (테이블1) UNION ALL SELECT * FROM (테이블2); 교집합(정제된), INTERSECT 두 개의 테이블에 대해 겹치는 부분을 추출하는 연산이다. 추출 후 '중복 제거' 하여 보여준다. SELECT COL1, COL2 FROM A INTERSECT SELECT COL1, COL2 FROM B INTERSECT 명령어는 Oracle DB, Maria..
· 개-발/SQL
변경 전 SELECT c.title, a.cnt_checkins, b.cnt_total, (a.cnt_checkins/b.cnt_total) AS ratio FROM ( SELECT course_id, count(DISTINCT (user_id)) AS cnt_checkins FROM checkins GROUP BY course_id ) a INNER JOIN ( SELECT course_id, count(*) AS cnt_total FROM orders GROUP BY course_id ) b ON a.course_id = b.course_id INNER JOIN courses c ON a.course_id = c.course_id 변환 하기 변경 후 WITH table1 AS( SELECT cours..
· 개-발/SQL
서브쿼리(subquery)는 쿼리문 안에 쿼리가 들어가는 것을 의미한다. 서브쿼리를 작성할때는 서브쿼리문 앞에 Tap 키로 띄어쓰기를 맞춰준다. 1. WHERE - subquery SELECT * FROM 테이블명1 WHERE 필드명1 IN ( SELECT 필드명2 FROM 테이블명2 WHERE 필드명 ='필드명' ) EX) SELECT * FROM users WHERE user_id IN ( SELECT user_id FROM orders WHERE payment_method ='kakaopay' ) 풀이) orders 안에 있는 user_id 필드에 payment_method='kakaopay' 결과물을 users 테이블에 있는 user_id 와 겹치는 *(모든정보) 보여주세요 2.SELECT 서브쿼..
· 개-발/SQL
테이블 연결 JOIN 보통 Primary Key 및 Forign Key를 이용하여 조인한다. SELECT * FROM 테이블명 INNER JOIN 테이블명 *INNER은 생략가능 [ LEFT INNER JOIN 왼쪽기준 , RIGHT INNER JOIN 오른쪽기준 ] SELECT A.USER_ID, A.NAME, B.COMPANY_NAME FROM USERTABLE A JOIN COMPANY B ON A.USER_ID = B.USER_ID; ON 테이블명.필드명 = 테이블명.필드명 ex) SELECT * FROM users(테이블명) u(alias 별칭) LEFT JOIN point_users(테이블명) p(alias 별칭) // LEFT를 생략하면 자동으로 LEFT로 지정된다 ON u.user_id =..
· 개-발/SQL
1. GROUP BY SELECT 필드명 FROM 테이블명 GROUP BY 필드명 중복된 것을 취합해 준다. DISTINCT = 단일의 대상 GROUP BY = 여러 대상 (집계,통계 데이터) ex) 같은성씨의 갯수 알아보기 SELECT 필드명,COUNT(*) FROM 테이블명 GROUP BY 필드명 2. ~별로 최소값 구하기 (GROUP BY MIN) ~별로 (그룹별 , 나이별 , 날짜별) < GROUP BY SELECT 필드명1,MIN(필드명2) FROM 테이블명 GROUP BY 필드명1 풀이.= 테이블 에서 필드명1으로 묶은 후 거기서 필드명1안에 필드명2로된 최소값들을 구하라 ex) 1주차 별 라이크 수 구하기 SELECT week,MIN(likes) FROM checkins GROUP BY we..
· 개-발/SQL
1. SHOW TABLES < 테이블 목록을 확인한다. 2. 확인한 테이블을 보고 SELECT * FROM 테이블명 내가 필요한 정보가 어디에 담겨 있는지 인지 한다. 3. WHERE 로 필요한 정보를 찾는다. SELECT * FROM checkins WHERE user_id = '12dd94fe' < 여기서 문자열은 작은따옴표 ( ' ' ) 안에 넣어준다. ! 숫자는 따옴표를 안넣는다 *빨간색 글씨는 sql의 명령어로 데이터명과 햇깔리지 않게 대문자로 표기해준다. 4.데이터 필드 2개 찾기 (WHERE AND) ex) 이름 황** 과 결재를 카드로 한 사람 찾기. SELECT * FROM checkins WHERE user_id = '황**' AND payment_method = 'CARD' < 이처럼..
imSoo
'개-발/SQL' 카테고리의 글 목록