본문 바로가기

728x90
반응형

Study/SQL

(8)
[PostgreSQL] Permission denied Error postgreSQL에서 csv 파일 엑세스할때 발생한 오류이다. copy retail_sales FROM 'C:\Users\YH\Desktop\us_retail_sales.csv' DELIMITER ',' CSV HEADER; ERROR: "C:\Users\YH\Desktop\us_retail_sales.csv" 파일 일기 모드로 열기 실패: Permission denied HINT: COPY FROM 명령 은 PostgreSQL 서버 프로세스가 한 파일을 읽어 처리합니다. 클라이언트 쪽에 있는 파일을 읽어 처리 하려면, psql의 \copy 내장 명령어를 사용하세요. 해당 오류는 postgreSQL 서버가 파일을 엑세스할 수 있는 권한이 없어서 발생한 문제로, postgreSQL 서버가 엑세스 할 수 ..
[MySQL] JOIN조건과 WHERE조건의 차이 /* 쿼리 1번 */ SELECT A.ORD_NO,A.ORD_DT,A.ORD_HMS,A.SHOP_NO,B.SHOP_NO,B.SHOP_NM FROM ORD A LEFT JOIN ( SELECT SHOP_NO,SHOP_NM FROM SHOP B WHERE B.SHOP_NO NOT LIKE 'SH019%' /* SH019로 시작하는 SHOP_NO 제외 */ ) B ON A.SHOP_NO = B.SHOP_NO WHERE B.SHOP_NO IN ('SH0009','SH0191','SH0158','SH0192','SH0193','SH0194') AND A.ORD_DT = '20120101' AND A.ORD_HMS = '090028' /* 쿼리 2번 */ SELECT A.ORD_NO,A.ORD_DT,A.ORD_HM..
[MySQL] COUNT(1), COUNT(*), COUNT(col)의 차이 SELECT COUNT(1) AS CNT_1 , COUNT(*) AS CNT_ASTERISK , COUNT(SEQ) AS CNT_NULL , COUNT(CL_UNI_CD) AS CNT_DATA , COUNT(DISTINCT CL_UNI_CD) AS CNT_DISTINCT FROM COM_CD; [출력 결과] 1. COUNT(1), COUNT(*)의 차이 count(1)과 count(*)은 테이블 전체의 행의 개수를 확인하기 위해서 사용 결론적으로는 큰 차이는 없다. 아래 데이터 검증 결과에서 알 수 있듯이, count(*)은 테이블의 모든 행을 세고, count(1)은 결과 행을 세는데 사용되는 상수 1을 count한다. COUNT(*), COUNT(1) 둘 다 행의 NULL 값이 있더라도 행의 전체 개..
[MySQL] GROUP BY 와 DISTINCT의 차이 이번 SQL 교육을 들으면서는 보통 PK 컬럼만 DISTINCT 하거나 GROUP BY 를 이용해서 결과를 출력해서 몰랐는데,, INDEX가 없는 컬럼에 대해서 DISTINCT와 GROUP BY의 실행결과를 출력해보니 명확하게 차이가 난 것을 확인할 수 있었다. (1) 실행 속도의 차이 DISTINCT는 363ms 로 결과를 보였지만, GROUP BY는 10분이 넘게 걸렸음. (2) 출력 결과 확인 아래 출력 결과를 보면 DISTICT는 정렬되지 않은 결과로 return 해주고, GROUP BY는 정렬된 기준으로 결과를 return 해준다. -- Distinct SELECT DISTINCT UPPER_CASE FROM ORD_ITEM WHERE ORD_DT BETWEEN '20120301' AND '20..
[SQL] 2장 인덱스 기본 * 해당 내용은 친절한 SQL 튜닝 책을 보고 정리한 게시글 입니다. 목차 더보기 2.1. 인덱스 구조 및 탐색 2.2. 인덱스 기본 사용법 2.1 인덱스 구조 및 탐색 인덱스 : 온라인 트랜잭션 처리(OLTP, Online Transaction Processing) 시스템에서는 소량 데이터를 주로 검색하므로 인덱스 튜닝이 중요하다. 인덱스 튜닝의 2 가지 핵심요소 1. 인덱스 스캔 효율과 튜닝 인덱스 스캔 과정에서 발생하는 비효율을 줄이는 것(인덱스 스캔 효율화 튜닝) 예) 어떤 컬럼을 인덱스로 활용해야 스캔량이 줄어들까? 2. 랜덤 액세스 최소화 튜닝 테이블 액세스 횟수를 줄이는 것(랜덤 엑세스 최소화 튜닝) 1번보다 2번이 성능에 미치는 영향이 더크므로 중요하다 즉, SQL 튜닝은 랜덤 I/O 와의..
[SQL] 1장 SQL 처리 과정과 I/O * 해당 내용은 친절한 SQL 튜닝 책을 보고 정리한 게시글 입니다. 목차 더보기 1.1 SQL 파싱과 최적화 1.2 SQL 공유 및 재사용 1.3 데이터 저장 구조 및 I/O 매커니즘 1.1 SQL 파싱과 최적화 1.1.1 구조적, 집합적, 선언적 질의 언어 SQL(Structured Query Language) 구조적 질의 언어 구조적(structued)이고 집합적(set-based)이고 선언적(declarative) 인 질의 언어 결과 집합은 구조적, 집합적이지만 만드는 과정은 절차적(procedural)이어야 한다. 프로시저를 만들어 내는 DBMS 내부엔진이 바로 SQL 옵티마이저이다 옵티마이저가 프로그래밍을 대신해 주는 셈이다. 1.1.2 SQL 최적화 SQL 파싱 : SQL파서(parser)가..
[MySQL] DDL, DML 명령어 ※ 포스팅을 하면서 실습은 아래의 사이트에서 수행하였다. 작성예시는 이전 포스팅 내용을 참고하길 바랍니다. http://sqlfiddle.com/ SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions. Query Panel Use this panel to try to solve the problem with other SQL statements (SELECTs, etc...). Results will be displayed below. Share your queries by copying and pasting the URL that is generated after each run. s..
[MySQL] 웹에서 실습하기 SQL 관련 포스팅을 진행하면서 실습은 아래 사이트에서 진행하였다. http://sqlfiddle.com/ SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions. Query Panel Use this panel to try to solve the problem with other SQL statements (SELECTs, etc...). Results will be displayed below. Share your queries by copying and pasting the URL that is generated after each run. sqlfiddle.com 사용방법 ① 이 ..

728x90
반응형