본문 바로가기

공부 자료/DataBase

[SQL] SELECT 및 SELECT 관련 쿼리

SELECT

 

SELECT FROM : 테이블의 데이터를 조회할 때 사용

SELECT [조회할 칼럼명] FROM [테이블명];

 

-- emp 테이블의 전체 컬럼 조회
SELECT * FROM emp; 

-- emp 테이블의 empno, enmae 칼럼 조회
SELECT empno, ename FROM emp; 

-- dept 테이블에서 전체 컬럼 조회
SELECT * FROM dept;

-- dept 테이블에서 deptno, dname 조회
SELECT deptno, dname FROM dept;

-- student 테이블에서 학번, 이름, 생일, 전화번호 조회
SELECT studno, name, birthday, tel FROM student;

 

 

1. ORDER BY [칼럼명]

:  (디폴트는 내림차순 ASC이며, DESC를 이용해 오름차순 정렬 가능)

SELECT [조회할 칼럼명] FROM [테이블명] ORDER BY [칼럼명|숫자];
--  emp 테이블의 sal을 정렬
SELECT * FROM emp ORDER BY sal; -- 오름차순
SELECT * FROM emp ORDER BY sal DESC; -- 내림차순
SELECT * FROM emp WHERE deptno=10 ORDER BY sal DESC; -- 내림차순

 

: 칼럼이 여러개일 경우 칼럼별로 순서대로 정렬을 진행하며, asc/desc는 칼럼별로 지정 필요

-- emp 테이블에서 deptno는 오름차순, sal은 내림차순으로 정렬 조회
SELECT * FROM emp ORDER BY deptno asc, sal desc; 

-- student 테이블에서 학년순 정렬, 같은 학년은 키가 큰 학생이 먼저 오도록 정렬
SELECT * FROM student ORDER BY grade, height desc;

 

 

1-1. ORDER BY [숫자]

: SELECT 칼럼을 기준으로 숫자번째에 해당하는 칼럼 기준 정렬

-- ORDER BY 숫자는 해당 숫자에 해당하는 SELECT 칼럼을 기준으로 정렬
SELECT studno, name FROM student ORDER BY 2;
SELECT studno, name FROM student ORDER BY name;

-- student 테이블에서 4학년 학생들의 학번, 이름, 생일, 학과번호를 생일 순으로 정렬
SELECT studno, name, birthday, deptno1 FROM student WHERE grade=4 ORDER BY 3;
SELECT studno, name, birthday, deptno1 FROM student WHERE grade=4 ORDER BY birthday;

 

 

2. DISTINCT(칼럼명)

: 중복된 데이터를 한 번만 조회

SELECT DISTINCT(칼럼명) FROM [테이블명];
-- deptno1을 중복하지 않고 출력
SELECT DISTINCT(deptno1) FROM student;

 

 

3. Alias

: 테이블 명이나 칼럼명이 길어 간략하게 할 때 사용

-- alias : 칼럼명을 바꿔서 조회 (as는 생략 가능)
SELECT empno as 사번, ename as 이름, job as 직무 FROM emp WHERE job='CLERK' OR job='SALESMAN'; 
SELECT empno 사번, ename 이름, job 직무 FROM emp WHERE job='CLERK' OR job='SALESMAN'; 

-- alias를 쓸 때에만 큰 따옴표 사용, alias 사용 시 스페이스가 들어가야 한다면 큰따옴표 사용
SELECT empno "사   번", ename "이   름", job "직   무" FROM emp WHERE job='CLERK' OR job='SALESMAN'; 

-- student 테이블에서 4학년 학생들의 학번, 이름, 학년을 조회(칼럼명 : 학 번, 이 름, 학 년)
SELECT studno "학 번", name "이 름", grade "학 년" FROM student WHERE grade=4;