본문 바로가기
Kosta DevOps 과정 280기/Java

DB- 데이터 조회하기

by 롯슈83 2024. 6. 10.

가장 기본적인 조회 형식

Select 컬럼이름(들) from 테이블이름(들) [where 조건식]

 

예시 코드

  • 모든 고객의 주소를 조회
 select address from customer;
  • 김연아 고객의 주소를 조회
select address from customer where name='김연아';
  • 대한미디어에서 출간하는 도서의 도서명과 가격을 조회
select bookname, price from book where publisher='대한미디어';
  • 대한미디어에서 출간하는 모든 도서의 도서번호, 도서명, 가격, 출판사를 조회
select * from book where publisher = '대한미디어';

 

중복 제거

  • distinct 키워드 사용
select distinct [컬럼명] from [테이블];
  • 중복하지 않고 출판사명 출력하기
select distinct publisher from book;

 

where 절에서 사용할 수 있는 연산자

  • 비교 : >, <, >=, <=, = , <>(같지 않음)
  • 논리 : and, or
  • 집합 : in, not in
  • 범위 : between a and b
  • null : is null, is not null(null은 비교 연산자의 = 를 쓸 수 없다)
  • 패턴 : like

예시 코드

  • 가격이 20000원 이상인 도서 목록을 출력
select * from book where price >= 20000;
  • 출판사가 '굿스포츠'가 아닌 모든 도서목록을 출력
select * from book where publisher<>'굿스포츠';
//아래도 가능
select * from book where publisher!='굿스포츠';
  • 2024년 6월 10일 주문한 도서번호화 고객 번호를 출력
select bookid,custid from orders where orderdate='2024/06/10';
  • '이상 미디어'에서 출간하는 도서 중에 가격이 20000원 이상인 도서번호, 도서명을 출력
select bookid, bookname from book where publisher='이상미디어' and price>=20000;
  • '이상미디어'나 '대한미디어'에서 출간하는 도서의 도서번호, 도서명, 출판사명을 출력
select bookid, bookname, publisher 
from book where
publisher='이상미디어' or publisher='대한미디어';

//동일
select bookid, bookname, publisher 
from book where
publisher in ('이상미디어', '대한미디어');
  • 이상미디어도 아니고 대한미디어도 아닌 출판사의 도서번호, 도서명, 출판사명을 출력
select bookid, bookname, publisher from book where publisher not in ('이상미디어', '대한미디어');
  • 이상미디어나 대한미디어에서 출간하는 도서중에 가격이 20000원이상인 도서번호, 도서명, 출판사명을 출력
select bookid, bookname, publisher from book where 
publisher in ('이상미디어','대한미디어') and price >= 20000;
  • 가격인 10000원 이상 20000원 이하인 도서의 도서번호, 도서명, 출판사명, 가격을 검색
 select bookid, bookname, publisher from book where price >=10000and price <= 20000;
 
  select bookid, bookname, publisher from book where price between 10000 and 20000;
  • 대한미디어나 이상미디어에서 출간하는 도서중에 가격이 10000원 이상 30000원 이하인 도서의 정보를 출력
select * from book where publisher in 
('대한미디어', '이상미디어') and price >=10000 and price <= 30000;
  • 전화번호가 null인 고객의 이름, 주소를 출력
select name, address from customer where phone is null;
  • 전화번호가 null이 아닌 고객의 정보를 출력
select * from customer where phone is not null;