• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 3장 - 쿼리 입문
      2024년 09월 10일
      • 31514
      • 작성자
      • 2024.09.10.:54

      처음 MySQL 서버에 로그인하면 다음과 같이 연결 ID(11)를 알 수 있다.

      연결 ID는 쿼리가 잘못되어 오류가 발생할 경우 유용하게 사용할 수 있다.

      Your MySQL connection id is 11

      쿼리가 DBMS로 전송될 때마다 다음 과정을 거친다.

      1. 이 구문을 실행할 권한이 있는가?
      2. 원하는 데이터에 엑세스할 수 있는 권한이 있는가?
      3. 구문의 문법이 정확한가?

      위 과정을 모두 거치면 쿼리 옵티마이저로 전달되고, 실행 계획을 선택한다.


      SELECT 절에 다음과 같은 항목을 추가할 수 있다.

      select language_id,
      'COMMON' language_usage, -- 숫자 또는 문자열과 같은 리터럴(literal)
      language_id * 3.1415927 lang_pi_value, -- 표현식
      upper(name) language_name -- 내장 함수 호출
      from language;

      그리고 사용자 정의 함수(UDF)를 호출할 수 있다.


      DISTINCT를 사용하면 내부적으로 테이블의 데이터를 정렬하여 중복을 확인한다.

      데이터의 용량이 클 때는 시간이 오래 걸릴 수 있으므로, 먼저 데이터를 이해하는 것이 중요하다.


      from 절은 쿼리에 사용되는 테이블을 명시할 뿐만 아니라, 테이블을 서로 연결하는 수단도 함께 정의한다.

       

      파생 테이블 - 서브 쿼리

      select concat(cust.last_name, ', ', cust.first_name) full_name
      from
        (select first_name, last_name, email
         from customer
         where first_name = 'JESSIE'
        ) cust;

      위 코드에서 서브쿼리의 별칭 cust는 쿼리 기간 동안 메모리에 보관되고 삭제된다.

       

      임시 테이블 - 메모리에 저장된 휘발성 데이터

      create temporary table actors_j
        (actor_id smallint(5),
         first_name varchar(45),
         last_name varchar(45)
        );

      위 임시 테이블은 보통 트랜잭션이 끝날 때 또는 데이터베이스 세션이 닫힐 때 사라진다.

       

      가상 테이블 - 뷰

      create view cust_vw as
        select customer_id, first_name, last_name, active
        from customer;

      뷰는 데이터 딕셔너리에 저장된 쿼리문이다.

      그래서 다음과 같은 코드를 실행하면 쿼리문이 두 번 실행되는 것과 같다.

      select customer_id
      from cust_vw;

      where절에서 and 연산자를 사용하면 모든 조건이 true를 충족해야 결과에 포함된다.

      그러나 or 연산자를 사용할 때는 조건 중 하나만 true여도 결과에 포함된다.

       

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

      9장 - 서브쿼리  (2) 2024.09.20
      8장 - 그룹화와 집계  (0) 2024.09.19
      6장 - 집합 연산자  (0) 2024.09.12
      4장 - 필터링  (0) 2024.09.11
      5장 - 다중 테이블 쿼리  (2) 2024.09.11
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바