저번 supabase를 사용해 프로젝트를 진행하면서 SQL지식이 앞으로 개인프로젝트할 때도 사용되겠구나 하는 느낌을 느꼈다.
더불어 4차 프로젝트 또한 백엔드 부트캠프 수강생들과 협업을 한다고하니,
내가 어느정도는 알고 있어야 소통이 수월하겠구나도 느껴져 근처 교보문고에서 책을 사 조금씩 공부할 생각이다.
---
🌲SQL
DB에 관한 깊은지식에 대해서는 나도 잘 모르지만 책에서 설명해준 바로는 데이터라는 기록정보를 모아둔 창구이다
DB에도 관계형 DB, 계층형 DB, 객체지향 DB, XML DB 가 있는데.
오늘부터 공부할 SQL은 관계형 DB로 열과 행이 있는 2차원 테이블을 중심으로 설계된 데이터 베이스이다
테이블의 열은 한 종류의 자료형 타입만 가질 수 있고 행에서는 각 항목의 개별 값이 저장되어 있다.
---
✔️SQL 작성관습
자바스크립트 코드를 작성할때도 camelCase를 사용하는것, 들여쓰기 하는 것 처럼 몇 가지 관습이 있었는데,
SQL데이터를 적을 때도 가독성을 위한 관습과 약간의 특징을 정리해 보았다.
- 대문자와 소문자를 구별하지 않는다.
- SQL문은 한 줄 또는 여러줄로 작성 가능하다. 내용이 달라지면 가독성을 위해 줄을 나누는 편이다
- 코드수준의 들여쓰기를 사용한다.
- 명령어를 대문자로 작성하고 나머지는 소문자로 작성한다
---
🔍SELECT
실습에 사용된 툴과 버전
1. oracle : Oracle Database 11g Express Edition
2. Oracle SQL Developer
SELECT문을 사용하면 DB에 있는 데이터를 조회할 수 있다
// SELECT문 문법 []는 옵션입니다.
SELECT Column명 [as Alias]
FROM Table명;

SELECT 옆에 *을 붙이면 모든 column을 조회한다는 뜻이 된다.
employees테이블의 모든 column을 조회가 가능한 모습이다.
그런데 항상 전체 열을 조회할 수 없으니 이번엔 SELECT문 옆에 Column명을 명시해주어
해당 column만 조회 할 수 있게 사용했다.
이때, 단 한개의 column만 조회 가능한 것이 아니라 조회 할 column명을 적는대로 조회할 수 있다.

정렬
SQL에서는 데이터를 불러오고 정렬도 할 수 있는데 정렬이 가능하게 만들어주는 명령어는 ORDER BY 라는것이 있다.
오름차순 , 내림차순을 정해서 정렬이 가능하다.
ORDER BY column명 [ASC or DESC]
// ASC == 오름차순
// DESC == 내림차순
이제 배운것을 토대로 사원들의 급여를 내림차순으로 정렬해 보았다.

해당 명령어를 통해 steven King이라는 사람이 가장 많은 급여를 받고있음을 조회할 수 있었다.
중복값 제거
DISTINCT라는 명령어를 사용해 중복값을 제거할 수 있다.
조금 생소한 단어여서 파파고에서 찾아봤는데 '분명한' 이라는 뜻을 가지고 있다.
내 이름이 비슷하게 들리는게 많아서 이름을 바꾸면 좋겠다는 생각이 든적이 있었는데,
그 때의 기억을 되짚어 분명하게 중복시키지않고 하나만 있다는 뜻으로 기억해 두려고한다.~
DISTINCT는 SELECT옆에서 사용된다.
SELECT DISTINCT column명
FROM table명;

테이블 내의 전체 employee 수가 107명인데 DISTINCT로 19개의 job_id만 가져올 수 있었다.
Alias
타입 스크립트처럼 SQL의 column명에도 별칭을 지어줄 수 있는데.
SELECT column명 AS alias 방식으로 지어줄 수 있다.
이때 , AS는 생략이 가능하다.

연결연산자
연결연산자인 ||는 column과 또 다른 column을 연결해 하나의 column으로 만들어 줄 수 있다.
사용은 역시 SELECT문 옆에서 가능하고 문자 또한 이어줄 수 있다.
[column]||[column] or [column]||'[문자]'
이번엔 사원의 풀네임과 이메일을 연결연산자를 사용해 만들어 주도록 해보겠다.

column명이 연결연산자로 연결될때는 first_name||last_name이런식으로 나오는게 보기싫어서 별칭까지 만들어 주었다.
그리고 위 스샷에서 보다시피 문자일때는 작은따음표를 붙여주어야한다
산술연산
산술연산자는 + - / * 가 사용가능하다.
표현식에는 column명, 날짜, 숫자등을 포함할 수 있다
다른 명령어는 없고 그냥 연산자만 붙이면 산술이 된다.
여기서는 column명을 사용해 직원들의 임금계산을 해보도록한다.

---
supabase와 다르게 오라클을 사용한 SQL에서는 from보다 select가 위에 오는것이 아직 어색하다.
아직까지는 그래도 익숙한 개념들과 어렵지 않은 명령어가 나오다보니 CLI로하는 엑셀느낌이들긴하는데
이것도 나중되면 어려워질테니 조금씩이지만 꾸준히 공부해봐야겠다.
'Computer Science' 카테고리의 다른 글
| [CS] 자바스크립트로 이해하는 객체 지향과 함수형 프로그래밍 (0) | 2025.11.07 |
|---|---|
| [CS] 디바운스와 쓰로틀 (0) | 2025.07.11 |
| [CS] 선언형 프로그래밍 vs 명령형 프로그래밍 (1) | 2025.07.10 |
| [CS] 해시 테이블은 뭘까 (1) | 2025.07.03 |
| [CS] 보조기억장치와 GPU (1) | 2025.06.08 |