목록IT/SQL (9)
개발로그필름

시간 데이터를 다룰 때 흔히 접하는 개념 중 하나가 DATETIME과 TIMESTAMP이다두 용어는 비슷해 보이지만, 실제로는 다른 개념이며 사용 목적도 다르다 1. DATETIME과 TIMESTAMP란?1.1 DATETIME이란?사람이 이해하기 쉬운 날짜 및 시간을 포함하는 데이터 타입일반적으로 년-월-일 시:분:초 형식으로 표현되며, 특정 시점을 직관적으로 나타낼 수 있다예시: 2025-03-13 15:30:00Python에서 DATETIME을 다룰 때는 datetime 모듈을 사용한다from datetime import datetimedt = datetime(2025, 3, 13, 15, 30, 0)print(dt) # 2025-03-13 15:30:00 1.2 TIMESTAMP란?197..

1. ON DELETE RESTRICT란?부모 테이블의 데이터가 자식 테이블에서 참조되고 있을 때, 부모 데이터를 삭제할 수 없도록 막는 제약 조건즉, 자식 테이블에 해당 외래 키(FK)를 사용하는 데이터가 존재하면 부모 테이블의 데이터를 삭제하려고 할 때 오류가 발생이 제약 조건은 데이터 무결성을 유지하는 데 중요한 역할을 한다실수로 부모 데이터를 삭제하여 자식 테이블에 고아 데이터(orphan data)가 남지 않도록 방지한다 2. ON DELETE RESTRICT 사용법📌 테이블 생성 예제CREATE TABLE parents ( parent_id INT PRIMARY KEY, name VARCHAR(50));CREATE TABLE children ( child_id INT..

1. VIEW란?SQL에서 가상의 테이블을 의미실제 데이터를 저장하지 않지만, 기존 테이블의 데이터를 특정한 형태로 보여주는 역할을 한다특정 조건을 만족하는 데이터를 자주 조회해야 한다면 매번 복잡한 SELECT 문을 실행하는 대신 VIEW를 만들어 놓고 간단하게 사용할 수 있다 2. VIEW를 사용하는 이유✅ 코드 단순화: 복잡한 SELECT 문을 단순하게 사용할 수 있음✅ 보안 강화: 원본 테이블의 일부 데이터만 노출 가능✅ 재사용성 증가: 여러 쿼리에서 동일한 VIEW를 활용 가능✅ 가독성 향상: SQL 코드가 더 읽기 쉬워짐 3. VIEW 기본 사용법(1) VIEW 생성 (CREATE VIEW)CREATE VIEW view_name ASSELECT column1, column2FROM ta..

SQL문 작성 순서SELECTFROMWHEREGROUP BYHAVINGORDER BYLIMIT SQL문 실행 순서FROM : 어느 테이블인지 결정WHERE : FROM절 테이블에서 특정 조건(들) 설정GROUP BY : 그룹핑. 하나의 그룹은 하나의 로우HAVING : 그루핑 그룹들 중 특정 조건(들) 선별SELECT : 조회할 컬럼(들) 선택. SELECT절에서 사용한 alias는 이후 단계부터 alias 사용 가능ORDER BY : 특정 기준 따라 정렬LIMIT : 일부 선택

🔹 SUBSTRING()이란?문자열에서 특정 부분을 추출하는 함수데이터베이스(MySQL, PostgreSQL, SQL Server)뿐만 아니라 Python, JavaScript, Java 등 다양한 프로그래밍 언어에서 사용된다 1. SUBSTRING() 기본 사용법SQL에서 SUBSTRING()은 문자열의 일부를 가져오는 함수SELECT SUBSTRING('Hello, World!', 8, 5);결과 : World📌 설명: 'Hello, World!' → 원본 문자열 8 → 8번째 문자부터 시작 (W부터) 5 → 5개의 문자 가져오기 (World) 2. SUBSTRING()의 기본 형식 1) SUBSTRING(문자열, 시작위치, 길이)SELECT SUBSTRING('Database Managem..

📌 date 컬럼에서 주말(토, 일)만 조회하는 방법 WEEKDAY()를 사용 (MySQL)SELECT * FROM 테이블명WHERE WEEKDAY(date) IN (5, 6);✔ WEEKDAY(date) → 0(월요일)부터 시작하여 6(일요일)까지 반환✔ IN (5, 6) → 5(토요일), 6(일요일)만 조회 데이터베이스에서 날짜 데이터를 다룰 때, 특정 요일을 기준으로 데이터를 조회해야 하는 경우가 많다예를 들어, 특정 날짜가 주말(토, 일)인지 확인하거나, 평일(월~금)의 데이터를 필터링하는 작업이 필요할 수 있다MySQL에서는 이러한 작업을 보다 쉽게 할 수 있도록 WEEKDAY() 함수를 사용할 수 있다 WEEKDAY()특정 날짜가 무슨 요일인지 숫자로 반환하는 함수요일을 0(월요일)부터 ..

SELECT * FROM hello_worldWHERE name LIKE '%hello%' OR '%hi%';이렇게 하면 올바르게 실행되지 않는다🚨 오류 원인: LIKE 조건이 잘못 작성됨➡ LIKE 조건은 반드시 컬럼명을 각각 지정해야 한다➡ OR 연산자 이후에도 LIKE 연산자를 명확하게 사용해야 한다즉, OR '%hello%' 이렇게 쓰면 SQL이 ‘어떤 컬럼에서 검색할지’를 모른다 → 문법 오류 발생 ✅ 올바른 SQL 쿼리 (LIKE 연산자 각각 적용)SELECT * FROM hello_worldWHERE name LIKE '%hello%' OR name LIKE '%hi%';✔ name LIKE '%hello%' → name 컬럼에서 'hello' 포함된 행 검색✔ OR name LIKE ..

💡 BETWEEN은 특정 범위 내의 값을 찾을 때 사용되는 SQL 연산자 ➡ 숫자, 날짜, 문자 데이터를 비교할 때 사용 1. BETWEEN 기본 문법SELECT 컬럼명 FROM 테이블명WHERE 컬럼명 BETWEEN 최소값 AND 최대값;✔ BETWEEN 최소값 AND 최대값✔ 최소값과 최대값을 포함하는 범위 내의 값을 조회 2. 숫자 범위 조회 (BETWEEN 활용)가격이 10,000원 ~ 50,000원 사이인 상품 조회SELECT * FROM productsWHERE price BETWEEN 10000 AND 50000;✅ 10000 이상 50000 이하 가격을 가진 상품 조회 3. 날짜 범위 조회 (BETWEEN 활용)2024년 1월 1일부터 3월 31일까지 주문된 내역 조회SELEC..