내배캠_Data_3기/TIL

240701_라이브세션 복습(2), SQL, UNION, JOIN, 파이썬

케일라(Data_3기) 2024. 7. 1. 20:30

UNION 함수

UNION 함수는 여러 개의 SELECT 문의 결과를 하나의 테이블로 연결할 때 사용

# union/union all 기본구조
select name, goods_nm, pay_date #컬럼 순서가 같고, 그 형식이 같아야 함 
from 테이블명1

union (all) #수직결합 명시

select name, goods_nm, pay_date
from 테이블명 2

 

 

JOIN 함수

조인의 첫번째 단계: 공통컬럼 찾기

조인의 두번째 단계: 적절한 조인 방식 찾기

# INNER JOIN 작성법(기초편)
select 컬럼1, 컬럼2... 
from 테이블1 as a
inner join 테이블2 as b
on a.공통컬럼=b.공통컬럼
# LEFT JOIN 작성법(기초편)
select 컬럼1, 컬럼2... 
from 테이블1 as 테이블명1  -- left에 위치한 테이블. (기준)
left join 테이블2 as 테이블명2 -- right에 위치한 테이블.  
on a.공통컬럼=b.공통컬럼

 

UNION 함수와 JOIN 함수

  UNION JOIN
결합방식 수직결합(세로로 결합) 수평결합(가로로 결합)
특징 각 SELECT 문은 같은 수의 열을 가져야 한다.
각 SELECT 문의 동일한 순서를 가져야 한다.
각 테이블은 결합을 위해 공통컬럼을 반드시 1개 이상 가져야 한다.
종류 SELECT 컬럼1, 컬럼2
FROM TABLE A

UNION (ALL)

SELECT 컬럼1, 컬럼2
FROM TABLE B


UNION: 결합한 결과에서 중복되는 행은 하나만 표시

UNION ALL:
결합한 결과에서 중복되는 행을 모두 표시
JOIN: TABLE A INNER JOIN TABLE B ON
A.공통컬럼=B.공통컬럼

두 테이블에서 일치하는 값을 가진 행을 반환

LEFT JOIN: TABLE A LEFT JOIN TABLE B ON
A.공통컬럼=B.공통컬럼

왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하는 항목이 없으면 오른쪽 테이블의 열에 대해 NULL 값이 출력됩니다.


RIGHT JOIN: TABLE A RIGHT JOIN TABLE B ON A.공통컬럼=B.공통컬럼
오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다. 일치하는 항목이 없으면 왼쪽 테이블의 열에 대해 NULL 값이 출력됩니다.

FULL OUTER JOIN
LEFT JOIN + UNION + RIGHT JOIN


LEFT, RIGHT 의 모든 데이터를 출력합니다. 각각의 빈 값은 NULL 로 반환됩니다

 

 

DML(Data Manipulation Language) 데이터 조작어

  • 정의된 DB에 입력된 레코드를 조회, 추가, 수정, 삭제하는 기능을 하는 언어.
  • Select: 조회
  • Insert: 테이블에 새로운 데이터를 입력할 때 사용
  • Update: 테이블에 있는 데이터를 수정할 때 사용
  • Delete: 테이블에 있는 데이터를 삭제할 때 사용
-- 특정 컬럼에만 값을 넣을 경우
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

-- 모든 컬럼에 값을 넣을 경우 column 생략 가능.
-- 테이블에 있는 컬럼의 순서와 같은 순서로 값을 넣어주어야함. 
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE FROM table_name WHERE condition;

 

 


강의 : 파이썬 문법 기초 - 1주차(1, 2, 3, 4)

 

연산자

제곱 : ** (a의 b제곱=a**b)

몫: //

나머지 : %

 

문자열표시: 작은 따옴표' ', 큰 따옴표" ", str()

문자열과 정수를 더하면 에러

문자열의 길이는 len() 함수를 써서 구할 수 있다

 

인덱싱: 문자열은 '문자들의 모임'이기 때문에 그 일부를 따로 떼어 부르는 방법이 있다. 한 글자 씩 부를 때는 몇 번째인지 '인덱스'를 넣어 불러서 인덱싱

f="abcdefghijklmnopqrstuvwxyz"
f[1]   # b 파이썬은 숫자를 0부터 셉니다

 

슬라이싱 : 문자열의 일부를 잘라낼 때는 슬라이싱

f[4:15]  # efghijklmno           f[4]부터 f[15] 전까지, 총 15-4=11개!

f[8:]    # ijklmnopqrstuvwxyz    f[8]부터 끝까지, 앞의 8개 빼고!
f[:7]    # abcdefg               시작부터 f[7] 전까지, 앞의 7개!

f[:]     # abcdefghijklmnopqrstuvwxyz  처음부터 끝까지

 

split('문자열')  : 특정 문자열로 자르고 싶을 때

myemail = 'abc@sparta.co'

domain = myemail.split('@')[1].split('.')[0]
print(domain)