본문 바로가기
Study/중앙정보처리학원과정

19일차. Select...Select...함수..Select..Insert...Where

by 얏옹이 2022. 11. 20.
반응형

쿼리문의 연속이다.

 

무한 Select를 해가며 Where절을 익히고, Order by로 정렬하는걸 수십번...씩 반복해가면서 손에 익을때까지

 

책에 있는 예제도 하고 아닌 예제도 해가면서 무한 쿼리문을 날리고있다.

 

 

SELECT 문법은 가장 기본적인 문법 구조가 SELECT ~ FROM ~ WHERE가 가장 보편적으로 쓰이는 문법이다.

 

SELECT 다음에는 열 이름, FROM 다음에는 테이블 이름, WHERE는 조건절이다. 조건식을 다양하게 해줌으로써 원하는 데이터만 쏙쏙 골라서 조회할수가 있다.

 

해당 쿼리문은 DEPT 테이블에 있는 모든 열을 조회하겠다는 의미이다.

 

DEPT 테이블에는 이러한 자료들이 담겨있다. WHERE절에 조건을 주어서 deptno가 10인 데이터만 조회해보겠다.

 

 

이러한 형식이 SELECT문의 기본적인 문법이다. SELECT문은 SQL에서 "조회"에 역활을 하는 문법이다.

 

 

SELECT문에서 ORDER BY를 이용하여 정렬의 순서도 바꿔줄수 있다.

 

참고로 ORDER BY는 SELECT문의 가장 마지막 줄에 사용된다, 

 

ORDER BY 정렬할컬럼 정렬방법 으로 적어준다. 오름차순(ASC)와 내림차순(DESC)가 있는데

 

기본값(Defalut)이 오름차순이기때문에 오름차순은 생략이 가능하다.

 

 

이렇게 사용된다. DEPTNO를 기준으로 asc를 붙이면 오름차순, desc를 붙이면 내림차순, asc는 생략이 가능하다.

 

SELECT 문 컬럼명에 별칭을 붙여줄수도 있다. 별칭(Alias)의 문법은 컬럼명 뒤에 공백 or as를 붙여주고

해당 컬럼에 대한 별칭을 설정해줄수 있다. 만약 별칭에 띄어쓰기(공백)이나 특수문자가 들어갔을경우 별도로

별칭을 " " 큰따옴표로 묶어줘야한다

 

 

 

 

Where절에는 조건이 온다고 위에 설명을 해놨는데, Where절에는 다양한 연산자들을 포함할수 있다.

 

A > B - A는 B보다 크다(초과)

A < B - A는 B보다 작다(미만)

A != B - A는 B와 같지 않다

A = B - A는 B와 같다

A <= B - A는 B보다 작거나 같다(이하)

A >= B - A는 B보다 크거나 같다(이상)

A <> B - A는 B와 같지않다. != 와 동일한 문구

A !< B - A 는 B보다 작지않다

A !> B - A는 B보다 크지않다

 

이러한 연산자와 AND, OR도 사용가능하다

 

EMP 테이블의 DEPTNO가 20보다 큰 사원들을 조회해보겠다.

 

 

20보다 큰 30번의 사원들만 조회가 된다.

 

다음은 deptno가 10이 아닌 사람들만 조회해보겠다.

 

 

 

다음은 AND 와 OR를 이용하여 데이터 조회를 해보겠다.

 

AND는 A AND B. A의 조건도 충족하고 B의 조건도 충족한 결과가 출력이 된다.

 

OR는 A OR B A이거나 B이거나 둘중에 하나만 충족해도 둘다 출력이 된다.

 

deptno가 30 AND 10으로 조건을 줘보겠다.

 

 

이 값은 출력되지않는다. 문법상 문제는 없어서 오류는 나지만, deptno가 30과 10 둘다 가진 데이터가 없기때문이다.

 

그렇다면 AND 조건을 OR로 바꿔보자

 

 

dept가 30인사람과 10인 사람 둘 다 조회가 된다. 둘중에 하나만 충족해도 다 조회가 되는것이다.

 

이토록 Where절에는 수많은 조건과 다양한 연산식으로 특정 데이터 값만을 출력해서 보여줄수 있게된다.

 

여기에서 OR의 경우 OR 조건을 여러줄 주게 되면 코드가 너무 쓸데없이 길어지는 단점이 있다.

 

여러가지 조건을 OR로 줘야할때는 IN 연산자를 이용하여 코드를 줄여줄수 있다.

 

Where deptno in(30,20,10) 이런식으로 작성하게 되는데 해석하자면 deptno중에 in 괄호 안에 값들에 해당 되는 데이터를 조회해준다

 

 

위의 두 쿼리문은 결과값은 같다. 하지만 반복된 or로 표현해주기보다는 in으로 표현해주니 좀더 코드가 심플해지는것을 볼수 있다.

 

 

반응형