SQL 기본

jiiiiiiiArchive.·2025년 1월 25일

✏자격증✏

목록 보기
6/7
post-thumbnail

테이블
유저 1명 이상 필수(root 유저 소유 데이터베이스, 테이블 생성)

테이블명 중복X
A가 B 테이블을 만들 수 있는 권한 줬다 -> 소유자가 다른 동일한 테이블명 가능

행 단위 입력, 삭제
값 단위 수정

데이터 무결성

  • 개체 무결성 : 기본키에 널 안됨
  • 참조 무결성 : 기본키값과 동일
  • 도메인 무결성: 속성은 도메인 내 있어야함
  • 널 무결성 : 특정 속성에 널 안됨
  • 고유 무결성: 특정 속성 중복 안됨
  • 키 무결성 : 하나의 테이블에 적어도 하나의 키 존재해야함

WHERE절
연산자
between A and B
ex) between 10 and 20 이게 어떤 쿼리랑 같은지 ? (이상이하 관계)
1. a > 10 and a < 20
2. a > 10 and a <= 20
3. a >= 10 and a < 20
4. a >= 10 and b <= 20 O

NULL 체크
1. IS NULL : NULL값인 행 찾기
2. IS NOT NULL
col = null; -> 이런 쿼리는 오류. 안된다.

rownum : 오라클만 됨. 출력 행 개수 제한

연산자 우선순위 : 괄호 - not - 비교연산 - and - or

WHERE절에는 집계함수(SUM, MAX, MIN, AVG, ...)

SELECT * FROM 'emp' WHERE SUM(price) >= 100000

  • where절 집계함수있으면 무조건 오류난다.

함수

함수는 FROM절 제외 모든 절 사용 가능
FROM절은 테이블을 가져오는 절. 다른거 못함(서브쿼리는 가능)

단일행 함수

  • 결과값이 한 행

TRUNC(대상, 보여줄 자리수)
TRUNC(3.14, 1) => 3

올림
CEIL(3.333); => 4

  • TRIM : 양쪽 공백 제거
    TRIM(' abc def '); => abc def
    LTRIM : 좌측 공백 제거, 연속중복된 문자 제거
    RTRIM

  • CONCAT : 문자열 합치기
    CONCAT('ab','cd') => abcd

  • 합성연산자 ||
    SELECT 'ab' || 'cd' => 'abcd'

NULL 관련 함수

  • 오라클
  1. NVL : NULL이면 대체해줄 값 정해주는 함수
    NVL(col, 99); => col 중에서 NULL 값인 곳을 99로 변경
  2. ISNULL : NULL이면 대체해줄 값 정해주는 함수
    ISNULL(col, 99); => 동일
    구분하기) WHERE col IS NULL
  3. 공통
    NULLIF(컬럼1, 컬럼2) : 두 컬럼의 값이 같으면 NULL로 채워, 다르면 '컬럼1'로 채워

COALESCE(1 + NULL, NULL, 1, NULL, 3, ...)
NULL이 아닌 최초 식 반환 => 1
다 NULL => NULL

CASE 함수

CASE
WHEN 컬럼 조건식 THEN '반환값'
ELSE 그 외 경우 대체값(기본값 NULL)
END

CASE
컬럼 WHEN 조건식 THEN '반환값'
ELSE 그 외 경우 대체값(기본값 NULL)
END

집계함수

SELECT DISTINCT : 중복 값은 하나의 값으로
SELECT ALL(생략가능) col1, col2

COUNT(*) : NULL 체크 됨
COUNT(컬럼) : NULL 체크 안됨

ORDER BY절
NULL

  • 오라클 : 가장 큰 값
  • SQL 서버 : 가장 작은 값

SELECT절
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
순서는 에러를 점검하는 순서 => ORDER BY 절에 SELECT에서 사용하지 않은 컬럼을 쓸 수 있다.

GROUP BY절에 쓰인 컬럼만 SELECT에서 사용 가능
SELECT job, sal
FROM emp
GROUP BYU job;

profile
이것저것 다 적는 기록장📚

0개의 댓글