SELECT 칼럼1, 칼럼2, ...FROM 테이블이름FROM -> WHERE -> ... -> SELECTSELECT 칼럼 FROM 테이블 이므로 테이블이 반드시 필요DUAL 테이블SELECT ABS(-5) FROM DUAL;
: 별명 지정한 뒤 조회
AS 별명SELECT E.FIRST_NAME AS 이름, E.LAST_NAME AS 성 FROM EMPLOYEES E; -- E.FIRST_NAME = EMPLOYEES 테이블의 FIRST_NAME 칼럼
-- 사원 테이블에서 전화번호가 '515'로 시작하는 전화번호의 중복을 제거하고 조회하기 SELECT DISTINCT PHONE_NUMBER FROM EMPLOYEES WHERE PHONE_NUMBER LIKE '515%'; -- 사원들이 근무하는 부서의 갯수 조회 SELECT COUNT(DISTINCT DEPARTMENT_ID) AS 전체부서수 FROM EMPLOYEES;
TO_DATE, TO_TIMESTAMP 함수로 작성IS NULL 또는 IS NOT NULLPK 자동으로 인덱스 추가되어 있음 -> PK로 검색하면 빠른 검색 가능UNIQUE 자동으로 인덱스 추가되어 있음함수 등으로 가공하면 인덱스를 사용할 수 없음SELECT * FROM PRODUCT_TBL ORDER BY CATEGORY ASC, AMOUNT DESC; -- CATEGORY=오름차순, AMOUNT=내림차순 SELECT * FROM PRODUCT_TBL ORDER BY CATEGORY, AMOUNT DESC; -- 오른차순은 생략 가능, CATEGORY는 DESC 아닌거 주의
ASC, 내림차순 정렬은 DESC1,2,3,4 순으로 동작작은 숫자 먼저과거 날짜 먼저--사원 테이블에서 동일한 부서번호를 가진 사원들을 그룹화하여 각 그룹별로 몇명의 사원이 있는지 조회 SELECT DEPARTMENT_ID -- GROUP BY 절에서 지정한 칼럼만 조회 가능 , COUNT(*) FROM EMPLOYEES GROUP BY DEPARTMENT_ID;
WHERE절로 지정 (성능 문제)WHERE EX) 서울 제외한 지역별 사용자 수HAVING EX) 지역별 사용자 수 2명--사원 테이블에서 각 부서별 사원수가 20명 이상인 부서를 조회 -- 조건: 부서별 사원수 >=20 -- 조건에서 사용되는 부서별 사원수는 GROUP BY 절이 필요하므로 HAVING 절로 처리 SELECT DEPARTMENT_ID , COUNT(*) FROM EMPLOYEES GROUP BY DEPARTMENT_ID HAVING COUNT(*) >= 20; -- 사원 테이블에서 각 부서별 사원수를 조회. 단, 부서번호가 없는 사원은 제외 -- 조건: 부서번호 IS NOT NULL -- 조건에서 사용되는 부서번호는 GROUP BY 절이 필요없으므로 WHERE절로 처리 SELECT DEPARTMENT_ID , COUNT(*) FROM EMPLOYEES WHERE DEPARTMENT_ID IS NOT NULL --GROUP BY를 하지 않아도 알 수 있는 조건은 WHERE로 작성 (성능문제) GROUP BY DEPARTMENT_ID;
🟢 구디아카데미후기 IT국비지원 민경태 강사님 수업 5일차! 🟢
오늘은 SELECT문에 대해서 집중적으로 배웠다. SELECT문은 검색 결과를 바로 확인할 수 있어서 재밌었다. 더 어려워지기 전에 열심히 복습해야겠다.