데이터의 그룹화 GROUB BY 1. 열 이름으로 그룹화 집계 함수를 제외한 SELECT문의 모든 열은 GROUB BY절에 있어야함 SELECT 그룹화할 열 이름1, 그룹화할 열 이름2, 집계 함수 FROM 테이블명 WHERE 조건절 GROUB BY 열 이름1, 열 이름2; 2. 열 위치로 그룹화 SELECT 그룹화할 열 이름1, 그룹화할 열 이름2, 집계 함수 FROM 테이블명 WHERE 조건절 GROUB BY 1, 2; 1. PPC_201312 테이블을 사용하여 고객등급별 인당 평균 연 수익을 계산하려면? SELECT SEG, ANNL_REV FROM PPC_201312 GROUP BY SEG; 2. PPC_201312 테이블을 사용하여 카드상품과 대출상품 보유 간의 관계를 알아보려면? SELECT ..
숫자 데이터 요약하기 COUNT 함수 집계 함수 정리 1. COUNT : 행의 수를 나타냄 => NULL값을 포함한 전체 행의 수 : COUNT(*) => NULL값을 제외한 전체 행의 수 : COUNT(열 이름) => 중복을 제외한 행의 수 : COUNT(DISTINCT 열 이름) 2. SUM : 행의 합계를 나타냄 3. AVG : 행의 평균을 나타냄 4. MAX : 행의 최댓값을 나타냄 5. MIN : 행의 최솟값을 나타냄 6. STDENV : 행의 표준편차를 나타냄 7. VARIANCE : 행의 분산을 나타냄 1. STUD_SCORE 테이블을 사용하여 NULL 값을 제외한 음악 점수 보유자를 세려면? SELECT COUNT(MUSIC_SCORE) AS MUSIC_CNT FROM STUD_SCORE;..
문자/숫자/날짜 함수 배워보기 문자 함수 함수란 변수를 특정한 형태로 변화시키는 것이다 대표적인 문자 함수는 1. LOWER : 모든 문자를 소문자로 변환함 2. UPPER : 모든 문자를 대문자로 변환함 3. LENGTH : 문자의 길이를 나타냄 4. SUBSTR : 문자 값 중 원하는 길이만큼만 나타냄 5. RTRIM : 문자열 오른쪽 공백을 잘라냄 6. LTRIM : 문자열 왼쪽 공백을 잘라냄 7. TRIM : 문자열의 왼쪽, 오른쪽 공백을 잘라냄 8. REPLACE : 특정 문자열을 다른 문자열로 대체함 9. COALESCE : 조건에 따라 여러 가지 값으로 치환함 10. INTCAP : 첫 글자는 대문자, 나머지는 소문자로 변환함 가 있다! 1. VENDOR_INFO 테이블을 사용하여 이름을 소..
텍스트 마이닝(Text mining) LIKE 연산자를 활용한 필터링 1. 뒤에 나오는 문자들을 알 수 없는 경우 SELECT 열 이름 FROM 테이블명 WHERE 열 이름 LIKE '찾고 싶은 문자%'; 2. 앞에 나오는 문자들을 알 수 없는 경우 SELECT 열 이름 FROM 테이블명 WHERE 열 이름 LIKE '%찾고 싶은 문자'; 3. 앞뒤에 나오는 문자들을 알 수 없는 경우 SELECT 열 이름 FROM 테이블명 WHERE 열 이름 LIKE '%찾고 싶은 문자%'; 4. 뒤에 나오는 문자를 알 수 없는 경우 SELECT 열 이름 FROM 테이블명 WHERE 열 이름 LIKE '찾고 싶은 문자_'; 5. 앞에 나오는 문자를 알 수 없는 경우 SELECT 열 이름 FROM 테이블명 WHERE 열 ..
논리연산자 AND, OR 알아보기 AND 연산자 AND 연산자를 사용할 경우 두 가지 조건을 모두 만족하는 데이터만 출력하게 된다 => 만약 조건을 추가하고 싶다면 계속해서 AND 연산자를 사용하면 됨! SELECT 열 이름1, 열 이름2 FROM 테이블명 WHERE 조건절1 AND 조건절2 1. BRNCH_INFO 테이블을 사용하여 직원 수가 10명 이상이고 경영평가가 'C'인 영업점 번호, 영업점 이름, 영업점 인원, 경영평가를 나타내려면? SELECT BRNCH_NO, BRNCH_NM, BRNCH_NUM, BRNCH_PERF FROM BRNCH_INFO WHERE BRNCH_NUM >= 10 AND BRNCH_PERF = 'C'; 2. BRNCH_INFO 테이블을 사용하여 직원 수가 10명 이상이고..
WHERE 조건절에 대해 알아보기 숫자 및 문자/날짜형 데이터 필터링 테이블명 다음에 WHERE를 적고 조건을 기재하면 됨! 숫자형 데이터 조건 주기 SELECT 열 이름1, 열 이름2 FROM 테이블명 WHERE 비교할 열 이름=숫자; 문자/날짜형 데이터 조건 주기 SELECT 열 이름1, 열 이름2 FROM 테이블명 WHERE 비교할 열 이름='문자'; 1. 가입금액이 1백만원 이상인 고객들의 고객번호, 계약번호, 가입금액을 추출하려면? SELECT ID, CNRT_NO, CNRT_AMT FROM INS_INFO WHERE CNRT_AMT >= 1000000; 2. 상품명이 '다이렉트자동차보험'인 고객들의 고객번호, 계약일, 상품명을 추출하고 고객번호는 오름차순으로 정렬하려면? SELECT ID, C..
SELECT문에서 많이 사용되는 키워드 DISTINCT 키워드 DISTINCT 뒤에 지정한 열이 한 개일 경우 SELECT DISTINCT 열 이름 FROM 테이블명; 열 이름 앞에 DISTINCT를 적으면 값의 중복 없이 출력됨 DISTINCT 뒤에 지정한 열이 여러 개일 경우 SELECT DISTINCT 열 이름1, 열 이름2 FROM 테이블명; 1. EMP 테이블에 어던 직급들이 포함되어 있는지 확인하려면? SELECT DISTINCT POSITION FROM EMP; 2. EMP 테이블에서 직급에 따라 어떤 인사고과를 받았는지 확인하려면? SELECT DISTINCT POSITION, GRADE FROM EMP; 1. DISTINCT 키워드의 반대는 ALL 키워드이다! => DISTINCT 키워드..
데이터 가져오기 지정한 열 가져오기 지정한 열이 한 개일 경우 SELECT 열 이름 FROM 테이블명; 지정한 열이 두 개 이상일 경우 (콤마를 사용하면 열 이름을 여러 개 나열할 수 있다) SELECT 열 이름1, 열 이름2, 열 이름3 FROM 테이블명; 열 이름에는 출력하고 싶은 열 이름을 넣어주고 테이블명에는 참조를 원하는 테이블을 넣어주면 된다! 1. CLERK 테이블에서 사번을 출력하려면? SELECT ID FROM CLERK; 2. CLERK 테이블에서 사번, 이름, 생년월일을 출력하려면? SELECT ID, STAFF_NM, BIRTH_DT FROM CLERK; 1. SQL은 소문자와 대문자를 구분하지 않는다 => SELECT를 select라고 입력해도 결과값은 차이가 X (보기 쉽게하기 ..
데이터베이스란? 데이터베이스(Database)의 정의 DB란 여러 사람에게 공유되어 사용될 목적을 가지고, 구조적인 방식으로 관리되는 데이터의 집합을 이야기한다. 데이터베이스의 체계적인 관리는 데이터베이스 관리 시스템 (DBMS)을 통해 이루어진다. DBMS는 데이터를 정리하고 보관하기 위한 용도로 사용된다 => 이를 위해 데이터 추가, 변경, 삭제, 검색 등의 기능을 수행함 (대표적인 DBMS는 Oracle, MySQL, MsSQL, Teradata, SyBase 등이 있다) 데이터베이스 관리 시스템(DBMS)의 특성 DBMS는 실시간 접근성, 계속적인 변화, 동시 공용, 내용에 의한 참조 등의 특성을 지니고 있다 1. 실시간 접근성(Real-time-processing) : 컴퓨터가 접근할 수 있는 ..
알게 모르게 cors 에러를 처리하기 위해 Express.js에서 미들웨어를 사용해왔는데문득 이게 정확히 뭔지 궁금증이 생겼습니다.. CORS는 Cross-Origin Resource Sharing의 약자로, 다른 출처 리소스 공유에 대한 허용/비허용 정책이다=> 이 정책은 브라우저에서 실행되는 웹 애플리케이션이 다른 출처(Origin)로부터 리소스에 접근할 때 적용됨 브라우저는 기본적으로 Same-Origin Policy를 따르며, 이는 스크립트나 스타일 등의 리소스 요청이동일한 출처에서 온 것이어야 한다는 정책이다. (동일한 출처(Origin)란 프로토콜, 호스트, 포트가 동일한 것을 의미) https://www.naver.com:3000/ 과 같은 URL이 있다면https가 프로토콜www.nave..
session 로그인만 해오던 내가 JWT를..? 바로 시작하겠습니다~ JWT는 JSON Web Tokens 의 줄인말로 웹에서 정보를 안전하게 전송하기 위한 표준 방식 중 하나이다 JSON 객체를 사용하여 정보를 암호화된 문자열로 표현하며 JWT는 토큰 자체가 정보를 포함하고 있어 별도의 저장 공간이 필요 없다! => 서버와 클라이언트 간의 상태를 유지하지 않음 하지만, 세션/쿠키 방식에 비해 JWT 토큰의 길이가 길기 때문에 토큰 발급 및 검증 요청이 많아질수록 서버에서 자원 낭비가 발생한다는 단점이 있다 JWT는 Header, Payload, Signature 세 가지 부분으로 구성되어 있다 Header는 토큰의 유형과 토큰을 서명하는 알고리즘을 지정하는 두 가지 부분으로 이루어져있다 Paylo..
그동안 MySQL을 이용해 개발할 때 Sequelize를 사용했었는데이번에 진행중인 Node.js 프로젝트에서 TypeORM을 처음 사용해봐서 공부를 해보겠습니다.. 우선 ORM이 뭔지부터 알아봐야하는데 ORM이란 Object-Relational Mapping의 약자로, 객체와 관계형 데이터베이스 간의 매핑을 제공하는 기술이다 (개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터베이스를 다룰 수 있게 도와줌) 그럼 관계형 데이터베이스는 또 뭐냐,,,? 관계형 데이터베이스는 데이터를 테이블 형식으로 저장하고, 테이블 간의 관계를 이용하여 데이터를 조직화하는데이터베이스 시스템이다.=> 이러한 데이터베이스는 관계형 모델에 기반하고 있으며, 데이터를 행과 열의 형태로 표현하는 테이블을 사용함! 이런 관계형 ..