'SQL 첫걸음' 공부 -Day 8

윤현묵·2021년 12월 15일
0

MySQL

목록 보기
9/12
post-thumbnail

[학습 DAY - 8]

24강 상관 서브쿼리

  • 서브쿼리의 일종인 '상관 서브쿼리'를 EXISTS 술어로 조합시켜 사용 가능
  • EXSIST는 단지 반환된 행이 있는지 확인해보고 값이 있으면 참, 없으면 거짓을 반환
  • 부모 명령과 자식인 서브쿼리가 특정 고나계를 맺는 것을 상관 서브쿼리라고 부름
  • 부모 명령과 연관되어 처리되기 때문에 서브쿼리 부분만을 따로 떼어내어 실행시킬 수 없음
  • EXISTS
    -. 서브쿼리를 사용해 검색할 때, 데이터가 존재하는지 아닌지 판별하기 위해 사용
    -. 반환된 행이 있는지 확인해보고 값이 있으면 참, 없으면 거짓을 반환
    -. 반대로 NOT EXISTS를 사용하면 반환된 행이 존재하지 않으면 참, 존재하면 거짓을 반환

    • 사용 예시
  • IN
    -. 집합 안의 값이 존재하는지 조사
    -. 열명 IN(집합), 왼쪽에 지정된 값과 같은 값이 집합 안에 존재하면 차을 반환
    -. 값을 여러개 지정할 경우 조건식이 깔끔해짐

    • SELECT * FROM sample551 WHERE no IN(3,5);
  • IN과 NULL
    -. IN에서는 집합 안에 NULL 값이 있어도 무시하지 않음
    -. IN을 사용해도 NULL 값은 비교할 수 없음
    -. NULL 비교 시 IS NULL을 사용해야 함
    -. NOT IN의 경우, 집합 안에 NULL 값이 있으면 왼쪽 값이 집합 안에 포함되어 있지 않아도 참을 반환하지 않음. 그 별과는 불명(UNKNOWN)이 됨

25강 데이터베이스 객체

  • 데이터베이스 객체란?
    -. 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말
    -. 임의의 규칙에 맞게 이름을 붙임 (의미없는 이름을 붙이지 않음)
    (기존 이름이나 예약어와 중복 X, 숫자로 시작 X, 언더스코어(_)이외의 기호 사용 X, 한글 사용 시 더블쿼트로 둘러쌈, 시스템이 허용하는 길이를 초과 X)

  • 스키마
    -. 스키마가 다르면 객체의 이름이 같아도 상관없다.
    -. SQL 명령의 DDL을 이용하여 정의
    -. 이름이 충돌하지 않도록 기능하는 그릇은 네임스페이스라고 부르기도 함

profile
진정성 있는 개발자를 꿈꾼다

0개의 댓글