개발로 자기계발
728x90

클러스터

여러 개의 노드로 구성된 하나의 분산 시스템을 의미하며, 각 노드에는 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스가 있어 데이터 처리와 분석 작업을 병렬로 수행할 수 있다.

 

관계형 데이터베이스 사용자 / 세션

1) 사용자 ID(User ID):

- 사용자 ID는 데이터베이스에 저장된 각 사용자를 고유하게 식별하는 식별자(일반적으로 사용자 계정, 프로필, 인증 정보와 연관)

- 사용자 ID는 데이터베이스의 다른 테이블에도 참조될 수 있으며, 이를 통해 사용자 관련 데이터를 연결하고 추적할 수 있다.

2) 세션 ID(Session ID):

- 세션 ID는 사용자가 웹 사이트나 애플리케이션을 사용하는 동안 지속되는 인터랙션을 식별하기 위한 고유한 식별자

- 사용자가 로그인하거나 웹 사이트를 방문할 때, 서버는 세션 ID를 생성하고 이를 클라이언트에 전달한다.

- 보통 세션의 경우 세션을 만들어낸 접점(경유지)을 채널이란 이름으로 기록해 둔다.
- 세션 ID는 쿠키, URL 매개 변수, 또는 웹 스토리지와 같은 클라이언트 측 저장소에 저장된다.

- 사용자가 애플리케이션 내에서 이동할 때 서버에 전달되어 인증 및 인가를 유지할 수 있게 한다.

- 세션 ID는 사용자가 로그아웃하거나 일정 시간이 경과하면 만료된다.


간단하게 말하면, 사용자 ID는 사용자의 고유한 신원을 나타내는 반면, 세션 ID는 사용자가 웹 사이트나 애플리케이션에서 활동하는 동안의 인터랙션을 나타낸다.

* 인터렉션: 둘 이상의 물체나 대상이 서로 영향을 주고받는 일종의 행동

 

SQL 소개

관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 생성, 조회, 수정 및 삭제하는 데 사용되는 프로그래밍 언어

 

1) DDL(Data Definition Language)

데이터베이스의 구조와 관련된 객체들을 정의, 변경, 삭제하는 데 사용된다.

 

주요 명령어


- CREATE
데이터베이스 객체를 생성하는 데 사용되며 예를 들어, 테이블, 인덱스, 뷰 등을 생성할 수 있다.
예시: CREATE TABLE users (id INT primary key, name VARCHAR(50), email VARCHAR(100));

- CTAS
데이터베이스 객체를 생성과 동시에 데이터를 가져와서 채우는 것에 사용되며 예를 들어, 테이블 생성과 삽입을 동시에 할 수 있다.
예시: CREATE TABLE users AS SELECT * FROM user_info WHERE name = "잠봉";

- ALTER
기존 데이터베이스 객체의 구조를 변경하는 데 사용되며 예를 들어, 테이블에 새로운 열을 추가하거나, 기존 열의 데이터 형식을 변경할 수 있다.
예시: ALTER TABLE users ADD COLUMN age INT;(새로운 칼럼 추가)
예시: ALTER TABLE users RENAME age to 잠봉;(기존 컬럼 이름 변경)
예시: ALTER TABLE users DROP COLLUMN age;(기존 컬럼 제거)
예시: ALTER TABLE users RENAME to 잠봉;(기존 테이블 이름 변경)

- DROP
데이터베이스 객체를 삭제하는 데 사용되며 예를 들어, 테이블, 인덱스, 뷰 등을 삭제할 수 있다.
예시: DROP TABLE users;

- DROP and IF EXISTS
데이터베이스 객체가 있다면 삭제하는 데 사용되며 예를 들어, 테이블을 조건에 따라 삭제할 수 있다.
예시: DROP TABLE IF EXISTS users;

 

2) DML

데이터베이스에 저장된 데이터를 효과적으로 읽고, 쓰고, 수정하고 삭제할 수 있다.

 

주요 명령어


- SELECT
데이터베이스에서 데이터를 검색하고 조회하는 데 사용
예시: SELECT id, name, email FROM users WHERE age > 30;
예시: SELECT * FROM users group by age;
예시: SELECT * FROM users order by age desc or asc;

- INSERT
데이터베이스에 새로운 데이터를 추가하는 데 사용
예시: INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');

- UPDATE
데이터베이스에 저장된 기존 데이터를 수정하는 데 사용
예시: UPDATE users SET email = 'john.doe@example.com' WHERE id = 1;

- DELETE
데이터베이스에서 데이터를 삭제하는 데 사용
예시: DELETE FROM users WHERE id = 1;

 

추가 구문


- CASE WHEN
조건부 로직을 사용할 때 사용되는 구문
예시:
SELECT name, age,
    CASE
        WHEN age < 18 THEN 'Under 18'
        WHEN age >= 18 AND age <= 24 THEN '18-24'
        WHEN age >= 25 AND age <= 34 THEN '25-34'
        ELSE '35 and over'
    END AS age_group
FROM users;


- COUNT
테이블의 행을 세는 함수
예시: SELECT count(1) or count(0) FROM users;
예시: SELECT count(NULL) FROM users;

- LEN
문자열의 길이를 반환하는 함수
예시: SELECT LEN('Hello, World!');

- UPPER
문자열의 모든 문자를 대문자로 변환하는 함수
예시: SELECT UPPER('Hello, World!');

- LOWER
문자열의 모든 문자를 소문자로 변환하는 함수
예시: SELECT LOWER('Hello, World!');

- LEFT
문자열의 왼쪽 부분에서 지정된 개수만큼의 문자를 반환하는 함수
예시: SELECT LEFT('Hello, World!', 5);

- LPAD
문자열의 왼쪽에 지정된 문자를 추가하여 총 길이가 지정된 길이와 같도록 만드는 함수
(추가할 문자, 전체 자릿수, 추가할 문자 이상일 때 추가 되는 값)
예시: SELECT LPAD('123', 6, '0');

- RPAD
문자열의 오른쪽에 지정된 문자를 추가하여 총 길이가 지정된 길이와 같도록 만드는 함수
예시: SELECT RPAD('123', 6, '0');

- SUBSTRING
문자열에서 지정된 시작 위치와 길이에 따른 부분 문자열을 반환하는 함수
예시: SELECT SUBSTRING('Hello, World!', 1, 5);

- REPLACE: 문자열에서 지정된 부분 문자열을 다른 문자열로 대체하는 함수입니다.
예시: SELECT REPLACE('Hello, World!', 'World', 'SQL');

 

3) NULL

NULL은 데이터베이스에서 값이 없거나 알 수 없는 값

 

주요 구문


- IS NULL
필드가 NULL인지 확인하는 연산자
예시: SELECT * FROM users WHERE phone_number IS NULL;

- IS NOT NULL
필드가 NULL이 아닌지 확인하는 연산자
예시: SELECT * FROM users WHERE phone_number IS NOT NULL;

- COALESCE
여러 값 중 첫 번째 NULL이 아닌 값을 반환하는 함수
예시: SELECT COALESCE(phone_number, email) AS contact_info FROM users;

- NULLIF
두 값이 동일한 경우 NULL을 반환하고, 그렇지 않은 경우 첫 번째 값을 반환하는 함수
예시: SELECT NULLIF(age, 0) AS corrected_age FROM users;

 

4) 시간 변환

날짜 및 시간 데이터를 처리하고 변환하는 데 사용되는 SQL 구문

 

주요 구문


- CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP
현재 날짜, 시간, 날짜 및 시간 값을 반환하는 함수
예시: SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;

- EXTRACT
날짜 또는 시간 값에서 지정된 필드(년, 월, 일, 시간, 분, 초 등)를 추출하는 함수
예시: SELECT EXTRACT(YEAR FROM '2021-09-01');

- DATE_ADD, DATE_SUB
날짜에 지정된 시간 단위(일, 월, 년 등)를 더하거나 빼는 함수
SELECT DATE_ADD('2021-09-01', INTERVAL 1 MONTH);
SELECT DATE_SUB('2021-09-01', INTERVAL 1 YEAR);​

 


- DATEDIFF: 두 날짜 간의 차이를 지정된 시간 단위로 반환하는 함수
예시: SELECT DATEDIFF(day, '2021-01-01', '2021-12-31');

- DATE_FORMAT
날짜 및 시간 값을 지정된 형식의 문자열로 변환하는 함수
예시: SELECT DATE_FORMAT('2021-09-01 12:34:56', '%Y-%m-%d %H:%i:%s');

 

 

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)