SQL/SQL

SQL 조회 DML 기본 명령어 알아보기

JasonCloud 2023. 3. 12. 14:52
반응형

SELECT 

SELECT 가져올필드
FROM 해당 테이블
WHERE 조건

list 테이블에서 Name 이 TOM 인 사람의 모든 필드 가져오기

SELECT *
FROM list
WHERE Name = 'TOM';

중복제거

SELECT DISTINCT Name
FROM Reservation;

LIKE 문

LIKE문 중간에 'o' 가 들어가는 모든 항목출력

SELECT *
FROM list
WHERE Name LIKE '%o%'

/// 아무문자 중간에 o 뒤에 2문자가 붙어있는 경우만 출력
  • SQL문장은 대소문자를 구별하지 않는다.
  • SQL문장은 한 줄 또는 여러줄에 입력될 수 있다.
  • 일반적으로는 키워드는 대문자로 입력한다. 다른 모든 단어, 즉 테이블 이름, 열 이름은 소문자로 입력한다. (권장)
  • 가장 최근의 명령어 한개가 SQL buffer에 저장된다.
  • SQL문 마지막 절의 끝에 ; 를 기술하여 명령의 끝을 표시한다.
-- empno와 ename 은 각각 사번과 성명이라는 컬럼 별칭(alias)으로 만들어 출력
-- alias를 사용할 때 as라는 키워드를 사용해도 되고, 생략 할 수도 있다.
SQL> SELECT empno 사번, ename 성명
      FROM  emp
     WHERE  deptno = 10

      사번      성명
---------- ---------------
 7782      CLARK
 7839      KING
 7934      MILLER

WHERE절에 사용될 수 있는 SELECT연산자

-- 사번이 7900, 7934번인 사원의 사번과 성명 출력
SQL> SELECT empno, ename
     FROM  emp
     WHERE empno IN (7900, 7934) ;

    EMPNO    ENAME
 --------- -------------
    7934      MILLER
    7900      JAMES

LIKE 연산자

  • 검색 STRING 값에 대한 와일드카드 검색을 위해서 LIKE연산자를 사용
  • % : 여러 개의 문자열을 나타내는 와일드카드
  • _ : 단 하나의 문자를 나타내는 와일드 카드
  • ESCAPE : 와일드카드 문자를 일반문자처럼 사용하고 싶은 경우에 사용
WHERE name LIKE '%a\\_y%' ESCAPE'\\'
  • LIKE연산자는 대소문자를 구분한다
  • UPPER() 함수를 이용해 대소문자 구분없이 출력할 수 있다. (인덱스 성능문제 발생, 함수기반 인덱스 사용)

LIKE 연산자 구분

ORDER BY

ORDER BY 절은 데이터의 정렬을 위해 사용 (ASC [오름차순] , DESC[내림차순])

테이블 예명 (Alias)

  • 테이블 alias로 column을 단순, 명확하게 할 수 있다.
  • 현재의 SELECT문장에 대해서만 유효하다.
  • 테이블 Alias는 길이가 30자까지 가능
  • FROM절에 테이블 Alias설정 시 해당테이블 Alias는 SELECT문장에서 테이블 이름 대신 사용한다.
-- 사원수가 3명이 넘는 부서의 부서명과 사원수 조회
SQL> SELECT a.dname, b.cnt
     FROM dept a, (SELECT deptno, COUNT(empno) cnt 
                   FROM emp 
                   GROUP BY deptno) b
     WHERE a.deptno = b.deptno
       AND b.cnt > 3     

DNAME             CNT
----------------- ----------
RESEARCH          5
SALES             6
반응형

'SQL > SQL' 카테고리의 다른 글

SELECT 기본문법  (0) 2020.12.20