개인개발기록/클라우드 기반 자바 풀스택 개발

2025_04_14 Java 풀스택 수업 - MySQL

pop2bubbledev 2025. 4. 14. 22:49

기초 예제풀이

-- 문제1) product_db의 productTBL의 구조만 남기고 내용을 모두 삭제하시오
truncate table customerTBL;

-- 문제2)  product_db를 삭제하시오.
drop database if exists product_db;

-- 문제3)  product_db라는 데이터베이스를 생성하시오.
create database product_db;

-- 문제4) product_db에 작업할 수 있도록 product_db를 활성화시키시오.
use product_db;
-- 문제20) porderTBL  테이블에서  주문(amount)  건수를 구하시오.
select count(orderid) as "주문 건수"
from porderTBL;

-- 문제21) customerTBL테이블에서 회원수를 구하되 아래 형태처럼 구하시오.
 --    회원수 :  ~ 명
select concat("총 회원수 : ", count(custid),"명") as 회원수
 from customerTBL;

-- 문제 22) productTBL 테이블에서 판매가격이 가장 높은 금액을 구하되
--   천단위 구분 기호를 표시하시오.
select  format(max(price),"0,000") as "최고가"
from productTBL;


-- 문제 23)  porderTBL  테이블에서 주문(amount) 수량이 20개 이상인 상품의
-- 합계와 평균을 구하시오.
select sum(amount) as "20개 이상 주문상품 합계", avg(amount) as "20개 이상 주문상품 평균"
from porderTBL
where amount >= 20;

-- 문제24) customerTBL테이블에서 주소(address)가 '송파'인 사람은 몇명인지 구하시오.
select count(address) as "송파구 거주민 수"
from customerTBL
where address = "송파";

 

 

auto_increment : 값 1씩 증가

auto_increment = 증가하려는 값 : 증가하려는 값 만큼 증가

 

===========================================================================================

oracle :

시퀸스를 따로 작성 (데이터베이스 개체)

create sequence 시퀸스명;

start with 값 : 시작값

 

insert into abc(id,name) values(시퀀스명.NEXTVAL, 'name');

오라클의 경우 시퀀스를 따로 만들고 시퀀스명을 넣어줘야함

 

concat(문자열,문자열) : 인수를 2개만 허용

select "회원수 : " || count(*) || "명"

from 테이블명

===========================================================================================

 

update문

update 테이블명

set 컬럼명 = 값

where 조건;

 

delete문

delete from 테이블명

where 조건;

 

insert문

insert into 테이블명(컬럼명,..) values(값,..);

 

select * from customertbl;
select custid, cname, ifnull(phone,"번호 없음") as 휴대폰
from customertbl;

null 값에 다른값 넣는법

 

내부 조인 (inner join)

가장 많이 사용되는 형태, 양쪽 테이블 모두에서 조건을 만족하는 자료만 조회

 select 테이블명.컬럼명,....

 from 연결할 첫 번째 테이블명 as 별칭

 inner join 연결할 두 번째 테이블명 as 별칭 -- as 생략가능

on 조인 조건

where 검색 조건;

 

select 테이블명.컬럼명,..

from 연결할 첫 번째 테이블명 as 별칭

inner join 연결할 두번째 테이블명 as 별칭 -- as 생략가능

on 조인 조건 -- 두 테이블 연결 끝

inner join

 

외부 조인 (outer foin)

한쪽 테이블의 자료는 모두 가져오고, 다른쪽 테이블의 자료는 조건에 만족하는 것만 조회

 

left outer join = left join : 왼쪽 테이블의 내용은 모두 출력하고 오른쪽은 조건에 맞는 것만 조회

 

select 테이블_별칭.컬럼명,...

from 연결할 첫 번째 테이블명 별칭

left outer join 두 번째 테이블명 별칭

on 조인 조건;

 

 

right outer join = right join : 오른쪽 내이블의 내용은 모두 출력하고 왼쪽은 조건에 맞는 것만 조회

 

self join : 하나의 테이블을 가지고 조인을 하는것 반드시 테이블에 대한 별칭을 가져야함

 

select 테이블 별칭.컬럼명,....

from 테이블명 별칭, 테이블명 별칭

where 테이블별칭.컬럼명 테이블별칭.컬럼명;