📚 Database

[MySQL] SELECT QUERY

오늘 ONEUL 2022. 6. 1. 00:23

SELECT

  • SELECT 명령문을 이용하여 데이터베이스에서 데이터를 선택할 수 있다.
SELECT 컬럼선택 -- 3
FROM 테이블명 -- 1
WHERE 조건여부; -- 2
-- 내부적으로 데이터베이스가 쿼리를 수행하는 순서
  • 별표(*) 기호를 사용하면, 해당 테이블의 모든 필드를 선택할 수 있다.
  • SELECT 키워드 다음에 필드 이름을 명시하면, 해당 테이블의 특정 필드만 불러올 수 있다.
  • SELECT 키워드 다음에 DISTINCT 키워드를 사용하면 중복된 값이 한 번만 선택되도록 설정할 수 있다.

 

 

 

 

WHERE

  • WHERE 조건절을 사용하면, 검색할 레코드의 조건을 설정할 수 있다.
SELECT empno, ename, sal
FROM emp
WHERE sal > 1500;
-- emp 테이블에서 sal 값이 1500 이상인 empno, ename, sal 컬럼

 

 

 

 

별칭 alias

  • AS 키워드를 사용하면, 테이블과 필드에 임시로 별칭(alias)을 부여할 수 있다.
  • 따옴표를 사용하지 않을 경우 띄어쓰기는 할 수 없다.
  • AS 키워드는 생략 가능하나 가독성을 위해 권장하지 않는다.
  • 내부적으로 alias를 재사용하는 경우가 많다.
  • 실제 필드명을 감추기 위한 보안의 역할도 할 수 있다.

 

 

 

 

연산자 활용

  • 연산이 가능한 데이터 타입이어야 한다.
  • 연산 수행의 결과가 유의미해야 한다.
  • null 은 연산이 되지 않는다.
SELECT empno, ename, sal, comm, sal+comm AS total
FROM emp;
-- sal 컬럼과 comm 컬럼을 더해 total 별칭을 갖는 결과값을 반환

 

 

 

 

ORDER BY

  • ORDER BY 절을 사용하면, 선택한 결과의 집합을 오름차순 또는 내림차순으로 정렬할 수 있다.
  • 기본 설정은 오름차순(ASC)이며, 내림차순으로 정렬하려면 DESC 키워드를 사용한다.
  • SELECT 한 결과를 재배치하므로 성능을 고려해야 한다.
  • 정렬한 후 같은 값이 있을 경우 콤마(,)로 구분된 정렬 기준을 순차적으로 적용한다.
-- 순차정렬(ASC)
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno = 10
ORDER BY sal;


-- 역정렬(DESC)
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno = 10
ORDER BY sal DESC;


-- 출력한 컬럼 중 3번째 컬럼을 기준으로 정렬
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno = 10
ORDER BY 3;


-- 정렬의 기준이 2개인 경우(deptno, hiredate)
SELECT deptno, empno, hiredate, ename, sal
FROM emp
ORDER BY deptno, hiredate DESC;

 

 

 

 

 

※ 참고자료

http://www.tcpschool.com/mysql/mysql_basic_select

https://www.w3schools.com/sql/sql_select.asp