[22일 차] 데이터베이스 활용 (Ch03)

2025. 2. 25. 15:51·LG 유플러스 유레카/데이터베이스 활용

25/02/25 (화)

오늘은 새로운 수

업 데이터베이스 활용입니다!

알고리즘 정말 재밌었는데.. 아쉽습니다..

그리고 새로운 조가 정해졌습니다.

어색하지만 금방 친해지겠죠


 

1.  강의

CH03 SQL 기초

1.1) SQL 학습을 위한 준비

  • DB(데이터베이스) + 백엔드(자바) + 프론트엔드(HTML, CSS, JS)
  • 자바 백엔드 : 주로 Spring 프레임워크 사용
  • DB : 대표적으로 Oracle, MySQL, IBM DB2, MS SQL, Tibero(국내) 등
  •  백엔드 개발에서 DB/SQL이 차지하는 비중이 매우 크고 중요함

 

DBMS와 DB의 차이

  • DB(Database) : 데이터의 저장소
  • DBMS(Database Management System) : DB 서비스를 관리해주는 시스템
    • 권한 관리, 다중 클라이언트 접속 제어, 안정적 운영 지원 등의 기능 제공
    • MySQL Workbench에서 "스키마"는 DB를 의미함 

 

SQL의 역사

  • 1970년대 후반 IBM에서 SEQUEL 시스템으로 시작
  • 처음에는 국방, 과학 등 특정 분야의 데이터 관리용으로 개발됨
  • 초기에는 메인프레임에서 터미널로 접속하여 사용
  • PC와 인터넷의 발달로 DBMS가 일반화되면서 프로그래밍 언어와 연동 필요성 증가
  • JDBC(Java)와 ODBC(Microsoft)를 통한 연동 표준화


관계형 DB와 NoSQL 비교

관계형 DB(SQL)

  • 엄격한 데이터 무결성 관리, 정형화된 데이터 저장
  • 중요한 트랜잭션, 은행 등 금융 데이터에 적합

 

NoSQL

  • 대용량 데이터 빠른 처리, 유연한 구조
  • 통신사 로그, 천체 관측 데이터 등 대용량 데이터 처리에 적합

 

1.2) SQL 개요

  • SQL (Structure Query Language) : 데이터에 대한 질의 언어
  • DDL (Data Definition Language) : CREATE, ALTER, DROP
  • DML (Data Manipulation Language) : SELECT, INSERT, DELETE, UPDATE (CRUD 해당)
  • DCL (Data Control Language) : GRANT, REVOKE
  • DBA (Database Administrator) : 데이터베이스 설치, 관리, 유지하는 업무를 담당하는 사람

  • SELECT :  질의 결과 추출되는 속성 리스트 열거
  • FROM : 질의에 어느 테이블이 사용되는지 열거
  • WHERE : 질의의 조건 작성
  • CREATE SCHEMA "name";
  • USE "name";

1.3) 데이터 조작어 - 검색

1. SELECT 문

SELECT/FROM

SELECT bookname, price
FROM Book;

 

WHERE 조건

비교 =, <>, <, <=, >, >=
범위 BETWEEN
집합 IN, NOT IN
패턴 LIKE
NULL IS NULL, IS NOT NULL
복합조건 AND, OR, NOT

 


실습 코드

select *  from book; -- 모든 컬럼을 만든 순서대로
select price, bookname, bookid, publisher from book; -- 모든 컬럼을 순서를 다르게
select bookname, price from book; -- 일부 컬럼
select publisher from book; -- 모든 출판사 ( 중복 포함 )
select distinct publisher from book; -- 모든 출판사 ( 중복 제거 )
-- where
select * from book where price =7000; -- 모든 row 중 where 조건에 맞는 row 만 추출
select * from book where price >20000; -- 모든 row 중 where 조건에 맞는 row 만 추출
select * from book where price !=7000; -- 모든 row 중 where 조건에 맞는 row 만 추출 ( <>, != : 다른 조건 )
select * from book where bookid between 5 and 7;
select * from book where price between 10000 and 20000; -- 경계선 포함
select * from book where price >= 10000 and price <= 20000; -- 경계선 포함
select *
  from book
 where publisher = '굿스포츠' or  publisher = '대한미디어';
 
select *
  from book
 where publisher in (  '굿스포츠' ,'대한미디어' );  -- publisher 가 in 다음의 집합에 포함되는 것 추출 (권장)
 
select *
  from book
 where publisher not in (  '굿스포츠' ,'대한미디어' );  -- publisher 가 in 다음의 집합에 포함되지 않는 것 추출 (권장)
 
select *
  from book
 where publisher != '굿스포츠' and publisher != '대한미디어'; 
 
-- like
select * from book where bookname like '축구의 역사';  -- wildcard 가 없으므로 = 과 동일한 비교
select * from book where bookname like '%축구%';  -- 비교 컬럼에 축구 두 글자가 포함되면 된다.
select * from book where bookname like '골프%';  -- 비교 컬럼에 축구 두 글자가 포함되어야 하고 반드시 골프로 시작.
select * from book where bookname like '%기술';  -- 비교 컬럼에 축구 두 글자가 포함되어야 하고 반드시 기술로 종료.
-- 복합 조건
select * from book where bookname like '%축구%' and price >= 20000;
select * from book where price <=10000 or price >=  30000;  -- 복합 조건이 3개 이상이면서 and 와 or 가 섞여 있는 경우 가독성을 위해서라도 () 를 활용
-- order by 항상 맨 마지막에 수행되도록 query 작성 ( 결과물을 만드는 중간에 order by 포함되면 성능 하락의 원인이 된다. )
select * from book order by bookname; -- asc, desc (생략하면 asc)
select * from book order by bookname desc; -- 내림차순
select * from book order by price desc;
select * from book order by price desc, bookname desc;

 

2.  실습

1) 프로그래머스

모든 레코드 조회하기 (SELECT, ORDER BY)

https://school.programmers.co.kr/learn/courses/30/lessons/59034 (정답)

 

12세 이하인 여자 환자 목록 출력하기 (SELECT, WHERE, ORDER BY) https://school.programmers.co.kr/learn/courses/30/lessons/132201 (정답)

 

흉부외과 또는 일반외과 의사 목록 출력하기 (SELECT , WHERE, ORDER BY) https://school.programmers.co.kr/learn/courses/30/lessons/132203 (정답)

 

조건에 맞는 도서 리스트 출력하기 (SELECT, DATE_FORMAT, WHERE, ORDER BY) https://school.programmers.co.kr/learn/courses/30/lessons/144853 (정답)

 

3.  마무리

3.1) WorkShop

 

 

3.2) 더 공부할 것

 

'LG 유플러스 유레카 > 데이터베이스 활용' 카테고리의 다른 글

[25일 차] 데이터베이스 활용(Ch04)  (0) 2025.02.28
[24일 차] 데이터베이스 활용 (Ch03, Ch04)  (0) 2025.02.27
[23일 차] 데이터베이스 활용 (Ch03)  (0) 2025.02.26
'LG 유플러스 유레카/데이터베이스 활용' 카테고리의 다른 글
  • [26일 차] 데이터베이스 활용 (Ch06, Ch07)
  • [25일 차] 데이터베이스 활용(Ch04)
  • [24일 차] 데이터베이스 활용 (Ch03, Ch04)
  • [23일 차] 데이터베이스 활용 (Ch03)
문태신
문태신
꾸준함은 모든 것을 이긴다.
  • 문태신
    별 될 시간
    문태신

  • 전체
    오늘
    어제
    • 전체 글 (126) N
      • LG 유플러스 유레카 (112) N
        • 강의 정리 (1)
        • 소프트웨어 엔지니어링 (8)
        • 알고리즘 (13)
        • 데이터베이스 활용 (5)
        • 미니 프로젝트 1 (3)
        • 데이터베이스 심화 (5)
        • 프론트엔드 이해 (3)
        • 깃허브 특강 (2)
        • 취업 특강 (2)
        • 스프링 프레임워크 (17)
        • REST API (10)
        • 미니 프로젝트 2 (7)
        • 프로젝트 기획 분석 설계 (5)
        • 애자일 방법론 (5)
        • 종합 프로젝트 (15)
        • 클라우드 특강 (3)
        • 최종 융합 프로젝트 (7) N
        • 회고 (1)
      • 내 맘대로 기술 공부 (1)
      • 알고리즘 공부 (5)
      • 자바 공부 (3)
      • 자격증 (2)
      • 디자인 (2)
      • 감상문 (1)
        • 책 (0)
        • 영화 (1)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
문태신
[22일 차] 데이터베이스 활용 (Ch03)
상단으로

티스토리툴바