본문 바로가기
Oracle SQL Developer

SQL 기본

by wanttosleep1111 2023. 1. 8.

SQL 기본

 

1. SQL (Structured Query Language) : 구조화된 질의 언어

 

① SQL 문법의 종류

  • SELECT : 테이블 안에서 원하는 데이터를 가공 및 추출할 수 있다.
    from, where, group by, having, order by
  • DML(Data Manipulation Language) : 테이블 내에 데이터를 입력, 삭제, 수정할 수 있다.
    ex) insert, update, delete

  • DDL(Data Definition Language) : 테이블, 인덱스 등 데이터 저장 객체를 만들거나 수정할 수 있다.
    ex) create, alter, rename, drop, truncate

  • DCL(Data Control Language) : 권한을 부여할 수 있다.
    ex) grant, revoke, role

  • TCL(Transaction Control Language) : 트랙잭션을 제어할 수 있다.
    ex) commit, rollback, savepoint

② 테이블 : 데이터베이스 안에 있는 2차원의 행(튜플), 열(컬럼) 형태를 가지는 데이터 저장소

 

③ SQL 실행 순서

순서 SQL
5 SELECT 테이블에서 추출하려는 컬럼을 콤마(,)를 기준으로 입력
1 FROM 데이터를 가져올 테이블 이름을 입력
2 WHERE 테이블에서 추출하려는 행을 조건을 지정해 제한
3 GROUP BY 테이블에서 특정 컬럼을 기준으로 그룹화
4 HAVING 테이블에서 특정 컬럼을 기준으로 그룹화된 상태에서 데이터 제한
6 ORDER BY 테이블에서 추출하려는 대상을 특정 컬럼을 기준으로 정렬

 

※ 첨부파일 makedata.sql을 실행시켜 테이블들을 DB에 넣기

makeData.sql
0.01MB

 


 

2. SQL 기본

 

① DB 직원 테이블에서 직원ID가 A0001인 직원의 이름과 나이 가져오기

SELECT 이름
     , 나이
  FROM 직원
 WHERE 직원ID = 'A0001' ;

 


 

② 컬럼을 모두 추출하기 : *(애스터리스크, 테이블에 정의된 순서대로 존재하는 모든 컬럼 추출)

컬럼의 숫자가 많을 경우 일일이 다 써주기 힘듦 → *(애스터리스크)를 사용해 한번에 전체 컬럼을 추출

SELECT *
  FROM 직원;

 

③ 중복되는 튜플 제거 : DISTINCT

SELECT DISTINCT 성별
  FROM 직원;

SELECT DISTINCT 이름
     , 성별
  FROM 직원;

 

예제 : 직원 테이블에서 직원ID, 나이, 이름, 입사일시 컬럼 순서대로 모든 데이터를 추출하기

SELECT 직원ID
     , 나이
     , 이름
     , 입사일시
  FROM 직원;


 

④ NULL : 아직 정해지지 않은 값, 공간은 존재

  • 오라클에서 NULL은 ''(빈 값)과 동일한 의미 (공백 '', 숫자 0과 다름)
  • 산술, 비교 등의 연산에 NULL이 나타나면 결과는 NULL
  • NULL에 대해서는 다른 함수를 이용해 연산 처리

 

 


 

⑤ 테이블 구조 이해하기 (리터럴과 자료형)

  • 리터럴(literal) : 문자 그대로의 의미, 입력된 값
    ex) 25, 22/03/01, '991212-1566213' 등등 데이터 값들

 

  • 자료형(데이터 타입) : 테이블에 리터럴(데이터 값)을 입력할 때 특정 타입만 넣도록 데이터 형식을 정함

 

'Oracle SQL Developer' 카테고리의 다른 글

SQL GROUP BY, HAVING, ORDER BY  (0) 2023.01.24
SQL FROM, JOIN  (0) 2023.01.24
SQL WHERE  (1) 2023.01.23
SQL SELECT 연산, 내장형 함수  (0) 2023.01.09
DB 데이터 모델링(Data Modeling)  (0) 2023.01.05

댓글