Back to Skills

sql-expert

verified

PostgreSQL, MySQL, SQLite, 및 SQL Server를 지원하는 전문가 수준의 SQL 쿼리 작성, 최적화 및 데이터베이스 스키마 설계입니다. 데이터베이스 작업 시 다음을 위해 사용하세요: (1) JOIN, 서브쿼리, 윈도우 함수를 포함한 복잡한 SQL 쿼리 작성, (2) 느린 쿼리 최적화 및 실행 계획 분석, (3) 올바른 정규화를 적용한 데이터베이스 스키마 설계, (4) 인덱스 생성 및 쿼리 성능 개선, (5) 마이그레이션 작성 및 스키마 변경 처리, (6) SQL 에러 및 쿼리 문제 디버깅

View on GitHub

Marketplace

icartsh-marketplace

icartsh/icartsh_plugin

Plugin

icartsh-plugin

Repository

icartsh/icartsh_plugin
1stars

icartsh-plugin/skills/sql-expert/SKILL.md

Last Verified

January 20, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/icartsh/icartsh_plugin/blob/main/icartsh-plugin/skills/sql-expert/SKILL.md -a claude-code --skill sql-expert

Installation paths:

Claude
.claude/skills/sql-expert/
Powered by add-skill CLI

Instructions

# SQL Expert Skill

PostgreSQL, MySQL, SQLite 및 SQL Server 전반에 걸친 SQL 데이터베이스의 작성, 최적화 및 관리를 위한 전문가 가이드입니다.

## 핵심 역량 (Core Capabilities)

이 SKILL을 통해 다음을 수행할 수 있습니다:

- JOIN, 서브쿼리, CTE 및 윈도우 함수를 포함한 **복잡한 SQL 쿼리 작성**
- EXPLAIN 실행 계획 및 인덱스 권장 사항을 활용한 **느린 쿼리 최적화**
- 올바른 정규화(1NF, 2NF, 3NF, BCNF)를 적용한 **데이터베이스 스키마 설계**
- 쿼리 성능을 위한 **효과적인 인덱스 생성**
- 롤백 지원을 포함한 안전한 **데이터베이스 마이그레이션 작성**
- **SQL 에러 디버깅** 및 에러 메시지 해석
- 적절한 격리 수준(isolation levels)을 적용한 **트랜잭션 처리**
- **JSON/JSONB** 데이터 타입 활용
- 테스트를 위한 **샘플 데이터 생성**
- **데이터베이스 다이얼렉트 간 변환** (PostgreSQL ↔ MySQL ↔ SQLite)

---

## 지원하는 데이터베이스 시스템 (Supported Database Systems)

### PostgreSQL
**적합한 사례**: 복잡한 쿼리, JSON 데이터, 고급 기능, ACID 준수

```bash
pip install psycopg2-binary sqlalchemy
```

### MySQL/MariaDB
**적합한 사례**: 웹 애플리케이션, WordPress, 읽기 비중이 높은 워크로드

```bash
pip install mysql-connector-python sqlalchemy
```

### SQLite
**적합한 사례**: 로컬 개발, 임베디드 데이터베이스, 테스트

```bash
pip install sqlite3  # Python 내장
```

### SQL Server
**적합한 사례**: 엔터프라이즈 애플리케이션, Windows 환경

```bash
pip install pyodbc sqlalchemy
```

---

## 쿼리 작성 (Query Writing)

### JOIN을 포함한 기본 SELECT

```sql
-- 필터링이 포함된 단순 SELECT
SELECT
    column1,
    column2,
    column3
FROM
    table_name
WHERE
    condition = 'value'
    AND another_condition > 100
ORDER BY
    column1 DESC
LIMIT 10;

-- INNER JOIN
SELECT
    users.name,
    orders.order_date,
    orders.total_amount
FROM
    users
INNER JOIN
    orders ON users.id = orders.user_id
WHERE
    orders.status = 'completed';

-- LEFT JOIN (주문이 없는 사용자를 포함하여 모두 조회)
SELECT
    users.name,
    COUNT(orders.id) as order_count,
    COALESCE(SUM(orders.total_amount), 0) as total_spent
FROM
    users
LEFT JOIN
    orders ON users.id = orders.user_id
GROUP BY
    users.id, users.name;
```

### 서브쿼리 및 CTE (Common Table Expression)

```sql
-- WHERE 절의 서브쿼리
SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

-- CTE (가독성 향상을 위해 권장)
WITH high_value_customers AS (
    SELECT
        user_id,
        SUM(tot

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
10764 chars