SQL기본 - WHERE 절
where 절은 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을때 사용하는데,
이런 형식을 갖는다.
select 필드이름 from 데이블이름 where 조건식 ;
select * from usertbl where name = '김경호';
-- usertbl 에서 김경호라는 이름을 가진 사람을 출력한다.

관계 연산자 사용
1990년 이후에 출생하고 신장이 182 이상인 사람의 아이디를 출력하자.
select Name , userID from usertbl where birthYear >= 1990 and height >=182 ;

1990년 이후에 출생했거나 , 신장이 182 이상인 사람의 아이디를 출력하자.
select Name , userID from usertbl whre birthYear>=1990 or height >= 182;

betwenn , and 와 IN , like 연산자
select name , height from usertbl where height >=180 and height <=183;
=
select name , height from usertbl where height betwenn 180 and 183;
결과는 같다.

키의 경우 숫자로 이루어져있어서 연속적인 값을 가지므로 between and 가 가능했지만
지역은 연속적인 값이 아니기 때문에 between and 연산자를 사용할 수 없다.
select name , addr from usertbl where addr ='경남' or addr ='전남' or addr='경북';
=
select name , addr from usertbl where addr in ('경남',' 전남' , '경북');

문자열 내용을 검색하기 위해서 like 연산자를 사용할 수 있다.
select name , height from usertbl where name like '김%';
성이 김씨이고 그 뒤는 무엇이든 허용한다는 의미이다.

select name , height from uesrtbl where name lie '_종신';
_ 의미는 앞에 글자는 아무거나 와도 상관없지만 뒤에글자인 종신이란 사람을 조회해준다.

select name , height from usertbl where height >=(select height from usertbl where addr='경남)';
-> 논리적으로 맞다고 생각하지만, 하위커리가 두개 이상의 값을 반환하기 때문에 오류가 발생한다.
그래서 필요한 구문이 any 다.
select name , height from usertbl
where height >= any (select height from usertbl where addr='경남');

order by : 원하는 순서대로 정렬하여 출력
select name , mdate from usertbl order by mdate; -- 가입일이 빠른 순서대로 출력한다. (기본은 오름차순 빠른것부터 출력)

select name , mdate from usertbl order by mdate DESC; -- 가입일이 느린 순서대로 출력한다.

중복 된 결과를 제거하는 DISTINCT 구문
select addr from usertbl;

select distinct addr from usertbl; -- 중복된 결과를 제거해준다.

테이블 복사
use sqldb;
create table buytbl2 (select * from buytbl); -- buytbl 내용을 buytbl2 로 복사한다.
select * from buytbl2;

일부 열만 복사도 가능하다.
create table buytbl3 (select userID, proName from buytbl);
select * from buytbl3;

단, PK,FK 등 제약조건은 복사가 안된다.!