select * from [table명]
member라는 테이블이 있을때
select * from member
member라는 테이블에 컬럼명이 price와 amount만을 가져오고 싶을때
select price, amount from member
출력시 별칭기능으로 볼수도있다.
select addr 주소, debut_data '나온 일자' from member
평균 키(height)가 162 이하의 회원을 검색
SELECT mem_id, mem_name FROM member WHERE height <= 162;
member테이블에서 키가 163이상 170미만인
컬럼 addr, debut_date, mem_name만 보여줘
select addr 주소, debut_date 데뷔일자, mem_name from member
where height>= 163 And height<170;
평균 키(height)가 165 이상이면서 인원(mem_number)가 6명 초과인 회원만 보여줘
SELECT mem_name, height, mem_number
FROM member
WHERE height >= 165 AND mem_number > 6;
AND만 사용한게 아닌 BETWEEN을 넣음으로 인하여 같은 컬럼의 AND를 사용시
컬럼명을 한번만 사용할수도 있다.
SELECT * FROM member
WHERE height BETWEEN 163 AND 165;
경기나 전남, 경남이 주소에 있다면 보여줘
SELECT mem_name, addr
FROM member
WHERE addr = '경기' OR addr = '전남' OR addr ='경남';
경기나 전남, 경남이 주소에 있다면 보여줘
SELECT mem_name, addr
FROM member WHERE addr IN ('경기', '전남', '경남');
이름이 ‘XX핑크’ 인 회원 검색
SELECT * FROM member WHERE mem_name LIKE '__핑크';
이름(mem_name)이 ‘에이핑크’인 회원의 평균 키(height) 보다 큰 모든 회원을 검색
SELECT mem_name, height FROM member
WHERE height > (SELECT height FROM member WHERE mem_name = '에이핑크');
ORDER BY 절은 결과의 값이나 개수에 대해서는 영향을 미치지 않지만, 결과가 출력되는 순서를 조절합니다.
SELECT mem_id, mem_name, debut_date FROM member ORDER BY debut_date;
SELECT mem_id, mem_name, debut_date FROM member ORDER BY debut_date DESC;
ORDER BY의 기본값은 ASC(ascending) 오름차순 입니다.
ASC나 DESC를 생략하면 기본적으로 ASC로 동작합니다.
여러개로 정렬순서를 정해줄수있는데 앞에가 우선정렬이며 뒤에 오는것은 앞에 정렬과 같을때 비교한다.
SELECT mem_id, mem_name, debut_date, height
FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date ASC;
출력 개수를 제한한다.
SELECT * FROM member LIMIT 3;
중복되어도 하나의 데이터만 출력되거나 가져오게 한다.
SELECT DISTINCT addr FROM member;
출력 결과를 그룹으로 묶어줍니다. 주로 다음의 집계함수와 함께 사용됩니다. 다른테이블과 가티 출력할때
구매내역을 모두 출력하면
SELECT mem_id, amount FROM buy ORDER BY mem_id;
각 회원의 구매한 개수(amount) 를 합쳐서 출력 하려면
SELECT mem_id, SUM(amount) FROM buy GROUP BY mem_id;
각 회원이 구매한 금액의 총합 (price amount)을 출력 하려면
SELECT mem_id, SUM(priceamount) FROM buy GROUP BY mem_id;
불행하게도 집계 함수는 WHERE 절에 사용할 수 없습니다.
그때 필요한게 HAVING절을 사용한다.
위의 결과 중에 총 구매액이 1000 이상인 회원을 찾는다면?
SELECT mem_id, SUM(priceamount) FROM buy
GROUP BY mem_id HAVING SUM(priceamount) > 1000;