본문 바로가기
카테고리 없음

SQL에서 자주쓰는 함수

by 채움블로그 2024. 7. 27.
반응형

목차

    SQL 서버란

    SQL 서버(SQL Server)는 관계형 데이터베이스 관리 시스템(RDBMS)으로, Microsoft에서 개발하고 제공하는 소프트웨어입니다. 데이터베이스 관리, 저장, 검색 및 분석을 수행할 수 있는 강력한 플랫폼입니다.

    1. 기본 개념 및 기능

    • 데이터 저장: SQL Server는 테이블 형식으로 데이터를 저장합니다. 데이터는 행과 열로 구성된 테이블에 저장되며, 각 테이블은 스키마에 의해 정의됩니다.
    • 쿼리 처리: SQL Server는 SQL(Structured Query Language)을 사용하여 데이터를 질의하고 조작합니다. SQL은 데이터베이스에 명령을 내리고 데이터를 검색하거나 수정하는 데 사용됩니다.
    • 트랜잭션 관리: 데이터의 일관성과 무결성을 보장하기 위해 트랜잭션을 지원합니다. 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)이라는 ACID 속성을 준수합니다.
    • 보안: 사용자 인증 및 권한 관리를 통해 데이터 접근을 제어합니다. SQL Server는 사용자와 역할 기반의 보안을 제공하며, 암호화 기능도 지원합니다.
    • 백업 및 복구: 데이터의 백업 및 복구 기능을 제공하여 데이터 손실을 방지하고, 시스템 오류 발생 시 데이터를 복원할 수 있습니다.

    2. 주요 구성 요소

    • SQL Server Database Engine: 데이터 저장, 검색, 처리 및 관리 기능을 제공합니다. 핵심 구성 요소로, SQL 쿼리를 처리하고 트랜잭션을 관리합니다.
    • SQL Server Management Studio (SSMS): SQL Server의 관리 및 개발 도구입니다. 쿼리 작성, 데이터베이스 설계, 성능 모니터링, 백업 및 복구 작업 등을 수행할 수 있습니다.
    • SQL Server Reporting Services (SSRS): 보고서 작성 및 배포를 지원하는 도구입니다. 다양한 형식의 보고서를 생성하고, 이를 웹과 이메일을 통해 배포할 수 있습니다.
    • SQL Server Integration Services (SSIS): 데이터 추출, 변환 및 로드를 위한 ETL(Extract, Transform, Load) 도구입니다. 데이터 이동과 변환 작업을 자동화할 수 있습니다.
    • SQL Server Analysis Services (SSAS): 데이터 분석 및 다차원 분석을 지원하는 도구입니다. OLAP(Online Analytical Processing) 및 데이터 마이닝 기능을 제공합니다.

    3. 기능 및 특성

    • 성능 최적화: 인덱스, 쿼리 최적화, 캐싱 등 다양한 기능을 통해 성능을 개선할 수 있습니다.
    • 확장성: 다양한 스케일링 옵션을 제공하여, 데이터베이스 성능을 증가시키거나 용량을 확장할 수 있습니다.
    • 호환성: 다양한 운영 체제와 플랫폼에서 실행할 수 있으며, 클라우드 환경에서도 사용 가능합니다. Azure SQL Database와 같은 클라우드 서비스도 지원합니다.
    • 비즈니스 인텔리전스: 데이터 분석과 보고서를 통해 비즈니스 인사이트를 얻을 수 있습니다.

    SQL Server는 기업의 데이터 관리 및 분석 요구를 충족시키기 위해 설계된 강력하고 유연한 데이터베이스 플랫폼으로, 다양한 기능을 통해 데이터베이스 운영을 효율적으로 지원합니다.

    SQL에서 자주 쓰는 함수

    1. 문자열 함수 (String Functions)

    • CONCAT(): 문자열을 연결합니다.
    • sql
      코드 복사
      SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;

    • SUBSTRING(): 문자열의 일부를 추출합니다.
    • sql
      코드 복사
      SELECT SUBSTRING(email, 1, 5) AS email_prefix FROM users;

    • LENGTH(): 문자열의 길이를 반환합니다.
    • sql
      코드 복사
      SELECT LENGTH(description) AS desc_length FROM products;

    • TRIM(): 문자열의 양쪽에서 공백을 제거합니다.
    • sql
      코드 복사
      SELECT TRIM(column_name) FROM table_name;

    2. 수학 함수 (Mathematical Functions)

    • ROUND(): 숫자를 지정된 소수점 자리까지 반올림합니다.
    • sql
      코드 복사
      SELECT ROUND(price, 2) AS rounded_price FROM items;

    • FLOOR(): 숫자를 내림하여 가장 가까운 정수로 만듭니다.
    • sql
      코드 복사
      SELECT FLOOR(salary) AS floored_salary FROM employees;

    • CEIL(): 숫자를 올림 하여 가장 가까운 정수로 만듭니다.
    • sql
      코드 복사
      SELECT CEIL(discount) AS ceiled_discount FROM orders;

    • ABS(): 숫자의 절댓값을 반환합니다.
    • sql
      코드 복사
      SELECT ABS(balance) AS absolute_balance FROM accounts;

    3. 날짜 및 시간 함수 (Date and Time Functions)

    • NOW(): 현재 날짜와 시간을 반환합니다.
    • sql
      코드 복사
      SELECT NOW() AS current_datetime;

    • DATE(): 날짜 부분만 추출합니다.
    • sql
      코드 복사
      SELECT DATE(order_date) AS order_date_only FROM orders;

    • DATEDIFF(): 두 날짜 사이의 차이를 계산합니다.
    • sql
      코드 복사
      SELECT DATEDIFF(NOW(), hire_date) AS days_since_hired FROM employees;

    • DATE_ADD(): 날짜에 특정 기간을 추가합니다.
    • sql
      코드 복사
      SELECT DATE_ADD(order_date, INTERVAL 7 DAY) AS delivery_date FROM orders;

    4. 집계 함수 (Aggregate Functions)

    • COUNT(): 행의 수를 계산합니다.
    • sql
      코드 복사
      SELECT COUNT(*) AS total_orders FROM orders;

    • SUM(): 특정 열의 합계를 계산합니다.
    • sql
      코드 복사
      SELECT SUM(total_amount) AS total_sales FROM sales;

    • AVG(): 특정 열의 평균을 계산합니다.
    • sql
      코드 복사
      SELECT AVG(salary) AS average_salary FROM employees;

    • MAX(): 특정 열의 최댓값을 반환합니다.
    • sql
      코드 복사
      SELECT MAX(price) AS highest_price FROM products;

    • MIN(): 특정 열의 최소값을 반환합니다.
    • sql
      코드 복사
      SELECT MIN(price) AS lowest_price FROM products;

    5. 조건 함수 (Conditional Functions)

    • CASE: 조건에 따라 다른 값을 반환합니다.
    • sql
      코드 복사
      SELECT CASE WHEN salary > 50000 THEN 'High' ELSE 'Low' END AS salary_range FROM employees;
    • IFNULL() (MySQL) / COALESCE(): NULL 값을 다른 값으로 대체합니다.
    • sql
      코드 복사
      SELECT COALESCE(phone_number, 'N/A') AS phone FROM contacts;

    이 함수들은 SQL 쿼리에서 데이터를 변형하고 분석하는 데 매우 유용하며, 데이터베이스 작업을 더 효율적으로 만들어 줍니다.

    반응형

    목차