LG U+ SW Camp 커리큘럼 내에 ERD를 작성해야하는 일이 있었는데, 구글링 도중 발견한 사이트입니다.Draw.io 나 다른 툴로도 무료로 이용할 수 있는 걸 알지만 dbdiagram.io - Database Relationship Diagrams Design Tool dbdiagram.io 왼쪽에 Table 명과 컬럼, 변수를 선언해주면 해당 코드에 맞는 테이블이 생성된다. 아래에 있는 도구를 이용하거나 Ref 코드를 이용해 Table간의 관계도를 설정할 수 있다. ERD 구성할 때 작성한 DBML Syntax// Use DBML to define your database structure// Docs: https://dbml.dbdiagram.io/docsTable Media { medi..
1 과목 - 데이터 모델링의 이해, 정리 모델링- 비즈니스 프로세스와 데이터 요구 사항을 추상적이고, 구조화 된 형태로 표현하는 과정- 데이터 베이스의 구조와 관계를 정의, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의 모델링의 특징1. 단순화 : 현실 세계를 이해하고, 표현하기 쉽게 핵심 요소에 집중하고, 불필요한 세부 사항을 제거 2. 추상화 : 다양한 현상을 일정한 형식에 맞추어 간략하게 표현하는 과정 3. 명확화 : 의사소통을 원활하게 하기 위해 애매모호함을 최대한 제거하고, 정확하게 현상을 기술하는 과정 데이터 모델링 3가지 관점1. 데이터 관점- 데이터가 어떻게 저장되고, 접근되고, 관리되는지 정의하는 단계 2. 프로세스 관점- 시스템이 어떤 작업을 수행하며, 이러한 작업들이 ..
1. 관계형 데이터베이스 개요 데이터베이스와 DBMS(Database Management System)- 데이터베이스 : 데이터의 집합, 꼭 형식을 갖추지 않아도 엑셀 파일을 모아 둔다면 그것 또한 데이터베이스- DBMS : 데이터를 효과적으로 관리하기 위한 시스템 개인이 파일을 여러 개 묶어서 폴더에 보관하면 데이터를 찾고 관리하는데 많은 비용이 발생 이를 보다 시스템적으로 작동하게 만든 시스템을 DBMS (Oracle, Mysql ...) 관계형 데이터베이스 구성 요소- 계정 : 데이터의 접근 제한을 위한 여러 업무별/시스템별 계정이 존재- 테이블 : DBMS의 DB안에서 데이터가 저장되는 형식- 스키마 : 테이블이 어떠한 구성으로 되어있는지, 어떠한 정보를 가지고 있는지에 대한 기본적인 구조를 정의..
문제를 읽고 종류 별로, 자동차 수 세는 SQL문 까지는 해결을 했는데, 해당 코드에서 옵션 컬럼이 , 로 구분된 키워드 리스트 여서 단순 IN 연산자로는 필터링 되지 않는 것 같다. 구글을 통해 검색해본 결과 MySQL에서는 FIND_IN_SET() 이라는 함수가 존재해서 특정 값을 찾을 수 있는 것 같다.쉼표로 구문된 리스트 안에서 몇 번째 위치하는지 반환해서, 찾으면 1 이상을 반환 하므로 > 0 조건으로 필터링 할 수 있다고 한다.예시)SELECT *FROM your_tableWHERE FIND_IN_SET('통풍시트', seat_option) > 0 OR FIND_IN_SET('열선시트', seat_option) > 0 OR FIND_IN_SET('가죽시트', seat_option) > ..
Entity 엔터티 , Attribute 속성, Instance 인스턴스에 대한 정리 아래와 같이 특정 테이블이 존재할 때, (엔터티)학번이름학과번호1홍길동101↓ 행(인스턴스) 모델링의 개녕- 비지니스 프로세스와 데이터 요구 사항을 추상적이고 구조화 된 형태로 표현하는 과정- 데이터 베이스의 구조와 관계를 정의, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의 모델링의 특징1. 단순화(Simplification) - 현실 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항을 제거 - 단순화를 통해 복잡한 현실 세계를 이해하고 표현하기 쉬워짐 이것 저것 덧 붙이지 않고, 핵심만 전달하는 과정 - 단순화 작업 2. 추상화(Abstraction) - 일정한 형식에 맞추어 간략하게 대략적으로..
MYSQL - LEFT 문법 -- LEFT(COLUMN, N) COLUMN, STRIGN문자열을 왼쪽에서 N개 만큼만 출력-- MID(COL, M, N) / RIGHT(COL, N) 문법도 존재-- 예시) 프로그래머스 SQL 문제 - 카테고리 별 상품 개수 구하기-- 카테코리 코드 앞에 2개만 잘라서 그룹화 후, 개수 출력SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(PRODUCT_CODE) AS PRODUCTSFROM PRODUCTGROUP BY 1ORDER BY 1 GTOUP BY 1 MSSQL은 SELECT 문에서 그룹화 하고자 하는 컬럼을 적은 그대로 GROUP BY에 적어줘야 하지만, MYSQL은 GROUP BY 1 or GROUP BY 1,2 로 사용 가능
MSSQL - ISNULL 문법 -- Column이 NULL인 경우 " " 에 있는 TEXT를, Null이 아닌 경우 기존 Column의 값을 출력-- as 뒤에 Column은 지정하고 싶은 별칭 명SELECT ISNULL(Column, "TEXT") as ColumnFROM Table MYSQL - IFNULL 문법 -- Column이 NULL인 경우 " " 에 있는 TEXT를, Null이 아닌 경우 기존 Column의 값을 출력-- as 뒤에 Column은 지정하고 싶은 별칭 명SELECT IFNULL(Column이, "TEXT") as Column이FROM Table SQL CASE문 활용CASE WHEN 조건식1 THEN 식1 WHEN 조건식2 THEN 식2 ... ELSE..
프로그래머스 SQL문제 푸는 도중 상위 N개 데이터 출력 문제를 푸는데 헷갈리는 부분이 있어서 글로 정리해봅니다. 기존에 MSSQL 위주로 사용했어서 상위 N개 데이터 필터링 할 때, SELECT TOP ~ 구문을 많이 사용했어서 프로그래머스 문제에서도 TOP 구문을 사용해야지 생각했었는데, 오류가 나서 한번 찾아봤습니다. MYSQL에서 N개 데이터 필터링을 할 경우 다른 문법을 사용합니다. MSSQL - TOP 구문 SELECT TOP 5 COL_1, COL_2, ... FROM TABLE... MYSQL - LIMIT 구문SELECT COL_1, COL_2, ...FROM TABLE...ORDER BY COL LIMIT 5
