SQL(40)
-
[SQL] 모든 조합 만들기 - CROSS JOIN
SQL 문제를 풀던 도중 두 테이블의 각 컬럼 값으로 만들 수 있는 모든 조합이 필요한 경우가 있었다. 해당 문제를 CROSS JOIN 을 활용해 해결하게 되면서 이렇게 기록하게 되었다. 1. 기본 문법SELECT a.columName(s), b.columnName(s)FROM tableA AS a CROSS JOIN tableB AS b 게시글 제목이나 위에 작성한 내용만 보면 "조합을 어떻게 만든다는 거지?" 라는 생각이 든다. 정확하게 말하면 두 테이블 A, B 가 있다고 했을 때 A 의 각 행(레코드)에 B 의 각 행(레코드)를 모두 JOIN 하는 것이다. 그 후 SELECT 문에 작성한 내용을 통해 원하는 컬럼들을 결과 테이블에 추가해 반환하게 된다. 한 마디로 두 테이블의 각 행(레코드)으로..
2024.10.17 -
[내일배움캠프] 일정 관리 앱 - DB 연동 및 API 테스트
다행이(?) JDBC 를 적용한 개발이 잘 풀려 '일정 생성(CRUD 中 - create)' 에 대한 구현을 마칠 수 있었다. 그래서 이전에 못한 Spring 과 DB 의 연결이 잘 되었는지 확인할 수 있었는데, 이번 게시글에는 어떻게 DB 를 Spring 과 연동했고 구현한 ' 일정 생성' 기능이 어떻게 동작되는지 작성할 생각이다. 이번에 작성된 프로젝트 내용은 여기서 확인 할 수 있다. 1. application.properties# MySQL 설정spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# DB Source URLspring.datasource.url=jdbc:mysql://localhost:3306/schedule_managemen..
2024.09.27 -
[내일배움캠프] 일정 관리 앱 - DB 세팅
어제 미리 세팅해둔 '일정 관리 앱(Schedule Management)' 프로젝트에 사용될 'DB(데이터베이스, 스키마)' 와 'Table(테이블)' 을 생성해 보자! 0. ERD 'Lv.1 ~ 3' 에 해당 하는 요구사항을 반영했을 때 필요로하는 DB Table 에 대한 'ERD(Entity Relationship Diagram, 객체 관계도)' 를 아래와 같이 작성해 두었다. 1. DB(= schema) 생성 평소에는 'MySQL Workbench' 를 통해서 DB(schema) 만을 생성해두고 Spring Data JPA 를 통해 Entity 에 해당하는 테이블을 생성했었다. 하지만 이번 과제는 'JDBC' 를 사용해야 하기에 DB 연결전에 DB 와 Table 을 모두 미리 생성해두기로 하였고,..
2024.09.27 -
[SQL] 시간차 구하기 - TIMEDIFF
두 시간의 시간차를 구할 때 사용되는 'TIMEDIFF' 함수에 대해 알아보자. 1. 기본 문법SELECT TIMEDIFF(시간 데이터1, 시간 데이터2) AS 별명FROM 테이블명 TIMEDIFF 첫 번째 시간에서 두 번째 시간을 뺄셈 연산하는 함수결과적으로 '두 시간의 뺄셈 연산' 을 하는 함수라 이해하면 편하다. 시간 데이터의 경우 단일 값이 아닌 여러 값이 합쳐진 형태의 값이므로 일반적인 '-' 연산자를 통해 값을 얻기 어렵기 때문에 해당 함수를 통해 시간차를 구하는 것이 좋다.연산 차가 '1시간(60분)' 미만일 경우 파라미터 위치에 상관 없이 양의 값을 반환하며, 연산 결과가 '1시간(60분)' 이상이 될 경우 'DATEDIFF' 함수처럼 파라미터 위치에 따라 양 또는 음의 값을 반환한다. 해..
2024.09.24 -
[SQL] 두 날짜의 일수 차 구하기 - DATEDIFF
두 날짜의 일(day)수 차이를 구할 때 사용되는 'DATEDIFF' 함수에 대해 알아보자. 1. 기본 문법SELECT DATEDIFF(날짜 데이터1, 날짜 데이터2) AS 별명FROM 테이블명 DATEDIFF 첫 번째 날짜에서 두 번째 날짜를 뺄셈 연산하는 함수결과적으로 '두 날짜의 뺄셈 연산' 을 하는 함수라 이해하면 편하다. 날짜 데이터의 경우 단일 값이 아닌 여러 값이 합쳐진 형태의 값이므로 일반적인 '-' 연산자를 통해 값을 얻기 어렵기 때문에 해당 함수를 통해 두 날짜의 차(일수)를 구하는 것이 좋다.파라미터의 위치가 중요하다. 위치 때문에 에러가 발생하는 것은 아니지만 원하는 값과 정반대의 결과를 얻을 수 있어 주의가 필요하다. 첫 번째 파라미터에는 두 날짜를 비교해 '최근 날짜(큰 값)'를..
2024.09.24 -
[SQL] 이전 시간 구하기 - SUBTIME
시간 데이터에 특정 값을 빼 이후 시간 데이터를 반환하는 'SUBTIME' 에 대해 알아보자. 1. 기본 문법SELECT SUBTIME(기준 시간 데이터, 더할 시간 간격) AS 별명FROM 테이블명 SUBTIME 특정 시간 데이터에 지정한 간격 값(시간)을 빼는 함수지정 가능한 간격은 '시, 분, 초(마이크로 단위까지)' 이다. 간격 지정 방식은 '시간 형식' 의 문자를 입력하면 된다.단, 주의 할 것은 우리가 '현실에서 볼 수 있는 시간' 을 입력해야 한다는 것이다. 예를 들어 "1시간 50분 뒤에 봅시다." 라고 말하지 "110분 뒤에 봅시다" 라 말하는 사람은 거의 없다. 이처럼 시간 간격 지정시 '01:50:00' 을 값으로 지정해야 하는 것이다. 만약 '시, 분, 초' 자리에 '60이상' 의 ..
2024.09.24