본문 바로가기

컴퓨터 프로그래밍

MySQL DML , 중복제거 논리연산자사용, 쿼리결과 정렬

반응형

쿼리결과 중복제거(DISTINCT)

select문의 결과값에서 특정 컬럼만 출력할 경우 중복된 값 들이 나오는경우 제거해서 표시하는 기능

Select distinct 컬럼명1 컬럼명2 ... from 테이블명

update test_db set NOSE_X=10, NOSE_Y=20, NOSE_Z=20 where id =1;
update test_db set NOSE_X=10, NOSE_Y=30, NOSE_Z=40 where id =2;

한 후 

select NOSE_X from test_db where NOSE_X ='10';를 하면 결과가 다음과 같이 나오며, 

select DISTINCT NOSE_X from test_db where NOSE_X ='10';를 하면 결과는 다음과 같이 나온다. 

NOSE_X 가 10인 데이터가 10000개더라도 DISTICT 명령어를 붙이면 하나로 요약되서 나온다. 

 

논리연산자 (AND OR NOT)

SELECT 문의 조건절에 논리 조건 적용해서 적용할 수 있는 연산자

Select * from 테이블명 where (not) 조건1 and/or (not )조건2 ...

로 사용 할 수 있다. 

일단 insert into test_db(ID,NOSE_X,NOSE_Y,NOSE_Z) values (3,10,30,50);
insert into test_db(ID,NOSE_X,NOSE_Y,NOSE_Z) values (4,20,10,60);
insert into test_db(ID,NOSE_X,NOSE_Y,NOSE_Z) values (5,20,40,100);를 해주고 ..

select * from test_db where NOSE_X ='10' and NOSE_Y = '10'

select * from test_db where NOSE_X ='10' or NOSE_Y = '10'

and 명령어를 쓰면 해당 조건을 둘다 충족하는 데이터가 없어 안나오고 or명령어는 10이거나 y 가 10인 결과가 다 나오게 된다. (between 과 in도 마찬가지로 사용 가능)

결과정렬 (Order by)

Select문의 결과값을 특정한 컬럼을 기준으로 오름차순/ 내림차순으로 정렬해서 표시

select * from 테이블명 where 조건절 oreder by 컬럼명!! asc / desc

참고로 기본값은 오름차순이다. 

select * from test_db where NOSE_X ='10' order by NOSE_Y desc;를 사용하면 결과는 다음과 같다. 

select * from test_db where NOSE_X ='10' order by NOSE_Y asc;의 결과는 참고로 다음과 같다.

각각 NOSE_Y로 오름차순 , 내림차순으로 정렬된것을 확인할 수 있다. 

이상으로 중복제거 논리연산자와 결과정렬 에 대해서 알아봤습니다. 

반응형