SQL 문 STUDY (20) 썸네일형 리스트형 SQL 서브쿼리 - (IN/ALL/ANY/EXISTS/NOT EXISTS) 개발자 11번째 이야기 Subquery - subquery는 다른 SELECT 문의 절에 포함되는 SELECT - 괄호로 감싸서 사용하며 단일행 비교 연산자의 경우 서브쿼리의 결과가 반드시 1건 이하여야 함. - 복수행 비교 연산자의 경우 건수 상관없음. Subquery 그룹 함수 서브 쿼리가 사용 가능한 곳 ● select ● from ● where ● having ● order by ● insert의 values ● update의 set 여러 행의 Subquery IN ● 리스트의 임의 멤버와 같음 ANY ● =, !=, >, ALL은 최대값보다 큼을 의미합니다. SQL 함수 - 그룹 함수 개발공부 8번째 이야기 그룹 함수 AVG() : N의 평균값을 구하는 함수. NULL 값은 무시함. MAX() : 최대값. NULL 값은 무시함. MIN() : 최소값. NULL 값은 무시함. SUM() : 합계. NULL 값은 무시함. + AVG() : 평균값을 구하는 함수에다가 GROUP BY 절을 더하면 그룹별로 평균값을 낼 수 있음. 다른 그룹 함수도 마찬가지로 GROUP BY 사용이 가능하며 DISTINCT보다는 GROUP BY 효율성이 좋음. COUNT() : 행 개수를 구하는 함수. null 값은 무시함. COUNT(DISTINCT) : 중복값을 제외하고 출력하는 함수. AVG(NVL(값,0)) : NVL 함수를 넣으면 그룹 함수에 NULL 값이 포함되도록 함. STDDEV() : 표준편차 .. SQL 함수 - NVL / NVL2 / NULLIF / COALESCE / 조건부 표현식/ CASE 개발공부 8번째 이야기 NVL() - NULL 처리 함수. 데이터가 null 인 경우 임의설정값으로 처리함. 사용 방법 : NVL(값, 지정값) NVL2() - 첫번째 표현식을 검사 - 첫번째 표현식이 null이 아니면 NVL2 함수는 두번째 표현식 반환 - 첫번째 표현식이 null이면 세번째 표현식이 반환 NULLIF() - 두 표현식을 비교 - 표현식1과 표현식2가 같으면 null 반환, 다르면 표현식 1을 반환. - 사용방법 : NULLIF (표현식1, 표현식2) COALESCE() - 리스트에서 NULL이 아닌 첫번째 표현식을 반환. - 모든 표현식이 NULL인 경우 COALESCE 함수는 NULL을 반환한다. 조건부 표현식 CASE ● IF-THEN-ELSE 논리 사용 ● 사용 방법 : CASE.. SQL 함수 - TO_CHAR/TO_DATE/중첩 함수 개발공부 7번째 이야기 변환 함수 TO_CHAR() : 날짜, 숫자 등의 값을 문자열로 변환하는 함수 YYYY - 숫자로 된 전체 연도 YEAR - 영어 철자로 표기된 연도 MM - 월의 2자리 값 MONTH - 전체 월 이름 MON - 월의 3자 약어 DY - 3문자로 된 요일 약어 DAY - 요일의 전체 이름 DD - 숫자 형식의 월간 일 AM 또는 PM - 자오선 표시 A.M. 또는 P.M. - 마침표가 있는 자오선 표시 HH 또는 HH12 또는 HH24 - 하루 시간 또는 반일 시간(1-12) 또는 전일 시간(0-23) MI - 분(0-59) SS - 초(0-59) TIMESTAMP 타입 FF - 밀리세컨드 위와 같이 변환이 가능함. 9 - 숫자로 나타냄 0 - 0이 표시되도록 강제 적용 $ - .. SQL 함수 - 대소문자 변환, 문자 조작, 숫자 함수 개발공부 6번째 이야기 대소문자 변환 - LOWER() : 데이터를 소문자로 변경 - UPPER() : 데이터를 대문자로 변경 - INITCAP() : 데이터를 첫번째 문자만 대문자로 변환 문자조작 함수 - CONCAT() : 여러 문자열을 연결하는 함수임. 같은 값을 출력할 수 있는 것 중 ||으로도 출력 가능함. - SUBSTR() : 지정된 길이의 문자열을 추출함. 위와 같은 식은 1부터 3까지 출력한 것. - LENGTH() : 문자열의 길이를 숫자로 출력함. - INSTR() : 이름이 지정된 문자의 숫자 위치를 출력함. - LPAD() : 길이가 n이 되도록 왼쪽부터 문자식으로 채운 표현식 반환. - RPAD() : 길이가 n이 되도록 오쪽부터 문자식으로 채운 표현식 반환. - REPLAYCE.. SQL 치환변수 / DEFINE / VERIFY / 바인드변수 개발공부 5번째 이야기 치환변수 - 단일 앰퍼샌드(&) 및 이중 앰퍼샌드(&&) 치환을 사용해 임시저장 - 쿼리문이 실행되기 전에 변환시키는 것임 salary 앞에 (&)치환변수를 사용한 경우 사용자가 직접 값을 입력할 수 있게 나옴. 나는 24000을 입력해 그 값이 나오도록 함. 문자나 날짜 값을 입력할 경우 작은 따옴표로 묶어야 함 ex) 문자 : '&job_id' , '&date' where 절 뿐 아니라 열 이름, 표현식 및 텍스트도 지정할 수 있음 column_name은 salary로 condition은 salary>15000으로 order_column은 last_name을 입력함. 즉 쿼리문이 실행되기 전에 각 문자들을 미리 치환해준 것(= 바꿔줬다) -> 즉, column_name의 경우 .. SQL - NULL/ ORDER BY 개발공부 4번째 이야기 NULL 조건 - IS NULL 연산자로 NULL 테스트 가능 - 데이터를 입력한 후 null 값이 들어간게 있는지 확인할 때 주로 사용 null값이 아닌 경우를 찾고 싶으면 반대로 IS NO NULL 사용하면 됨. ORDER BY - 검색하는 데이터의 정렬이 필요할 때 사용 - SELECT 문의 맨 마지막에 위치하는 것이 특징 - ASC는 오름차순과 기본값이며 생략 가능, DESC는 내림차순을 의미합니다. ORDER BY 뒤에 숫자를 넣으면 열 숫자 위치로 값을 정렬할 수 있음 ORDER BY로 여러 열을 기준으로 정렬 가능 hire_date는 오름차순으로 정렬한 상태에서 salarty를 기준으로 내림차순으로 정렬한 쿼리 SQL문 WHERE/문자열 및 날짜/비교 연산자/(%,/)/IN절/BETWEEN...AND 개발 공부 3번째 이야기 WHERE 문 단일 조건 - 특정 조건에 부합하는 데이터만 조회하고 싶을 때 사용하는 SQL 구문 위의 경우 employee_id, job_id, salary를 선택후 job_id가 IT_PROG인 조건만 출력함. (숫자인 경우에는 따옴표 사용안해도 됨) 연봉이 2400인 데이터를 불러옴. WHERE 문 복수 조건 여러 조건을 모두 충족해야 하는 경우 AND 절 사용 여러 조건 중 하나만 충족해도 되는 경우 OR 절 사용 만약 job id가 IT_PROG가 아니면서 연봉이 2500이상인 경우를 출력하고 싶다면 컬럼 뒤에 ! 붙여주면 됨 문자열 및 날짜 - 문자열 및 날짜 값은 작은 따옴표로 묶음 - 문자 값은 대소문자를 구분하며 날짜값은 형식 구분 - 기본 날짜 형식은 DD-MO.. SQL문 alias/연결 연산자/리터럴 문자열/대체인용연산자/중복행 및 중복제거/테이블 구조표시 개발자가 되가는 2번째 이야기 alias문 → 열 머리글의 이름을 변경할 수 있음. → 계산에서 유용함 → 열 이름 바로 뒤에 나옴 → 공백이나 특수문자 포함, 혹은 대소문자를 구분하는 경우 큰 따옴표가 필요함. 사용 방법 : SELECT [컬럼명] AS [별칭] FROM 테이블 as를 사용하지 않았다면 컬럼명이 SALARY*100으로 나왔겠지만 AS를 사용함으로써 SALARY로 출력되었음. 위의 예시처럼 AS를 생략하고 바로 뒤에 붙여줘도 컬럼명이 바뀜. (가독성이 떨어질 수 있으니 써주는 게 좋긴함!) 연결 연산자 → 기호 : || → 각 열의 결과를 연결해 하나의 열로 결과를 표현할 수 있음 → 문자열을 추가해 새로운 데이터를 표현하는 열을 만들 수 있음 ||기호를 사용하여 manager_id와 e.. SQL _ SELECT/FROM/연산자 개발 공부 첫번째 이야기 SQL 의 의미 → 관계형 데이터베이스 관리 시스템에서 이해하는 유효한 명령 구문이 끝날 때마다 ; 를 찍어줘야 실행됨. SELECT문 - SELECT * FROM table 명; ( 모든 열을 불러옴) - SELECT department_id FROM employees; (employees 테이블 중 department_id만 불러옴, 즉 특정 열 불러오는 것) - SELECT department_id, job_id FROM employees; (employees 테이블 중 department_id, job_id를 불러옴, 여러개 불러오는 것 가능) SELECT 문_연산 + 더하기 - 빼기 * 곱하기 / 나누기 위의 4개를 통해 연산이 가능 위와 같은 형식으로 사용 가능 (단,.. 이전 1 2 다음