- 그리디
- DB
- 완전검색
- 트리
- stack
- Vue
- M:N
- migrations
- regexp
- 뷰
- outer join
- drf
- ORM
- update
- delete
- 이진트리
- 백트래킹
- N:1
- count
- distinct
- create
- 스택
- 통계학
- Tree
- Article & User
- 쟝고
- SQL
- Queue
- 큐
- Django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
목록SQL (113)
데이터 분석 기술 블로그
인덱스란?"인덱스(Index)"는 데이터베이스에서 검색 속도를 향상하기 위해 사용하는 구조입니다. 책의 목차처럼 테이블의 특정 컬럼에 대해 빠르게 데이터를 찾을 수 있도록 돕습니다. 인덱스를 생성하면 데이터베이스가 해당 컬럼에 대해 정렬된 구조를 유지하여, 검색과 정렬 작업이 더 효율적으로 수행됩니다.인덱스의 개념 빠른 데이터 검색:테이블의 데이터 전체를 탐색(Full Table Scan)하지 않고, 인덱스를 통해 필요한 데이터를 빠르게 찾아냅니다.정렬된 데이터 구조:대부분의 인덱스는 B-Tree 구조를 사용하여 정렬된 상태를 유지합니다.추가 저장 공간:인덱스는 별도의 데이터 구조이므로 추가적인 저장 공간이 필요합니다.쓰기 작업의 부담:데이터를 삽입, 수정, 삭제할 때 인덱스를 갱신해야 하므로, 쓰기 성..
문제 3: 특정 날짜 이후의 거래 내역데이터셋 1: transactionstransaction_idcustomer_iddateamount11012023-01-0120021022023-03-1550031032023-02-1030041012023-04-2040051022023-05-25600 데이터셋 2: customerscustomer_idname101Alice102Bob103Charlie 문제'Alice' 고객이 거래한 가장 최근 날짜 이후에 거래한 모든 고객의 이름과 거래 내역을 출력하세요. CREATE TABLE transactions ( transaction_id INT PRIMARY KEY, customer_id INT, date DATE, amount INT);CREATE..
문제 2: 중복 데이터 필터링데이터셋: ordersorder_idcustomer_idtotal_amount110130021025003101700410320051021000 문제각 고객(customer_id)의 **가장 큰 주문 금액(total_amount)**을 출력하세요. CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, total_amount INT);INSERT INTO orders (order_id, customer_id, total_amount) VALUES(1, 101, 300),(2, 102, 500),(3, 101, 700),(4, 103, 200),(5, 102, 1000);SELECT customer_id..
문제 1: 직원 급여가 평균 이상 인 직원 찾기데이터셋: employeesidnamedepartment_idsalary1Alice101600002Bob102450003Charlie101700004David103400005Eve10155000 문제employees 테이블에서 평균 급여보다 높은 급여를 받는 직원의 이름과 급여를 출력하세요. CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(50), department_id INT, salary INT);INSERT INTO employees (id, name, department_id, salary) VALUES(1, 'Alice', 101, 60000),(2, 'Bob', 102,..
ALTER 명령어란?"ALTER"는 기존 테이블, 데이터베이스, 뷰 등의 구조를 변경할 때 사용하는 명령어입니다. 주로 테이블의 구조를 수정하기 위해 사용됩니다.ALTER 구문1. 테이블에 컬럼 추가ALTER TABLE table_nameADD column_name datatype constraint;2. 테이블의 기존 컬럼 수정ALTER TABLE table_nameMODIFY column_name new_datatype constraint;일부 DBMS(MySQL)에서는 MODIFY 대신 ALTER COLUMN을 사용.3. 테이블의 컬럼 이름 변경ALTER TABLE table_nameCHANGE old_column_name new_column_name datatype;일부 DBMS(PostgreSQ..
CREATE 명령어란?"CREATE"는 데이터베이스 객체(테이블, 데이터베이스, 뷰, 인덱스 등)를 생성할 때 사용하는 명령어입니다. 가장 자주 사용되는 것은 테이블 생성이며, 이를 통해 데이터를 저장할 구조를 정의합니다.CREATE 구문1. 데이터베이스 생성CREATE DATABASE database_name; database_name: 생성할 데이터베이스의 이름.2. 테이블 생성CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ...); table_name: 생성할 테이블의 이름.column: 테이블의 컬럼 이름.datatype: 컬럼의 데이터 타입 (예: INT, VARCHAR, DA..
DELETE 명령어란?"DELETE"는테이블에서 데이터를 삭제할 때 사용하는 명령어입니다. 특정 조건에 맞는 하나 이상의 행(row)을 삭제할 수 있으며, 조건을 지정하지 않으면 테이블의 모든 데이터를 삭제할 수 있습니다.DELETE 구문1. 특정 조건의 데이터 삭제DELETE FROM table_nameWHERE condition; table_name: 데이터를 삭제할 테이블의 이름.WHERE condition: 삭제할 행을 지정하는 조건.2. 테이블의 모든 데이터 삭제DELETE FROM table_name; 주의: WHERE 절이 없으면 테이블의 모든 행이 삭제됩니다.DELETE의 특징 행 단위 삭제:DELETE는 테이블에서 특정 조건에 맞는 행(row)을 삭제합니다.조건부 삭제:WHERE 절을 ..
UPDATE 명령어란?"UPDATE"는 테이블의 데이터를 수정할 때 사용하는 명령어입니다. 특정 조건에 맞는 하나 이상의 행(row)의 값을 업데이트할 수 있습니다.UPDATE 구문UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition; table_name: 데이터를 수정할 테이블의 이름.SET column = value: 수정할 컬럼과 새로운 값.WHERE condition: 업데이트할 행을 지정하는 조건. 조건이 없으면 테이블의 모든 행이 업데이트됩니다.UPDATE 특징 SET 절:수정할 컬럼과 새로운 값을 지정합니다.여러 개의 컬럼을 한 번에 업데이트할 수 있습니다.WHERE 절:조건을 명시하지 않으면 테이블의 모든 행..