DB/Mysql 9

💻 [SQL] 날짜와 시간(DATE and TIME) 자료형

💻 [SQL] 날짜와 시간(DATE and TIME) 자료형 1. DATE 타입 DATE 타입은 날짜는 포함하지만 시간은 포함하지 않을 때 사용하는 타입입니다. DATE 타입 YYYY-MM-DD 형식 입력가능하며, '1000-01-01' 부터 '9999-12-31' 까지만 입력가능합니다. 2. DATETIME 타입 DATETIME 타입은 날짜와 시간을 모두 포함할 때 사용하는 타입입니다. YYYY-MM-DD HH:MM:SS의 형태로 사용되며 '1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력이 가능하다 3. TIME 타입 TIME은 HH:MM:SS의 형태를 지닌다.(HHH:MM:SS의 형태를 띄기도 한다) -..

DB/Mysql 2022.07.19

💻[SQL] Null 일 경우 Default 값 처리 방법

💻[SQL] Null 일 경우 Default 값 처리 방법 테이블의 컬럼값이 NULL 일 경우 Default 값을 넣어 주어야 할 경우가 생깁니다. outer join을 했을 때 일부 row의 필드 값이 null일 경우가 존재하는데 이를 IFNULL()를 통해서 default 값을 지정해줄 수 있습니다. MySQL에서는 IFNULL로 My Sql 의 경우엔 IFNULL('Data','Default Value') 를 사용한다. 문법 -- 문법 IFNULL(expression_1,expression_2); -- 예제 SELECT a.id, a.name, IFNULL(b.cnt ,0) as cnt FROM table_a a LEFT JOIN table_b b ON a.id = b...

DB/Mysql 2022.07.15

💻RDB 와 NoSQL의 차이점

💻RDB와 NoSQL의 차이점 1. Database와 DBMS 그리고 SQL Databse란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미합니다. DBMS란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어입니다. RDBMS에는 DBMS앞에 R이 붙어 있습니다. 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. SQL이란(Strucured Query Language) 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 ..

DB/Mysql 2022.06.16

물리적 데이터 모델링

물리적 데이터 모델링 1. 물리적 설계 물리적 설계란 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다. 이상적인 표를 제품에 맞는 구체적인 표로 만드는 작업 여기서 중요한건 성능입니다. 2. 역정규화 역정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위해하는 행위이다. 역정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다. 과도한 반정규화는 오리혀 성능을 저하시킬 수 있다. 역정규화를 위해서는 사전에 데이터의 일관성과 무결성(정확성)을 우선으로 할지, 데이터베..

DB/Mysql 2021.11.03

논리적 데이터 모델링

1.논리적 데이터 모델링 논리적 설계 단계에서는 개념적 데이터 모델링 작업에서 만든 ERD를 기반으로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다. 즉 ERD( 개념적 스키마)를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다. 관계형 데이터베이스의 데이블을 설계하는 단계이다. 1.1 ERD -> 논리적 데이터 모델링의 스키마 ERD 논리적 스키마 2. 논리적 데이터 모델링 - 정규화(Normalization) 2.1 정규화(Normalization) 정규화란 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마를 만들어가는 과정입니다. 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다. 정규화된 데..

DB/Mysql 2021.11.03

개념적 데이터 모델링

개념적 데이터 모델링 데이터 모델링의 순서 업무파악 개념적 데이터 모델링(ER 다이어그램) 논리적 데이터 모델링(표로 전환) 물리적 데이터 모델링 1.개념적 데이터 모델링 파악한 업무에서 개념을 뽑아내는 과정, 논리적, 물리적 데이터 모델링보다 개념적 모델링 작업이 가장 중요합니다. 개념적 모델링을 오류없이 작업해야지만 나중에 수정하는 일이 보다 줄어듭니다. ERD : Entity Relationship Diagram E-R 모델에서는 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다. E-R 다이어그램으로 표현하며, 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타낼 수 있다. 1.1 ERD의 구성요소 개체(Entity) -> 사각형 기호로 표..

DB/Mysql 2021.11.02

관계형 데이터베이스 JOIN 개념정리

관계형 데이터베이스 JOIN 개념정리 JOIN 개념 JOIN은 2개 이상의 테이블에 대해 연관된 튜플(행)들을 결합하여, 하나의 새로운 테이블(릴레이션)을 만들어 반환한다. LEFT JOIN (=LEFT OUTER JOIN) 왼쪽에 있는 테이블을 기준으로 join합니다. 2개이상 테이블을 조인 가능하다. # 2개의 테이블을 LEFT JOIN할때 >SELECT * FROM A LEFT JOIN B ON 조건.A = 조건.B ; # 3개의 테이블을 LEFT JOIN할때 >SELECT * FROM A LEFT JOIN B ON 조건.A = 조건.B LEFT JOIN C ON 조건.B = 조건.C; 왼쪽 테이블A에 테이블B을 합친다. 테이블A에 존재하지만 테이블B에 존재하지 않는 행이라면 NULL로 채운다. R..

DB/Mysql 2021.10.31

MySQL 테이블 생성(CREATE)& TABLE 구조 보기

MySQL 테이블 생성(CREATE) CREATE TABLE topic( -> id INT(11) NOT NULL AUTO_INCREMENT, -> title VARCHAR(100) NOT NULL, -> description TEXT NULL, -> created DATETIME NOT NULL, -> author VARCHAR(30) NULL, -> profile VARCHAR(100) NULL, -> PRIMARY KEY(id)); AUTO_INCREMENT 컬럼이란? 자동 증가 값을 가지는 컬럽으로 값을 직접 대입할 수 없습니다. 중간에 값을 삭제한다고 해서 삭제된 값을 재사용하지 않으며 레코드가 적재될 때마다 1씩 증가하게 됩니다. NOT NULL 제약 조건이란? NOT NULL 제약 조건을 설..

DB/Mysql 2021.10.29