Computer Science/💾 Database 3

[MySQL] 데이터 중복 삽입 방지하기

데이터 삽입 시 필요에 따라 중복 삽입을 방지해줘야 하는 경우가 있다. 지금 수행하고 있는 프로젝트에서 해당 문제에 직면했고, 어떤 방법을 적용하는 것이 좋을지 궁금해서 찾아봤다. FROM DUAL NOT EXISTS INSERT INTO User (userEmail, userPassword) SELECT ?, ? FROM DUAL WHERE NOT EXISTS (SELECT * FROM user WHERE userEmail = "a@a.com", userPassword = 1234); User 테이블에 해당 이메일과 패스워드를 가진 행이 없을 경우에 삽입해준다. INSERT IGNORE INSERT IGNORE INTO User (userEmail, userPassword) VALUES ("a@a.co..

[MySQL] DATE_FORMAT으로 날짜 및 시간 형식 변경하기

MySQL에서 아래와 같이 DATE_FORMAT 함수를 이용하면 날짜나 시간 표기를 원하는 형식으로 바꿀 수 있다. DATE_FORMAT(DATE, FORMAT); 홈페이지에 굉장히 많은 포맷이 있는데, 자주 다룰법한 몇 가지를 정리해봤다. %Y : 4자리 연도 ex) 2021 %y : 2자리 연도 ex) 21 %M : 긴 월 ex) January %b : 짧은 월 ex) Jan %m : 긴 숫자 월 ex) 06 %c : 짧은 숫자 월 ex) 6 %d : 긴 일 ex) 08 %e : 짧은 일 ex) 8 %W : 긴 요일 ex) Monday %a : 짧은 요일 ex) Mon %I : 시간 (12시간 기준) ex) 12 (자정) %H : 시간 (24시간 기준) ex) 00 (자정) %i : 분 %s : 초 ..

[데이터베이스/DB] SQL 세 종류 - DDL / DML / DCL

SQL (Structured Query Language) SQL 명령어는 크게 세 가지로 분류할 수 있다. SQL이 무엇인지는 이전 포스팅에서 DBMS와 함께 정리해놨다. DDL DDL은 Data Definition Language의 약자로 데이터베이스를 정의하는 언어이다. 스키마(데이터베이스)나 테이블을 생성, 수정, 삭제하는 등 데이터 전체의 골격을 결정한다. CREATE : 테이블 혹은 데이터베이스 생성 ALTER : 테이블 수정 DROP : 테이블 혹은 데이터베이스 삭제 TRUNCATE : 테이블 초기화 DML DML은 Data Manipulation Language의 약자로 데이터 조작어이다. DDL을 통해 정의된 데이터베이스에 존재하는 레코드를 조회, 수정, 삭제하는 등 글자 그대로 데이터를 ..