참조 : The Programmer's Guide to SQL

  • '모든 컬럼 가져오기(SELECT * FROM Student;)'의 안 좋은 점.
    • 해당 테이블에 몇 개의 컬럼이 있는 DB가 알아봐야 하는 부과작업 필요해짐.
    • 컬럼들이 어떤 순으로 어떤게 올지 예측할 수 없다.
    • 간단한 테스트 용도 외에는 잘 안써.
  • 예약어Reseved나 SQL 키워드를 테이블 명이나 컬럼 명으로 했을 경우.
    • 오라클은 " "를 사용하여 감싸주며 그 안에는 모두 대분자로 표시해야함.
      • 자동으로 예약어나 키워드를 대문자로 변경하기 때문에...
  • AS 로 별칭 사용하기. SELECT s.name AS StudentName FROM Student AS s
    • FROM 절의 테이블 별칭에서 AS는 생략하는 것이 SQL-99 스팩.
    • 하지만 가독성을 위해서 명시적으로 표기해주는 것이 좋다.
  • 문자열 연결할 때 오라클은 || ' ' || 이것 사용.
    • SELECT name || '은 ' || age || '살 입니다.' FROM Student;
    • 문자열 연결 용도라서 숫자 타입도 자동으로 문자로 변환해줌.
  • 정렬하기
    • ORDER BY 컬럼 ACS/DESC
  • 중복제거
    • SELECT DISTINCT 컬럼명 FROM 테이블;
    • 컬럼 두 개 이상을 지정하면, 두 개를 하나의 묶음으로 생각한 유일한 레코드Record 들을 가져온다.
  • WHERE 절로 조건 주기
    • 조건이 TRUE를 만족하는 레코드만 가져오고 FALSE나 UNKNOWN인 레코드는 무시한다.
    • 날짜 비교하기
      • 'yyyy-mm-dd' 형태의 문자열은 모든 밴더들이 날짜로 변환해준다.
    • AND 나 OR로 여러개의 조건 표시 가능.
    • IN 을 사용하여 특정 컬럼의 값 범위 지정 가능.
  • 패턴 매칭
    • WHERE comments LIKE '%greate%' = 컬럼에 greate가 들어가는 레코드.
    • WHERE UPPER(comments) LIKE '%GREATE%' = 대소문자 구분 없이 greate가 들어가는 레코드.
    • 만약에 값에 %가 포함되어 있는 경우.
      • WHERE CustomerRating LIKE '%50p%%' ESCAPE 'p';
      • 이런식으로 ESCAPE 문자 지정해서 바로 다음 문자 무시하도록 하기.