SQL 31

[SQL#7] ROUND / CEIL / FLOOR

1. ROUNDROUND 함수는 숫자를 반올림할 때 사용하는 함수입니다.소수점 이하를 원하는 자리수까지 반올림하거나, 정수 단위로 반올림할 수 있습니다.ROUND(숫자, 소수점_자리수) 숫자: 반올림할 대상 숫자소수점_자리수: (선택) 소수점 아래 몇 번째 자리까지 남길지생략하면 정수로 반올림됨SELECT ROUND(3.14159, 1); → 결과: 3.1SELECT ROUND(3.6);→ 결과: 4 2. CEIL / FLOORCEIL 함수는 숫자를 올림할 때 사용하는 함수입니다.CEIL(숫자)→ 입력된 값보다 크거나 같은 가장 작은 정수 반환SELECT CEIL(3.2); -- 4SELECT CEIL(-1.3); -- -1 FLOOR 함수는 숫자를 내림할 때 사용하는 함수입니다.FLOOR(숫자..

SQL 2025.04.16

[SQL#6] SUBSTR

SUBSTR 함수는 문자열에서 일부만 잘라내는 함수입니다. 특정 위치부터 원하는 길이만큼 잘라서 새로운 문자열을 반환할 수 있습니다. SUBSTR(문자열, 시작위치, 길이)문자열: 자르고 싶은 대상 문자열시작위치: 자르기를 시작할 위치 (1부터 시작)길이 (선택): 자를 문자 수 (생략하면 끝까지)※ SUBSTRING()이라는 이름도 동일하게 사용 가능 SELECT SUBSTR('HelloWorld', 1, 5);→ 결과: 'Hello'→ 문자열의 1번째부터 5글자 추출 SELECT SUBSTR('HelloWorld', 6);→ 결과: 'World'→ 6번째부터 끝까지 추출 SELECT SUBSTR(phone_number, 1, 3) AS area_codeFROM users;→ phone_number의 ..

SQL 2025.04.16

[SQL#5] ORDER BY

ORDER BY는 SQL에서 조회한 데이터를 정렬할 때 사용하는 문법입니다. 데이터를 오름차순(ASC) 또는 내림차순(DESC) 으로 정렬할 수 있습니다. SELECT name, ageFROM usersORDER BY age;→ age 기준으로 낮은 나이부터 높은 나이 순으로 정렬 SELECT name, ageFROM usersORDER BY age DESC;→ age 기준으로 높은 나이부터 낮은 나이 순으로 정렬 SELECT name, city, ageFROM usersORDER BY city ASC, age DESC;→ city를 기준으로 오름차순 정렬,→ 같은 도시 내에서는 age를 기준으로 내림차순 정렬 ※ 숫자, 문자열, 날짜 정렬 숫자 → 크기 순으로 정렬문자열 → 알파벳 순서 또는 가나다순 ..

SQL 2025.04.16

[SQL#4] DISTINCT

SQL에서 데이터를 조회할 때, 중복된 결과를 제거하고 고유한 값만 보고 싶을 때 사용하는 것이 DISTINCT입니다. SELECT DISTINCT 컬럼명FROM 테이블명;→ 지정한 컬럼의 중복을 제거한 고유한 값들만 조회합니다. SELECT DISTINCT cityFROM users;→ users 테이블에서 중복되지 않은 도시 이름만 조회합니다. DISTINCT는 선택한 모든 컬럼의 조합이 동일할 때만 중복으로 간주합니다.SELECT DISTINCT city, ageFROM users;→ city, age의 쌍이 완전히 같은 경우에만 중복으로 처리됨 고유한 값의 개수를 셀 때도 DISTINCT를 사용합니다.SELECT COUNT(DISTINCT city)FROM users;→ 중복되지 않은 도시의 개수..

SQL 2025.04.16

[SQL#3] LIKE / IN / BETWEEN / IS NULL

SQL에서 특정 조건의 데이터를 더 유연하게 필터링하고 싶을 때 사용하는 연산자들이 있습니다. 이번 글에서는 LIKE, IN, BETWEEN, IS NULL의 용도와 사용 예시를 정리하도록 하겠습니다. 1. LIKELIKE는 문자열 안에 특정 패턴이 포함되어 있는지 확인할 때 사용합니다.와일드카드와 함께 사용됩니다. % : 0개 이상의 문자_ : 정확히 1개의 문자예시의미WHERE name LIKE 'A%'A로 시작하는 이름WHERE email LIKE '%@gmail.com'@gmail.com으로 끝나는 이메일WHERE code LIKE 'A_3'A로 시작하고 중간에 아무 문자 1개, 3으로 끝나는 문자열SELECT nameFROM usersWHERE name LIKE '%son';→ 이름이 ‘son’..

SQL 2025.04.16

[SQL#2] 비교연산자와 논리연산자

SQL에서 데이터를 조회할 때 WHERE 조건절과 함께 자주 사용되는 것이 바로 비교 연산자와 논리 연산자입니다. 이 글에서는 자주 사용되는 연산자들의 의미와 사용 예시를 간단하게 알아보도록 하겠습니다. 1. 비교연산자비교 연산자는 두 값을 비교해 참(True) 또는 거짓(False)을 판단합니다. 주로 WHERE 조건절과 함께 사용됩니다. 연산자 의미 예시 =같다WHERE age = 30!=같지 않다WHERE name != 'Tom'>크다WHERE salary > 50000작다WHERE age >=크거나 같다WHERE score >= 90작거나 같다WHERE joined_at SELECT name, ageFROM usersWHERE age >= 18;→ age가 18 이상인 사용자만 조회합니다. 2..

SQL 2025.04.16

[SQL#1] SELECT / FROM / LIMIT

데이터베이스를 배우기 시작할 때 가장 먼저 접하게 되는 문법이 바로 SELECT, FROM, LIMIT입니다. 이번 글에서는 이 세 가지 문법이 각각 어떤 역할을 하는지, 그리고 어떻게 활용할 수 있는지를 알아보겠습니다. SELECT / FROMSELECT는 가져올 열(column)을, FROM은 데이터를 가져올 테이블을 지정합니다.SELECT name, ageFROM users;→ users 테이블에서 name과 age 컬럼을 조회합니다.SELECT *FROM users;→ 모든 컬럼을 가져오려면 *을 사용합니다. LIMITLIMIT은 조회 결과 중 출력할 행(row)의 개수를 제한합니다.SELECT nameFROM usersLIMIT 5;→ users 테이블에서 이름을 5개만 조회합니다.

SQL 2025.04.16

[Database Modeling#4] 테이블 분리 규칙

관계형 데이터베이스를 설계할 때 가장 많이 하는 실수는 “무엇을 기준으로 테이블을 나눌 것인가?에 대한 기준 없이 시작하는 것입니다.이 글에서는 실무와 학습에서 꼭 필요한 DB 테이블 분리 규칙 4가지를 예시 중심으로 정리했습니다. 규칙 1. 한 칸에는 한 가지 정보만 들어가도록 만들어라.테이블의 각 컬럼은 하나의 의미만 담아야 합니다. 예를 들어, 아래와 같은 테이블과 같이 하나의 칸 내 쉼표 등으로 여러 이메일이 나눠있게 되면 나중에 데이터 삽입, 삭제 등 수정 시 오류 발생 가능성이 증가하게 됩니다.id (PK)이름이메일1홍길동gd123@naver.com, gd00@naver.com2김철수king123@naver.com, queen123@naver.com 따라서 아래와 같이 테이블을 분리해야 합니..

SQL 2025.04.15

[Database Modeling#3] Primary Key, Foreign Key란?

관계형 데이터베이스(Relational Database)가 널리 사용되면서, 서로 연관된 데이터를 일관성 있고 효율적으로 관리하는 방법이 절실해졌습니다. 데이터는 여러 테이블에 나뉘어 저장되는데, 이를 연결할 수 있는 명확한 기준이 없다면 다음과 같은 문제들이 발생합니다:동일한 데이터가 여러 테이블에 중복 저장되어 관리와 유지보수가 어려움하나의 데이터를 수정하거나 삭제했을 때, 관련된 데이터가 함께 변경되지 않아 불일치(Inconsistency) 발생테이블 간 관계가 불명확해져 데이터 분석이나 검색이 복잡해짐이러한 문제를 해결하기 위해 PK(Primary Key)와 FK(Foreign Key) 개념이 등장했습니다.PK는 테이블 내 각 데이터를 고유하게 식별합니다.FK는 다른 테이블의 PK를 참조하여 테이..

SQL 2025.04.15

[Database Modeling#2] 관계형 데이터베이스(RDBMS)란?

프로그래밍을 막 시작했거나 백엔드 개발 공부를 하다 보면 꼭 만나게 되는 개념, 바로 관계형 데이터베이스(Relational Database)입니다. MySQL, MariaDB, PostgreSQL 등 익숙한 이름의 데이터베이스들이 바로 이 범주에 속합니다. 오늘은 이 관계형 데이터베이스가 어떻게 구성되어 있는지, 그리고 그 구조가 왜 중요한지에 대해 이야기해보려 합니다. 관계형 데이터베이스란?관계형 데이터베이스는 말 그대로 "관계(relationship)"를 기반으로 데이터를 저장하는 방식입니다. 이 방식에서는 데이터를 테이블(Table)이라는 단위로 나누어 관리합니다.테이블은 우리가 흔히 사용하는 표(table)와 같은 형태를 가지고 있습니다. 관계형 데이터베이스에서 가장 기본적인 구성 단위는 바로..

SQL 2025.04.15