일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dsf
- 2023년 목표
- Spark
- hackerrank
- 백준 온라인 저지
- 알고리즘
- 프로그래머스
- docker image
- delete join
- Pseudo Lab
- Airflow
- 그리디
- MySQL
- airflow webserver
- terraform
- BOT
- telegram
- Data Engineering
- Dynamic Programming
- docker container
- airflow architecture
- datacamp
- leetcode
- Python
- SQL
- 백준온라인저지
- docker
- 빅데이터를 지탱하는 기술
- 데이터 엔지니어
- data_engineer
- Today
- Total
목록SQL/SQL 공부 (4)
Lim Seunghyun Space
LeetCode 문제 중 테이블에 중복된 데이터를 삭제하는 문제가 있다. 오로지 DELETE 문만 사용해야 하며 SELECT 문을 이용할 수 없다. DELETE JOIN은 중복된 데이터나 같은 rows나 테이블에 관련된 rows들을 삭제할 때 사용한다. Syntax DELETE table_a FROM table_a JOIN table_b ON table_a.attribute_name = table_b.attribute_name WHERE condition; 데이터 조회시 사용했었던 JOIN 문법과 유사하다. Referece Problem: https://leetcode.com/problems/delete-duplicate-emails/description/ https://www.geeksforgeeks...
LeetCode의 문제 중 칼럼 내의 성별을 남자는 여자로, 여자는 남자로 변경하는 SQL을 작성하는 문제가 있었다. 문제는 별도의 임시 테이블을 생성하지 않고 UPDATE문을 이용하는 게 조건이었다. CASE-WHEN을 이용하여 간단하게 작성할 수 있지만 UPDATE Salary SET sex = CASE WHEN sex = "f" THEN "m" WHEN sex = "m" THEN "f" END; 다른 방법으로도 할 수 있을거 같아서 조사해 보았다. 다른 방법으로는 조건 검증에 사용되는 IF() 함수를 사용하는 것으로 Syntax는 IF(condition, true_value, false_value) condition이 참이면 true_value로 거짓이면 false_value를 반환한다. IF() ..

Transaction(트랜잭션) 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않게 여러 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 모두 적용하거나 모두 취소되는 ALL OR NOTHING의 개념 명령어 BEGIN COMMIT / END ROLLBACK 사용법 BEGIN; SQL 1; SQL 2; ... SQL N; COMMIT; -- AUTOCOMMIT이 TRUE인 경우 END; BEGIN으로 시작하여 SQL문을 순서대로 실행하고, 실패없이 모두 성공하면 SQL문을 모두 반영시켜주는 COMMIT을 사용하거나 AUTOCOMMIT이 TRUE로 되어 있으면 END로 트랜잭션을 종료 SQL을 실행중 하나라도 에러가 발생시 BEGIN 이전 상태로 돌아감 (ROLLBACK) Reference TRANSAC..
사용법 DELETE FROM DELETE FROM -- Table 안의 모든 Record를 삭제 DELETE FROM WHERE -- Table 안의 WHERE 조건에 해당하는 Record를 삭제 TRUNCATE TRUNCATE TABLE -- 테이블에 대한 모든 Record를 제거 공통점 테이블의 레코드를 삭제해주는 용도 차이점 DELETE FROM은 조건을 이용하여 특정 레코드들만 삭제해줄 수 있다. TRUNCATE는 DELETE FROM에 비해 처리 속도가 빠르다. TRUNCATE시 바로 테이블에 적용됨 -> 트랜잭션을 사용한다 하더라도 바로 커밋되며 롤백이 불가능하다.