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;
※ 참고자료
'📚 Database' 카테고리의 다른 글
[MySQL] MySQL 날짜 관련 함수 총정리 (0) | 2022.06.11 |
---|---|
[MySQL] MySQL 숫자, 집계 함수 총정리 (0) | 2022.06.11 |
[MySQL] MySQL 문자열 함수 총정리 (0) | 2022.06.01 |
[MySQL] MySQL의 연산자(operator) (0) | 2022.06.01 |
[MySQL] MySQL이란? (0) | 2022.05.31 |