Today I Learned-9
SQL 시작
- 직전 강의에서 DB개요 및 실습환경 설정 완료
- VMWARE 설치 후, 해당 VM에 SQL Developer 설치
- 데이터베이스, ‘scott’ 생성
- 기본 문법, 연산자 종류 등 학습
데이터 조회하는 방법
- 행 단위 조회
- 열 단위 조회
- 행,열 함께 사용하여 원하는 정보만 뽑아냄
기본 SQL 구문
- SELECT [조회할 열1 이름], [조회할 열2 이름], … , [조회할 열N 이름]
- FROM [조회할 테이블 이름];
- WHERE [조건할 행을 선별하기 위한 조건식];
- 연습 1. 사원번호 7782인 사원정보 조회
SELECT *
FROM EMP
WHERE EMPNO = 7782;
- 연습 2. 사원번호 7499인 사원정보 중 이름, 직책, 부서명만 조회
SELECT ENAME, JOB, DEPTNO
FROM EMP
WHERE EMPNO = 7499;
- ‘텍스트’로도 조회 가능!
단! 홑따옴표 추가, 대소문자 구분!
SELECT ENAME, JOB, DEPTNO
FROM EMP
WHERE EMPNO = 'SMITH;';
중복 제거(SELECT DISTINCT)
- 기본적으로 COLUMN별 중복된 데이터 그대로 출력
SELECT DEPTNO
FROM EMP;
- DISTINCT 추가로 중복 데이터 제거!
SELECT DISTINCT DEPTNO
FROM EMP;
Column명 변경(별칭 지정)
- 식이 들어간 부분 뒤에 ‘AS 별칭’ 입력
AS “별칭” / AS 별칭 / “별칭” 모두 가능
ex.SELECT ENAME AS "사원명"
ex.SELECT SAL "월급"
ORDER BY (출력데이터 정렬)
- 오름차순: ASCENDING: ASC
- 내림차순: DESCEDING: DESC
ORDER BY [칼럼명] ASC
ORDER BY [칼럼명] DESC - Column별 적용 가능
ex. ‘부서번호’ 오름차순 먼저 적용 후, 부서 내 ‘월급’ 내림차순으로 표시
SELECT *
FROM EMP
ORDER BY DEPTNO ASC, SAL DESC;
- ORDER BY 정렬의 경우, 필요한 경우가 아니라면 사용하지 않는게 좋음!!
- 데이터가 많을수록 컴퓨팅자원 소모 큼!!
- WHERE문 사용 권장
AND와 OR
- 복수의 조건식이 있을 때,
식1 AND 식2: 1, 2 모두 만족하는 결과 출력
식1 OR 식2: 1, 2 중 하나라도 만족하면 모두 출력
연산자 종류와 활용
- 산술 연산자: +, -, *, /
- 비교 연산자: >, >=, <, <= (문자, 숫자 모두 적용 가능)
- 등가 비교: = (같다) // !=, <>, ^= (같지 않다)
- 논리 부정: 조건식 내에 ‘NOT’ 기입
- IN 연산자: 동일한 column에 여러 개의 데이터 동시 조회 (NOT 적용 가능)
- BETWEEN: 최소값 A에서 최대값 B까지 비교범위 지정하여 조회
- LIKE: 특정 문자열, 패턴을 조회
와일드카드: (언더바))
- NULL: ‘데이터 값이 존재하지 않는다’는 의미, ‘해당사항 없음’ 또는 ‘확정되지 않은 값’이라는 뜻도.
‘IS NULL’ 또는 ‘IS NOT NULL’ 로 사용
- UNION(집합연산자): SELECT문을 연결(단, column의 개수와 자료형이 같아야 함!)
UNION: 중복이 제거되는 합집합
UNION ALL: 중복 허용
MINUS: SELECT1 UNION SELECT2일 때, 1의 데이터 중 2에 없는 값들만 출력 (차집합)
INTERSECT: 연결된 SELECT문 모두에 존재하는 값들만 출력 (교집합) - 연결 연산자: 복수의 column과 결과값을 하나로 붙여서 출력
Column 사이에
||
입력
- SELECT 명령에 표현식(literal) 사용하여 출력
Q’[표현식]’ 입력
또는
‘ 표현식 ‘ (홑따옴표 블록 안에서, 따옴표 2개(‘‘)는 하나(‘)로 출력됨!)
연습문제(1, 2, 3)
- 복습하면서 다시 코드 써보기!!
- 1번
SELECT NAME || Q'['s ID:]' || ID || Q'[, WEIGHT is ]' || WEIGHT || Q'[kg]' AS "ID AND WEIGHT"
FROM STUDUENT(테이블명);
- 2번
SELECT ENAME || '(' || JOB || '), ' || ENAME || '''' || JOB || '''' AS "NAME AND JOB"
FROM EMP(테이블명);
- 3번
SELECT ENAME || Q'['s Sal is $]' || SAL AS "Name and Sal"
FROM EMP;
기타(팁)
다음 강의 준비
nice!!!