SQL - DML의 SELECT 사용법 - 23.11.16

songmin jeon·2023년 11월 16일
0

SQL SELECT 실행순서


연산자

1.1 *(아스타리스크)와 DISTINCT(중복제거), AS(별칭)

1.1.1. *(아스타리스크) : 모든 컬럼을 불러온다.

    SELECT	*
    FROM	테이블명
    WHERE	조건 ;
  • *(아스타리스크) 문제 풀이
  1. 직원 테이블의 모든컬럼 정보를 출력해주세요.
    SELECT *
    FROM 직원;
  1. 직원주소 테이블에서 모든 컬럼 정보를 출력해주세요.
    SELECT *
    FROM 직원주소;

1.1.2. DISTINCT : 출력할 컬럼 정보에서 중복 값을 없애주는 키워드

    SELECT	DISTINCT 컬럼명
    FROM 	테이블명
    WHERE	조건

  • DISTINCT 문제 풀이
  1. 직원연락처 테이블을 로 모든 컬럼 정보를 출력해주세요
    SELECT

    FROM 직원연락처 ;
  1. 직원연락처 테이블에서 직원ID 정보만 중복없이 출력해주세요
    SELECT DISTINCT 직원ID
    FROM 직원연락처 ;

1.1.3 AS : 별칭, 통칭

SELECT 부분의 컬럼에 새로운 별칭을 부여함.
SELECT 이외에도 사용가능!

    SELECT 	직원ID AS(default 가능) EMP_ID
    FROM	직원
    WHERE	조건 ;


함수


1.2 NULL (시험예상)

    SELECT	컬럼
    FROM	테이블명
    WHERE	조건 IS NULL (NULL 값 출력);
    WHERE	조건 IS NOT NULL (NULL이 아닌 값 출력);

실습문제
--1. 직원 테이블에서 나이가 NULL이 아닌 정보만 모두 출력하세요
SELECT  *
FROM    직원
WHERE   나이 IS NOT NULL;

--2. 직원 중에 입사일시가 정해지지 않은 직원만 출력하세요.
SELECT  *
FROM      직원
WHERE   입사일시 IS NULL;

1.3.1 NVL (data1, data2)

예) NVL( 컬럼명(NULL이면 대체 값으로 변환), 대체값 )

1.3.2 NVL2 (data1, data2, data3)


1.4 DECODE (시험예상)

DECODE 함수는 프로그래밍에서의 if else 와 비슷한 기능을 수행한다. 간단한 사용방법은 아래와 같다.

예1) DECODE( 컬럼, 조건1, 결과1(TRUE), 결과2(FALSE) )
예2) DECODE( 컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3.......... )

실습문제 (NULL, NVL, DECODE)

1. 직원 테이블에서 나이가 NULL이 아닌 정보만 모두 출력하세요
  SELECT  *
  FROM    직원
  WHERE   나이 IS NOT NULL;

2. 직원 중에 입사일시가 정해지지 않은 직원만 출력하세요.
  SELECT  *
  FROM      직원
  WHERE   입사일시 IS NULL;

3.직원 테이블에서 정보를 출력하되 나이가 정해지지 않은 대상은 일단 20으로 출력되로록 해주세요 (NVL사용)
  SELECT  직원ID, 패스워드,이름,성별,NVL(나이,  20)
  FROM    직원;

4.직원 테이블에서 성별이 '남'이면 '남성입니다'를 출력, 그렇지 않으면 '여성입니다.'를 츨력해주세요 (DECODE 활용)
  SELECT  직원ID, 패스워드,이름, DECODE(성별,'남', '남성입니다.', '여성입니다.') AS 성별확인
  FROM    직원;

2. 자료형 함수 (시험예상)

자료형은 총 3가지! 
문자형, 숫자형, 날짜형

(시험 밑줄 + 글자색)

  • 갈색으로 표기된 함수는 굉장히 중요함. (위 이미지 참조)

2.1 문자형 함수

LOWER : 모든 영문자 소문자로 변경
UPPER : 모든 영문자 대문자로 변경
SUBSTR : SUBSTR(str, x, y) : str 문자 데이터를 x자리 ~ y자리 까지 절단
TRIM(str) : str의 문자 데이터에서 양 끝 공백 제거
REPLACE : 예시1) REPLACE(주민등록번호,'-','') - 제거함

실습문제 (SUBSTR, REPLACE)

1.직원 테이블에서 직원ID, 주민등록번호를 출력하고, 주민등록번호 
6자리만 이용해서 생년월일 이라는 컬럼을 만들어 AS 출력해주세요
  SELECT  직원ID, 주민등록번호, SUBSTR(주민등록번호, 1, 6) AS 생년월일
  FROM    직원;


2. 직원 연락처 테이블에서 직원들의 연락처를 '-' 모두 제외하고 출력해주세요.
  SELECT  직원ID, 구분코드, 연락처, REPLACE(연락처,'-','') AS 연락처번호만
  FROM    직원연락처;

2.2 숫자형 함수

MOD(int1 , int2) : int1을 int2로 나눈 나머지를 숫자형으로 출력

ROUND(int1, int2) : int1을 반올림하여 소수점 int2자리까지 출력

TRUNC(int1,int2) : int1을 소수점 int2자리까지 잘러서 버린후 출력


2.3 날짜형 함수

(중요) SYSDATE : 입력 시 현재 시간을 날짜형으로 출력

※ 보통 컬럼은 데이터가 저장된 시간을 많이 사용하기 때문에
SYSDATE는 꼭 기억하기!

LAST_DAY(date) : date의 날짜형 값의 해당 월 마지막 날짜를 출력
ADD_MONTHS(date , int) : date의 날짜형 값에서 int개월 수만큼 더해서 출력


2.4 형변환 함수

특정 자료형 값으로 변경해주는 함수

업로드중..


관련자료
https://download.blog.naver.com/close/63f67fcfdf85875b7691f0c0f41d6611b8ee10f2d4/Klfhv6OCF1Y4amolY1M8w2NMsnSBHeGoH6iDUQK_QKRLkDRjcoyo_uvArRStDbEI4sTfOxe_1oISz81Q116H9hp6SSqUuSNEpjOsBIibQWI/SELECT.pdf


profile
제가 한 번 해보겠습니다.

0개의 댓글