김데이의 개발공부

[ TIL ] Day 53 - SQL 데이터 분석 기초 문법 : 데이터 조회 / 데이터 정렬 본문

코드잇 Node.js(BE) 부트 캠프/TIL (Today I Learn) 📑

[ TIL ] Day 53 - SQL 데이터 분석 기초 문법 : 데이터 조회 / 데이터 정렬

theday365 2025. 12. 9. 19:10
반응형

🗓️ 수업 일자 : 2025.12.9

✨ 오늘의 수업 평가 :  [ GOOD ]  가볍게 산책하듯 배움 🏞️☁️

 

어제 validation 파일 만들때 헤멘 덕분(?)인지 

오늘은 validation 추가 작업 하면서, 오히려 이런 저런 아이디어들이 떠올라 

재미있고 빠르게 작업이 끝났다! 

Product / Article / Comment / User / RelateDB 에 대해 작업해야 하는데

Product 파트 하나밖에 못 끝냈지만, 다른 파트에 적용 할 수 있게 구조를 정리해서 

다른 파트들은 예외인 부분만 일부 적용하면 금방 할 수 있을 것 같다! 😉👍🚀

 

-------------------

 

SQL 파트는 기초 파트만 배우기도 했고, 이미 API 작업 하면서 조회 할 때 썻던 방식들(?)이 많이 보여서

재미있게 따라갈 수 있었다~ 

터미널 창에서 작업하니까 뭔가 멋져보임 🤩🪄 

 

 

👩‍💻 [개인 프로젝트] 오늘 작업 내용 💻
- Validation 적용 작업 (ing)

 

📝  오늘 배운 내용  

- SQL 기초 문법

 


1. SQL 기초 문법

SQL 문법의 특징

  • 하나의 테이블로 구분되고 그 안에 칼럼과 로우 요소로 구성
  • 대소문자 구분 없이 사용이 가능하지만, SQL 문법은 주로 대문자로 표기함
  • 쿼리 문 안에서 줄바꿈(엔터)는 자유롭게 사용 가능함
  • 모든 쿼리의 끝에는 세미콜론으로 문장 끝맽음 해 주어야 함
  • 주석은 '--' 를 사용하여 작성
SELECT id, name, price FROM products;

SELECT
  id,
  name,
  email,
  password,
  profile
FROM users;

-- 주석 사용 방식

끝맺음 ; 를 쓰지 않으면 명령어 창이 -# 으로 계속 이어진다
끝맺음 ; 를 쓰지 않으면 명령어 창이 -# 으로 계속 이어진다

 

 

psql 데이터베이스 명령어 (Postgres의 전용 명령어들)

( PostgreSQL - SQL 데이터 베이스 중 한 종류 / psql - postgreSQL 의 클라이언트 역할)

1) psql postgresql://아이디:비밀번호@localhost:5432/데이터베이스이름 
    또는 psql -U 아이디 -h localhost -p 5432 -d 데이터베이스

    : PostgreSQL의 클라이언트 psql접속하기

 

2)  \l  : 내 계정에서 만들어 사용 중인 데이터베이스 리스트 확인 (list)

명령어 \l : 내 계정에서 사용중인 데이터 베이스 확인
명령어 \l : 내 계정에서 사용중인 데이터 베이스 확인

 

 

3)  \d  : 현재 접속한 데이터베이스의 하위 테이블 목록 확인
     \d 테이블_이름 : 해당 테이블에 대한 필드 / 관계형 등 정보 확인
     \dT  : enum 테이블 확인하기 

     \dT+  : enum 테이블의 세부 항목까지 확인 가능

명령어 \d : 현재 접속한 데이터베이스의 하위 테이블 목록 확인
명령어 \d  : 현재 접속한 데이터베이스의 하위 테이블 목록 확인
명령어 \d 테이블_이름 : 해당 테이블에 대한 필드 / 관계형 등 정보 확인
명령어  \d 테이블_이름  : 해당  테이블에 대한 필드 / 관계형 등 정보 확인

 

4)  \c 데이터베이스이름 : 내 계정에 있는 데이터베이스 중 하나의 데이터베이스로 연결 (connect)

명령어 \c 데이터베이스이름 : 내 계정에 있는 데이터베이스 중 하나의 데이터베이스로 연결 (connect)
명령어 \c 데이터베이스이름 : 내 계정에 있는 데이터베이스 중 하나의 데이터베이스로 연결 (connect)

 

5)  \i SQL파일주소/파일명 : SQL 파일 가져와서 실행하기

명령어 \i SQL파일주소/파일명 : SQL 파일 가져와서 실행하기
명령어  \i SQL파일주소/파일명 : SQL 파일 가져와서 실행하기

 

 

6)  drop table 테이블명  : 만들어 둔 테이블을 삭제

명령어 drop table 테이블명 : 만들어 둔 테이블을 삭제
명령어  drop table 테이블명   : 만들어 둔 테이블을 삭제

 

 

7)  exit  : 데이터 베이스 나가기

명령어 exit : 데이터 베이스 나가기
명령어 exit   : 데이터 베이스 나가기

 

 

 

SQL 기본 명령어 

1) 신규 데이터 베이스 생성 명령어 

CREATE DATABASE 데이터베이스이름;

CREATE DATABASE new_database; 
-- 명칭은 underscore 기법으로 작성

 

2) 데이터 조회 명령어 

-- 간단한 조회 작업
SELECT 조회할_컬럼_또는_값 FROM 테이블명; 

SELECT id, name FROM products;

-- 특정 테이블의 전체 정보 조회 
SELECT * FROM 테이블명; 

SELECT * FROM products;

 

-- Where를 사용해 특정 조건 설정하기 
SELECT * FROM 테이블명 WHERE 조건 작성; 

SELECT * FROM products WHERE price > 10000;


-- 1) AND / OR : 조건 연결
SELECT * FROM products WHERE price > 10000 AND price <= 19000;
SELECT * FROM products WHERE category = "toy" OR category = "child";
-- 잘못 된 문법 : SELECT * FROM products WHERE category = "toy" OR "child"; 실행 안됨

-- 2) NOT : 예외 조건 설정
SELECT * FROM products WHERE NOT price > 20000;

-- 3) IS NULL / IS NOT NULL : NULL 값에 대한 조건 설정
SELECT * FROM products WHERE description IS NULL;
SELECT * FROM products WHERE description IS NOT NULL;

-- 4) IN : 여러 값 중 일치하는 값 가져오기 
-- 만약 조건이 아래와 같이 4개여도, 부합하는 데이터가 2개 밖에 없다면 2개만 출력
SELECT * FROM products WHERE price IN (1000, 2000, 3000, 4000);

-- 5) LIKE / ILIKE 명령어에 %, _ 를 사용해 문자열 조건 작성 
-- LIKE : 대소문자를 구문하여 문자열을 찾음
-- ILIKE : 대소문자 구분 없이 문자열을 찾음 
-- % : 1개 이상의 문자열을 모두 생략
-- _ : 1자리의 문자열 생략

SELECT * FROM products WHERE originAdress LIKE '%,Korea'; 
-- Seoul,Korea / Incheon,Korea 포함 
-- gyeonggi,korea / jeju,korea 미포함

SELECT * FROM products WHERE originAdress ILIKE '%,Korea'; 
-- Seoul,Korea / Incheon,Korea / gyeonggi,korea / jeju,korea 모두 포함

SELECT * FROM products WHERE tags LIKE '겨울_'; 
-- 겨울용, 겨울철 포함 
-- 겨울바지, 겨울점퍼 미포함 => '겨울_ _'로 조회 가능

-- 6) BETWEEN : 두 개의 값 사이를 가져올 때 사용하는 명령어
[기본] SELECT * FROM products WHERE price > 10000 AND price <= 19000;
[BETWEEN] SELECT * FROM products WHERE price BETWEEN 10000 AND 19000;

 

 

3) 데이터 조회 정렬값 설정

-- ORDER BY 로 정렬 순서 지정하기 
SELECT * FROM 테이블명 ORDER BY 조건 작성; 

-- 기본값 : 오름차순
SELECT * FROM products ORDER BY price; 

-- ASC : 내림차순 / DESC : 오름차순
SELECT * FROM products ORDER BY price ASC; 
SELECT * FROM products ORDER BY price DESC; 

-- 중복된 값이 있어 원하는 대로 순서가 나오지 않을 수 있어서
-- 마지막 값으로는 절대 중복되지 않을 값으로 정리 
SELECT * FROM products ORDER BY price DESC, id DESC;


-- LIMIT : 가지고 올 갯수 설정 
-- OFFSET : 몇개를 건너뛰고 가져올 지 설정 
SELECT * FROM products ORDER BY price ASC LIMIT 10 OFFSET 2; 
-- 가격을 내림차순(큰 숫자 부터) 한 뒤, 가장 큰 2개는 제외하고 그 다음 10개 목록 조회

 

-- DISTINCT : 고유한 값을 조회 

SELECT category FROM products;  
-- products 테이블의 모든 레코드에서 category 값 조회 결과

--   category
--   --------
--   doll
--   toy 
--   toy 
--   child
--   etc 
--   toy 
--   doll


SELECT DISTINCT category FROM products;  
-- 고유한 category 값만 조회, 중복 된 값은 생략 됨

--   category
--   --------
--   doll
--   toy 
--   child
--   etc

 

 


 

📃 내일은 뭘 배울까 🤔

- SQL 데이터 분석 심화 문법

 

반응형