UPSERT란? 데이터베이스에서 기존에 값이 저장(INSERT)되어있는경우 UNIQUE 키 값을 설정을 해 놓으면 새로운 값이면 INSERT, 이미 존재하는 경우에는 UPDATE를 실행해주는 용어로 UP(DATE)와 (IN)SERT를 합쳐UPSERT라고 많이 부릅니다. UPSERT 사용 전 체크사항 - 유니크 키 값 설정 유니크 키 값을 설정해 놓는 이유는 유니크한 값을 이용하여 중복되는 행이 없게 설정을 하는것으로 유니크한 값이 존재하면 있는걸로 판단하고 UPDATE를 없으면 INSERT를 하기 위해서 꼭 필수로 설정을 해 놓아야 합니다. 하나로 유니크한 값을 설정할수 없는경우 두가지 컬럼으로 설정을 할수 있습니다. UPSERT문 사용하기 INSERT INTO 테이블 (컬럼1, 컬럼2, 컬럼3) VAL..
MySQL에서 데이터를 삭제하는 방법은 DELETE, DROP, TRUNCATE 이렇게 3가지가 존재합니다. 데이터를 삭제한다고 해서 같은 결과 값이 나오지 않는데요. 데이터 삭제를 했을 때 어떤 결과가 일어나는지 간략하게 설명해 보자면 1) DELETE : 데이터만 삭제( 단위 : 행 ), 테이블 존재 where절 사용 👉 특정 행만 삭제 가능 ⭐ auto_increment 초기화 X 2) DROP : 테이블 삭제, 테이블이 삭제가 되면서 전체 데이터도 삭제 3) TRUNCATE : 데이터만 삭제, 테이블 존재 WHERE절이 불가능 👉 테이블 안 데이터를 통으로 삭제 ⭐ auto_increment 초기화 O 삭제 방법 1) DELETE DELETE FROM 테이블명 WHERE 조건 = 조건값 2) DR..
스칼라 서브쿼리란? 스칼라 서브쿼리는 우리가 흔히 SELECT안에 SELECT라 부르는 SELECT 절의 서브쿼리를 말합니다. 스칼라 서브쿼리를 작성을 하면 LEFT OUTER JOIN과 같은 결과 값을 얻을 수 있는데요, 하지만 JOIN을 사용하는 것보다 성능이 좋습니다. 성능에 대해서 이야기를 조금 더 해보자면 스칼라 서브쿼리가 무조건 JOIN보다 성능이 좋다? 이것은 아닙니다. 스칼라 서브쿼리와 JOIN을 각각 필요한 곳에 작성을 하는 게 제일 중요합니다. 다음과 같은 표를 만드는 SQL을 만들어봅시다. TABLE-A : id(A_id), title, description, price, pub_date, category_id(B_id) TABLE-B : B_id, category TABLE-C : ..
database의 timestamp를 사용하면 UTC 기준으로 시간이 잡힙니다. 이 UTC 기준시간은 우리나라 시간에서 9시간이 빠진 시간이 되는데 이때 우리나라 기준의 시간으로 변경을 해 주어야 하는데요. 어떻게 할 수 있을까요? timezone 확인하기 아래 코드를 이용하여 현재 내 time_zone을 확인하여 봅시다. 대게 결괏값으로 system을 받을 것입니다. select @@global.time_zone, @@session.time_zone +--------------------+---------------------+ | @@global.time_zone | @@session.time_zone | +--------------------+---------------------+ | SYSTEM..
제약조건의 종류 database의 제약조건 종류에는 총 다섯가지가 존재합니다. 1) NOT NULL 2) DEFAULT 3) UNIQUE 4) PRIMARY KEY 5) FOREIGN KEY 이중에 NOT NULL과 DEFAULT를 정리해보려고합니다. NOT NULL NULL 값이란 데이터베이스에서 알수 없는 상태를 나타내는데 사용되는데요. NOT NULL은 필드의 값에 NULL을 저장할 수 없도로 설정하는것을 말합니다. NOT NULL 설정은 대게 CREATE문 작성할때 사용되며 추후에는 ALTER문으로 추가할 수있습니다. DEFAULT DEFAULT는 필드의 기본값을 설정을 하는것을 말합니다. INSERT명령어를 사용하여 데이터를 삽입할때 필드에 값이 없으면 알아서 기본적으로 DEFAULT을 입력되게..
시스템 시간대 정보에 맞게 데이터가 저장이 되고 날짜/시간 타입은 총 4가지가 존재합니다. 1) DATE 2) DATETIME 3) TIME 4) TIMESTAMP DATE ( YYYY-MM-DD ) 👉 날짜만 저장 DATETIME (YYYY-MM-DD HH:MM;SS) 👉 날짜 + 시간 저장 👉 24시간제 TIME ( HH:MM:SS ) 👉 시간만 저장 TIMESTAMP ( YYYY-MM-DD HH:MM:SS ) 👉 날짜 + 시간 저장 👉 자동입력 👉 UTC를 기준으로 저장이 되기 때문에 우리나라에서는 9시간을 더 하던가 우리나라 기준으로 변경을 해주어야 합니다. cf. UTC(국제표준시간) DATETIME과 TIMESTAMP의 차이는 무엇이 있을까? DATETIME TIMESTAMP 수동입력 자동입력..
게시글번호 제목 내용 작성일 수정일 작성자 1 javascript javascript 는... 2023.12.17 2024.01.02 이코드 2 node node 는... 2023.12.18 2024.01.02 김코드 3 react react 는... 2023.12.15 2024.01.02 이코드 4 next next 는... 2023.12.19 2024.01.02 박코드 5 python python 은... 2023.12.05 2024.01.02 이코드 이렇게 테이블이 존재할 때 이 코드라는 작성자가 구분이 가나요? 이 코드라는 사람은 동일인물일까요? 동명이인일까요? 게시글번호 제목 내용 작성일 수정일 작성자 생년월일 1 javascript javascript 는... 2023.12.17 2024.01..
key 란? key는 database에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬을 할 때 튜플을 구분하는 기준이 되는 속성을 말합니다. 키의 종류에는 후보키, 기본키, 대체키, 슈퍼키, 외래키 등이 있습니다. 1) 기본키 Primary Key 흔히 PK라고도 불리며 기본키는 후보키 중에서 선정된 주(Main) 키로 중복된 값을 가질 수 없습니다. 즉 한 테이블에서 특정 튜플(row = 행)을 유일하게 구별할 수 있는 것입니다. 기본키는 기본적으로 Null값을 받아올 수 없습니다. 왜냐하면 기본키는 유일성*과 최소성*을 가지고 있어 튜플을 식별해야 하기 때문에 null값이 올 수 없는 것입니다. 2. 외래키 Foreign Key FK라 불리며 다른 테이블의 기본키를 참조하는 속성이나 속성들의 집합을 ..
데이터베이스란? 데이터베이스는 데이터를 효율적으로 관리하기 위한 집합체를 말하고 DB라고도 합니다. 이는 데이터를 구조화하여 관리함으로써 데이터의 중복을 막을 수 있고, 효율적이고 빠른 데이터 연산처리를 가능하게 합니다. DBMS란? 데이터베이스를 운영하고 관리하는 시스템(DataBase Management System)으로 데이터베이스를 사용할 수 있는데요. RDBMS란? Relational DataBase Management System의 약자로 관계형 데이터베이스 관리 시스템입니다. 이 RDBMS는 RDB, 즉 관계형 데이터 모델로 모든 데이터를 테이블 형태로 하여 표현을 하는데요. 이 테이블간의 관계를 타나내기 위해 외래키(Foreign Key)를 사용하는데 외래키를 이용해서 테이블 간 JOIN을..