SQL 10

[SQL/2과목] Top-N 쿼리

이번에는 Top-N 쿼리를 다뤄보겠다. 12시간 뒤가 시험이다... 이제야 이걸 정리하다니 😢Top-N 쿼리 특정 기준으로 정렬했을 때, 상위 N개의 행만 가져오는 쿼리다. 벤더마다 차이가 있어 이를 구분해야된다!!ORACLE오라클에서는 전통적으로 ROWNUM이라는 의사컬럼을 사용하거나, 최신 표준인 FETCH 구문을 사용한다.ROWNUM을 사용한 방식 ROWNUM은 SELECT된 결과 행에 순서대로 붙는 임시 번호표이다. 근데, 이 번호는 ORDER BY가 실행 전에 부여되기때문에, 반드시 인라인 뷰를 사용해 정렬을 먼저 수행해야된다!-- 인라인 뷰 사용했을 때SELECT *FROM ( SELECT emp_name, salary FROM employees ORDER BY salary ..

개발/sqld 2025.08.22

[SQL/2과목] 함수(2) - 다중행 함수(그룹함수, 윈도우함수)

이번 포스팅은 함수의 두번째 포스팅!! 다중행 함수 내용이다. 다중행 함수 다중행함수란 여러개의 행을 입력받아 단 하나의 결과값을 반환하는 함수이다. 다중행 함수는 크게 그룹함수, 윈도우함수로 나뉜다. 이를 봐보자.그룹함수그룹함수는 여러행을 하나의 그룹으로 묶어, 그 그룹에 대한 하나의 요약된 결과값을 반환하는 함수이다. 집계 함수사용 목적COUNT(*)NULL 값을 포함한 행의 수를 출력한다.COUNT(표현식)표현식의 값이 NULL인 것을 제외한 행의 수를 출력한다.SUM([DISTINCT | ALL] 표현식)표현식의 NULL 값을 제외한 합계를 출력한다.AVG([DISTINCT | ALL] 표현식)표현식의 NULL 값을 제외한 평균을 출력한다.MAX([DISTINCT | ALL] 표현식)표현식의 최..

개발/sqld 2025.08.22

[SQL/2과목] 조인이란?

2과목 1장의 마지막 챕터, 조인에 대해 정리하고 이제 SQL 심화로 넘어가겠따. 조인이란 뭘까? 어려우니 잘 살펴보도록 하자조인 조인이란, 두 개 이상의 테이블에 나뉘어 저장된 데이터를 공통된 값을 기준으로 합쳐서 마치 하나의 테이블로 보여주는 것이다! 노랭이책에서도 나뉘어져있다시피, 일반조인과 표준 조인이 있다.일반조인 : 과거부터 사용하던 방식으로, WHERE절에 조인 조건을 작성한다.표준조인 : 현재 표준으로 권장되는 방식으로, FROM 절에 JOIN 키워드를 명시적으로 사용한다.우선 조인이 너무너무 많아서 간단하게 분류를 해보겠다. 조인은 세가지 분류로 나눌 수 있다. 문법일반조인 : WHERE절 사용표준조인 : FROM절에 JOIN을 명시하여 ON절과 함께 쓴다연산자등가조인(EQUI JOIN)..

개발/sqld 2025.08.21

[SQL/2과목] SELECT문과 구구절절...

2과목 1장에 대해서 이어서 포스팅 해보겠다. 이번 주제는 select문과 내부 절들.. 구구절절... 포스팅해보겠다. SELECT 문SELECT문 전 포스팅에서 언급했던것처럼, SELECT문은 데이터베이스 내에 들어있는 데이터를 조회하거나 검색하기 위한 명령어이다. SELECT문은 6개의 절로 구성되어있다.SELECT 컬럼명 | 함수FROM 테이블명WHERE 조건식GROUP BY 컬럼명HAVING 그룹조건식ORDER BY 컬럼명 [ASC|DESC]; 각 절은 위에같은 순서대로 작성해야된다! GROUP BY랑 HAVING은 바뀔 수는 있긴한데 위의 순서로 쓰는게 일반적이다. 근데 구문을 읽을때, 즉 실행할때는 이 순서로 읽지 않는다!FROM -> WHERE -> GROUP BY -> HAVING -> ..

개발/sqld 2025.08.17

[SQL/2과목] 관계형 데이터베이스 개요

이제 2과목에 대한 포스팅을 시작해보겠다 !! 2과목의 첫 챕터는 관계형 데이터 베이스의 개요로 시작한다. 우린 지금까지 데이터베이스에 대해서 공부했는데, 그럼 관계형데이터베이스는 뭘까?데이터베이스(Database)와 관계형데이터베이스(Relational Database) 데이터베이스(DB)는 체계적으로 구조화된 데이터의 집합이다. 단순하게 생각하면 계좌 거래내역, 책 목록 등도 데이터를 구조화한 것이기 때문에 데이터베이스이다! 관계형 데이터베이스(RDB)란, 데이터를 행과 열로 이루어진 테이블 형태로 저장하고 이 테이블들을 관계를 통해 데이터를 연결하고 관리하는 것이다! 우리가 현재 배우고 있는 이런 테이블, 관계 이런것들이 RDB인것이다! 관계형 데이터베이스는 릴레이션에 데이터를 저장하고 관리하며 집..

개발/sqld 2025.08.16

[SQL/1과목] 함수종속성이란?

전에 정규화에 대해 알아보았는데, 그럼에도 sqld 노랭이 책을 풀기에는 너무 모르는 것이 많았다.. 릴레이션에서 후보키를 찾는 문제는 도통 풀 수 없어, 함수 종속성에 대해 더 알아보려고 한다.함수 종속성이란? 릴레이션(테이블)에서 어떤 속성 집합 X의 값이 결정되면, 다른 속성 집합 Y의 값이 반드시 하나로 정해지는 관계를 말한다.X -> Y 와 같은 형태로 표현되며, 여기서 X는 결정자이고 Y는 종속자이다.이 뜻은, X에 따라 Y값이 정해진다는 것으로 X값이 같으면 무조건 Y값도 같다! 함수 종속성 종류 1. 완전 함수 종속복합키 전체가 종속자를 결정하는 것이다. 여기서 포인트는 전체!! 이다. 예시로 (학번, 강좌코드) -> 성적 인 종속관계가 있다고 하자. 학번과 강좌코드로는 성적을 알아낼 수 ..

개발/sqld 2025.08.12

[SQL/1과목] 식별자(Identifiers)

저번 포스팅에서, 식별자란 것이 언급되었다. 이번 포스팅에선 식별자에 대해 알아볼 예정이다. 이때 참고할 점! 내가 블로그 포스팅을 위해 많은 티스토리 자료들을 살펴보았는데, 대다수의 포스팅이 식별자의 정의 및 특징 이라곤 되어있지만 주식별자의 정의와 특징을 설명하고있는 것을 발견하였다. 그래서 이유 또한 찾아보니, 대부분 데이터 모델링 실무에서 식별자 = 주식별자로 쓰는 경우가 많아서, 일반적인 설명이 주식별자 중심으로 되어 있는 것이었다!! SQLD 시험에서는 “식별자의 특징”을 물으면 주식별자의 특징과 거의 동일한 내용이 정답이라고 하니 참고해도 좋을거같다 ! 식별자와 주식별자란? 엔티티 내 각 인스턴스를 유일하게 구분하기 위해 선택한 속성 또는 속성들의 집합이다. 또한 주식별자란 하나의 엔티티에 ..

개발/sqld 2025.07.31

[SQL/1과목] 엔터티(Entity)란? + 속성/관계

문제를 푸는데, 엔터티의 분류가 여럿있는 것을 알게 되었다. 나는 엔터티도 분류가 된다는 것도 몰랐기에 오늘은 엔터티에 대해서 알아보겠다. 우선 엔터티의 정의, 특징에 대해 알아보고, 그 뒤에 분류에 대해 자세히 알아보겠다! 추가로 속성 및 관계에 대해도 알아보겠다!엔터티(Entity)엔터티(Entity)란? 엔터티는 “실체” 혹은 “독립체”라는 의미를 가지고 있으며, 업무에서 필요하고 유용한 정보를 저장·관리하기 위한 대상을 말한다. 사람, 장소, 물건, 사건, 개념 등 명사 형태로 표현할 수 있고, 데이터 베이스에선 테이블과 같다!엔터티의 주요 구성 요소는 인스턴스와 속성이다. 여기서 인스턴스는 엔터티에 속하는 실제 데이터 하나하나, 즉 행(Row)을 의미하고 속성은 엔터티를 구성하는 항목(Colum..

개발/sqld 2025.07.22

[SQL/1과목] 스키마(Schema)란?

홍쌤의 1과목 강의를 듣고, 노랭이 책을 푸는데 "스키마"라는 개념은 처음 보는 것 같아 따로 알아보았다.스키마란? 스키마는 데이터베이스에 저장될 데이터의 구조, 타입, 관계, 제약조건 등을 논리적으로 정의한 것으로 데이터베이스에서 데이터 구조를 정의한 설계도이다. 즉, 실제 데이터가 아니며어떤 테이블이 존재하는지각 테이블의 컬럼/속성데이터 타입제약조건(PK, FK, UNIQUE 등)를 포함한다!스키마는, 사용자의 관점에 따라 세가지 단계로 구분하게 된다. 3단계 스키마 구조 1. 외부 스키마외부 스키마는 사용자 맞춤형 뷰(view)이며, 개별 사용자나 응용 프로그램이 보는 데이터의 논리적 구조이다. 사용자 맞춤형이기에, 사용자마다 다르게 정의가 가능하다. 그러기에 한 데이터 베이스에 여러개의 외부 스키..

개발/sqld 2025.07.18

[SQL/1과목] 데이터 모델링 기본 개념

SQL과 SQLD란 무엇일까SQL이란?SQL은 Structured Query Language의 약자로, 관계형 데이터베이스에서 데이터를 관리하고 처리하는 데 사용되는 표준 언어이다. 즉, SQL을 사용하면 데이터베이스에 저장된 정보를 검색, 삽입, 수정, 삭제하는 등의 작업을 수행할 수 있다. 그럼 SQLD란?SQLD (SQL Developer)는 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 응용 소프트웨어를 개발하고 데이터를 조작하고 추출하는 데 필요한 SQL을 정확하고 최적으로 작성할 수 있는 개발자를 뜻하고, SQLD자격증은 이를 증빙한다.나는 이 SQLD 자격증을 따보려한다 ! 제대로 된 공부 시작 전, 기초를 잠깐 정리해보자. 이 영상의 내용을 정리하였다!https://www.youtu..

개발/sqld 2025.07.16