Cloud System Engineer

SQL기본 - WHERE 절 본문

mysql/MySQL

SQL기본 - WHERE 절

클라우드 엔지니어 2021. 1. 29. 13:42

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 등 제약조건은 복사가 안된다.!

 

'mysql > MySQL' 카테고리의 다른 글

sql 기본  (0) 2021.02.06
Group by , having 절  (0) 2021.02.01
select 문  (0) 2021.01.29
사용자 관리  (0) 2021.01.28
데이터 베이스 모델링  (0) 2021.01.25