프로그래밍 언어 공부/SQL

1. Table 조회 함수

성균관_해태 2021. 10. 11. 19:49

0. 들어가기 전 알아야 할 것들


0-1. 관계형 데이터베이스에서의 다른 표현

  • 테이블 : 관계(relation)
  • 행 : 튜플(tuple), 레코드(record)
  • 열 : 애트리뷰터(attribute), 필드(field)

0-2. 여러 키들

  • 기본키(primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key) 등으로 구분
    • 기본키
      • 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키
    • 보조키
      • 대체키(alternate key)라고 부르며 후보키(candidate key)에 속해 있는 키
      • 후보키 중에서 기본키로 지정되지 않은 열
        (후보키는 모든 column이라고 생각하면 된다)
    • 외래키
      • 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키
        (흔히 Join이나 Merge할 때 기준이되는 키라고 생각하면 된다)
    • 복합키
      • 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키

1. 테이블 조회 함수

1-1. DESC 

  • DESC는 특정 테이블에 어떤 칼럼이 있는지 구조가 무엇인지 조회하는 명령어이다.
  • R에서의 str 함수, pandas에서 pd.info()와 같은 형태라고 생각하면 될 것 같다.
DESC EMP;

 

1-2. SELECT

  • SELECT는 데이터베이스에 보관되어 있는 데이터를 조회하는 데 사용하는 명령어
  • SELECT절과 FROM절을 기본 구성으로 작성하며, FROM절에는 TABLE을 SELECT는 조회할 열을 작성
## 기본 구성
SELECT [조회할 열1 이름], [열2 이름], ... , [열N 이름]
FROM [조회할 테이블 이름];

## 전체 테이블 조회하기 (문자 *를 입력)
SELECT * FROM EMP;

## 테이블 부분 조회하기 (원하는 열만 입력)
SELECT EMPNO, ENAME, DEPTNO
FROM EMP;

1-3. DISTINCT

  • DISTINCT 명령어는 중복을 제거하는 명령어
  • DISTNCT는 조회한 데이터의 내용에서 불필요한 중복을 제거하고 특정 데이터의 종류만 확인하고 싶을 때 유용
  • PYTHON에서의 UNIQUE와 동일한 메커니즘이라고 생각하면 되며, SELECT는 기본적으로 ALL로 데이터 반환
## 1개의 열을 기준으로 중복 제거
SELECT DISTINCT ['열 이름']
FROM 테이블 명;

## 2개의 열을 기준으로 중복 제거 (조합을 바탕으로)
SELECT DISTINCT 열1, 열2
FROM 테이블 명;

## 중복 제거하지 않고 모두 보고 싶을 경우 (SELECT문의 DEFAULT)
SELECT ALL 열1, 열2
FROM 테이블명;​

1-4. AS

  • 본래 열 이름 대신 별칭을 붙일 때 사용하는 명령어
  • '조회하고자 하는 테이블의 열 AS 이름'의 형태로 사용하며, 다양한 열에 대해 연산 작업을 마친 뒤 AS를 사용 가능
## SELECT 문 안에 COLUMN 연산 넣기
SELECT ENAME, SAL, SAL*12, COMM ## 이렇게 COLUMN명에 연산을 넣으면 됨
FROM EMP;

## 다른 방식으로 COLUMN 연산
SELECT ENAME, SAL, SAL+30
FROM EMP;

## 별칭 넣기
SELECT ENAME, SAL, SAL*12 AS ANNSAL, COMN ## COLUMN 연산 AS 별칭 형태로 작성
FROM EMP;​

 

 

1-5. ORDER BY

  • 데이터를 정렬된 상태로 출력하기 위한 명령어
  • SELECT문을 작성할 때 사용할 수 있는 여러 절 중 가장 마지막 부분에 작성
  • 오름차순이 DEFAULT이며, 내림차순은 마지막에 DESC를 작성해주면 됨(오름차순은 ASC)
  • 여러 열을 나열함으로써, 순위별 오름차순/내림차순도 가능함
## 하나의 열을 오름차순
SELECT * FROM TABLE
ORDER BY COL1;

## 하나의 열을 내림차순
SELECT * FROM TABLE
ORDER BY COL1 DESC;

## 두 개의 열을 기준으로 오름차순
SELECT * FROM TABLE
ORDER BY COL1 ASC, COL2;

## 복합적
SELECT * FROM TABLE
ORDER BY COL1 ASC, COL2 DESC;