2025-04-11 [18일차] - (SQL PART)

dong_c·2025년 4월 11일
post-thumbnail

수업 정리 및 보강


수업패키지

4/14 시험 안내

  • 게시판 만들기 작업 내용 중
    작업 1~ 9 까지 + 파일구성(적절한 패키지와 파일)

  • 메인메서드가 모든 기능을 가지고 있는 상태로
    Util, Article 에서 파일들이 각 패키지에 맞게 옮겨져 있는 상태로
    접근제어자도 신경써주기

  • 요구사항에서 제시되지 않은 세부 작업은 프로그램을 구현
    하기 위한 범위에서 자율적으로 작업합니다 라는 문구가 있을텐데 (시험에서)
    -> 시험에서 조건을 말하지 않아도 알아서 본인이 할 수 있어야 한다는 뜻


SQL 기초 문법 응용 & 함수

Alias(AS) - 별명을 짓는 기능이 있음

  • 편의성,효율성 , 기능성을 위해서 필요함
    (id+1처럼 변수명으로 짓기
    곤란한 애들 별명으로 바꿔서
    변수와 녹아들수 있게 해준다)
SELECT id AS `게시글번호`
		, regDATE 
        , title
        FROM article

-> 컬럼명을 id에서 별명(게시글 번호)으로 바꿔줌

  • 테이블에서도 뒤에서 쓸 수 있음(JOIN에서는 필수)
    as는 생략도 가능 -> SELECT id 게시글번호 처럼
SELECT 1 AS `금메달`
	 , 2 AS `금메달`
     , 3 AS `금메달`처럼 사용할수있음

알아두면 좋은 tips_)

  • select 는 조회를 위한 기능이지 수정을 위한 기능이 아님
    그렇기에 별명을 짓기위해 select 입력할때 헷갈리지 말기

SELECT *
    FROM article
    WHERE id IN(2, 4, 6);

-> id가 ( 2, 4, 6 )인 애들 포함해서 가져와


SELECT *
    FROM article
    WHERE id  NOT IN(2, 4, 6);

-> id가 ( 2, 4, 6 )인 빼서 가져와


ROUND() 반올림 소수점 다음애들 반올림 해줌

SELECT ROUND(1.2345); -> 1

CEIL() 소수점 올림

SELECT CEIL(0.1); -> 1

FLOOR() 소수점 버림

SELECT FLOOR(25.55); -> 25

CONCAT() 문자와 문자를 이어붙임

SELECT CONCAT(title, 'qweqwe','_asdasd')
    FROM article;  
    
    --> qweqwe_asdasd로 출력되어 나옴

SUBSTR() 문자열을 원하는 부분 잘라내는 기능

자바의 Substring과 똑같음
SELECT SUBSTR ('abcdefg' 1, 4) ;  
-->  abcd....

날짜 관련

YEAR(NOW()) ... > 현재 년월 시간에서 연도만 출력

now( ) --> 현재 년월 시간 출력

  • 응용)
    datediff : 날짜 간 차이 계산
SELECT SUBSTR(NOW(), 1, 10); 년월일만 구할 때(첫번째부터 열번째 문자열만 잘라서 출력)
SELECT DATEDIFF (NOW(),'2024-10-29'); .. 169일...

집계함수

종류) sum , avg, max, min, count ...
distinct(위의 함수와 세트메뉴)

sum(합계)

avg(평균)

max(최댓값)

min(최솟값)

count(데이터 개수 카운트)

distinct(중복 제거)

group by
같은 데이터를 그룹으로 묶는것


사용시 정확한 쿼리명과 정확한 목적을 가져야 함

  • select절에 적힌 컬럼들 중에서
    집계함수가 사용된 컬럼을 제외하고는
    group by절에 명시를 해야한다.

위의 원칙을 지킬 때 select절에 명시된 순서와
group by절에 명시하는 순서도 같아야함

ex) select nickname
id
, count()
, sum()
from article
group by nickname;

  • where절에는 집계함수를 사용할 수 없다!

JOIN

profile
코딩초보

0개의 댓글