데이터베이스
-
JOIN - Left Outer Join데이터베이스/SQL 2022. 5. 30. 10:56
HTML 삽입 미리보기할 수 없는 소스 프로그래머스의 JOIN 문제를 풀면서 학습한 Left Outer Join에 정리하고자 합니다. Outer Join에는 Left Outer Join, Right Outer Join, Full Outer Join이 있습니다. 이 글에서는 Left Outer Join(사용법은 Right Outer Join도 같습니다)과 아래의 프로그래머스 문제에 어떻게 적용했는지 정리해보고자 합니다. 여러 테이블을 기준으로 진행이 가능하나 간단하게 설명하고자 두 개의 테이블을 연결시킨다고 가정하겠습니다. 편의상 기준이 되는 테이블을 A, 다른 테이블을 B라고 하겠습니다. Join 테이블 간의 결합을 의미 두개 이상의 테이블 필요 테이블 간에는 FK로 연결되어 있어야 해당 Key를 활용하..
-
COUNT와 그룹핑 - DISTINCT & GROUP BY데이터베이스/SQL 2022. 4. 1. 00:31
HTML 삽입 미리보기할 수 없는 소스 FROM -> CONNECT BY -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 이 순서를 알아야 하는 이유 중의 하나가 별칭을 사용하게 되면 해당 별칭을 재사용할 경우 재사용하는 절이 기존의 절보다 이후에 실행되는 것이어야 에러가 안 생기기 때문입니다. 우선은 참고만 하고 나중에 별칭을 직접 써보면서 다뤄보겠습니다. 이번 문제 정말 흥미로웠고 재밌었습니다! https://programmers.co.kr/learn/courses/30/lessons/59408 "중복 제거하기" 문제 풀어보시는 것을 추천드립니다! ANIMAL_INS 테이..
-
데이터베이스 정규화 (database normalization)데이터베이스 2022. 3. 29. 20:25
HTML 삽입 미리보기할 수 없는 소스 이전에 SQL과 NOSQL 특징 및 장단점에 대해 쓰면서 DB의 존재 의의에 대해 쓴 적이 있습니다. 데이터들의 중복을 없애고 자료를 구조화하여 효율적으로 데이터를 관리하기 위해서이다. DB 정규화를 알아야 하는 이유와 같다고 생각합니다. 과제를 진행하면서 ERD를 진행하면서 데이터베이스에 대한 고민도 많아지고 어떤 기준으로 나눠야 하는 건지 고민하다가 전에 백엔드 엔지니어면 데이터베이스 정규화도 알아야 된다고 들었던 기억이 나서 이렇게 찾아봤습니다. 일반적으로 3NF까지 알면 DB 정규화 작업을 문제 없이 할 수 있다고 하니 우선 3NF까지 학습하고자 합니다. 순서는 아래와 같이 차례대로 정규화 하시면 됩니다. (각각의 정규화는 이전 단계의 정규화를 완료했다고 가..
-
SQL과 NOSQL 특징 및 장단점데이터베이스 2022. 3. 25. 16:07
HTML 삽입 미리보기할 수 없는 소스 1. 스키마 데이터베이스에 저장되는 자료 구조와 제약 조건을 정의한 것 2. DB Database 데이터 저장소 1. DB 존재 의의 데이터들의 중복을 없애고 자료를 구조화하여 효율적으로 데이터를 관리하기 위해서이다. 3. DBMS Database Management System DB를 관리하고 운영하기 위한 소프트웨어(시스템) 기능 데이터 정의, 조작, 제어 기능 4. Query DBMS에 요청하는 것을 Query(쿼리)라고 한다. 그래서 보통 "쿼리를 날린다"라고 표현하기도 한다. 5. RDB Relational Database 관계형 데이터베이스 6. RDBMS Relational Database Management System 관계형 데이터베이스 관리 시스템..
-
프로그래머스 SQL SELECT 정리데이터베이스/SQL 2022. 3. 24. 16:45
HTML 삽입 미리보기할 수 없는 소스 프로젝트하면서 가장 많이 썼던 SQL 구문 중 하나가 SELECT 다. 그렇지만 최근에 SQL에 대한 감각이 떨어져 있기도 하고 기초적인 부분을 다시 보고 있어서 프로그래머스 사이트에서 코딩 테스트 연습 문제를 풀면서 감각을 올리고자 합니다. ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 모든 동물의 아이디와 이름, ..