일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Azure
- 클라우드엔지니어
- 리눅스
- 시스템엔지니어
- windows server
- 클라우드
- SE
- 시스템 엔지니어
- Entra ID
- cloud
- Azure AD
- Microsoft Azure
- Microsoft
- aws
- 컴퓨터
- Docker
- 메일보안
- cloud engineer
- Exchange Online
- It
- Microsoft 365
- network
- windows
- 리눅스마스터1급
- Server
- 그룹정책
- Linux
- 시트릭스
- 가상화
- 네트워크
- Today
- Total
Cloud System Engineer
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 등 제약조건은 복사가 안된다.!
'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 |