메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
1번째 줄: 1번째 줄:
== 30일간의 SQL 기초 학습 ==
== 30일간의 SQL 기초 학습 ==
{{틀:개요
{{틀:개요
|내용=
|제목=
# 오라클 설치는 [[오라클 설치]] 를 참조
# 오라클 설치는 [[오라클 설치]] 를 참조
}}
}}

2025년 5월 13일 (화) 19:50 판

30일간의 SQL 기초 학습

 list_alt# 오라클 설치는 오라클 설치 를 참조

SQL 기본

데이터 베이스 기본 용어

영문 용어 한글 용어 설명
SQL 질의어 Structured Query Language,SQL은 데이터베이스에서 데이터를 관리하거나 조작하기 위해 설계된 표준 프로그래밍 언어
QUERY 쿼리 질의어,SQL 문장에서 데이터를 조회하는 명령어를 Query 라 함.
질의 > 학생들(STUDENTS) 에서 나이가 18보다 큰 학생의 이름과 ,나이를 조회 
SQL  > SELECT name, age FROM STUDENTS WHERE age > 18;
TABLE 테이블 데이터를 정리하고 표시하기 위한 행(row)과 열(column)로 구성된 구조, 엑셀에서 쉬트를 테이블과 유사하다고 생각하면 됨.
=================== 
| Name   | Age | City      |
=================== 
| Alice  | 24  | New York |
---------------------------------
| Bob    | 30  | Chicago   |
---------------------------------
  • 테이블 생성 예시
CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    city VARCHAR(100)
);
COLUMN 컬럼(열) 컬럼은 세로 줄, 열을 의미, 엑셀에서 세로줄과 유사
  • 데이터값을 조회 하기위한 타이틀
=================== 
| Name   | Age | City      |
===================
ROW 로우(행) 로우는 줄,행을 의미, 엑셀에서 가로줄과 유사 , 주로 1개의 줄을 레코드라고 한다.
  • 데이터의 값이 저장되어 있다.
| Alice  | 24  | New York |
---------------------------------
| Bob    | 30  | Chicago   |
INDEX 인덱스 데이터를 빠르게 검색하기 위해 사용하는 특별한 데이터 구조, 책에 있는 목차(INDEX) 와 유사
VIEW 데이터베이스에서는 가상 테이블을 의미, 테이블에 있는 일부 속성(컬럼)을 사용하고 할때 사용

현업에서 사용하는 업무 용어

모델링

  • 데이터베이스에서 사용하는 테이블과 컬럼을 설계 하는 업무
  • 주로 논리 모델은 모델링 단계를 의미하고 물리모델은 데이터베이스에 적용하는 단계를 의미함

Entity(엔터티)

  • 주로 논리모델링에서 사용하는 용어로 속성을 포함하고 있는 객체를 의미함.
  • 물리모델에서는 엔터티를 테이블이라 함.

ERD

  • Entity Relationship Diagram

엔터티의 관계를 다이어그램으로 나타낸 도표

DW(데이터웨어하우스)

  • 현업 업무는 실시간 업무를 처리 하는 기간계와 통계성 업무를 처리하는 정보계로 나누어짐
  • OLTP 업무는 기간계 , OLAP 업무는 정보계라 칭함

ASIS 시스템

  • 현재 개발중인 시스템에서 과거 시스템을 부를때 칭함.
  • 주로 레거시 난 AS-IS 라 칭함

TOBE 시스템

  • 현재 개발중인 시스템을 칭함
  • 주로 차세대라 칭함.

DDL DML DCL TCL

DDL (Data Definition Language; 데이터 정의 언어)

  1. 데이터 정의어
    :데이터베이스의 구조를 만들고 변경,수정 하는 명령어
    1. - CREATE TABLE : 테이블 생성
    2. - ALTER TABLE  : 테이블 수정
    3. - DROP TABLE  : 테이블 삭제
    4. - CREATE INDEX : 인덱스 생성
    5. - ALTER INDEX  : 인덱스 수정
    6. - DROP INDEX  : 인덱스 삭제

DML (Data Manipulation Language; 데이터 조작 언어)

  1. 데이터 조작어
    :테이블 안의 데이터를 넣고, 바꾸고, 지우고, 조회하는 데 사용해요.
    1. - SELECT
    2. - SELECT INTO
    3. - INSERT
    4. - DELETE
    5. - UPDATE
    6. - CREATE SEQUENCE
    7. - ALTER SEQUENCE
    8. - DROP SEQUENCE

DCL (Data Control Language : 데이터 제어 언어)

  1. 데이터 제어어
    사용자 권한을 관리해요. 누가 무엇을 할 수 있는지 정해요.
    1. - CREATE USER
    2. - ALTER USER
    3. - GRANT
  2. TCL (Transaction Control Language; 트랜잭션 제어 언어)
    1. - COMMIT
    2. - ROLLBACK

DDL (Data Definition Language; 데이터 정의 언어)

  • CREATE / ALTER / DROP [테이블 or 인덱스]

CREATE TABLE (테이블 생성)

CREATE TABLE 테이블명 (
    컬럼명 컬럼 타입 ,
             ... ,
    <column-name-n> <type>
)
[tablespace 테이블스페이스명] -- 생략시 default tablespace에 생성.
;

ALTER TABLE (테이블 변경)

  • 컬럼 추가
    ALTER TABLE 테이블명
    ADD ( 컬럼명 데이터타입, ...<column-name-n> <type> );
  • 컬럼 수정
    ALTER TABLE 테이블명
    MODIFY ( 컬럼명 새로운타입 );
  • 컬럼 삭제
     
    ALTER TABLE 테이블명
     DROP COLUMN 컬럼명;

DROP TABLE (테이블 삭제)

DROP TABLE 테이블명 ;

CREATE INDEX (인덱스 생성)

CREATE INDEX 인덱스명 
    ON 테이블명 (
              컬럼1,컬럼2, ...
              );

ALTER INDEX (인덱스 수정)

  • 인덱스 재생성 (통계정보 수집은 동시에 )
    -- COLLECTING STATISTICS ON INDEX
    ALTER INDEX 인덱스 
        REBUILD COMPUTE STATISTICS; -- 인덱스를 통계정보화 함께 리빌드 한다.
  • 인덱스명 변경
    -- RENAME INDEX
    ALTER INDEX 인덱스명
         RENAME TO 새 인덱스명;

DROP INDEX (인덱스 삭제)

DROP INDEX 인덱스명;

DML (Data Manipulation Language; 데이터 조작 언어)

SELECT (조회)

SELECT 컬럼명1, 컬럼명2, ..., <column-name-n>
 FROM 테이블명1,테이블명2, ..., <table-name-n>
WHERE <조건 표현 구문 >
GROUP BY <그룹핑 컬럼>, ..., <grouping-column-name-n>
HAVING <그룹핑 표현구문>
 ORDER BY <정렬 컬럼1>, ..., <order-column-name-n>
;

INSERT (입력)

  • 전체 데이터 입력시
    -- INSERT ALL VALUES
    INSERT INTO 테이블명
    VALUES ( 값1, ..., <value-n> );
  • 부분 데이터 입력시
     
    -- INSERT SOME VALUES
    INSERT INTO 테이블명 ( 컬럼명1, ..., <column-name-n> )
    VALUES ( 값1, ..., <value-n> );

DELETE (삭제)

DELETE FROM 테이블명
      WHERE 조건표현구문;

UPDATE (갱신)

UPDATE 테이블명
   SET 컬럼명 = <value>
 WHERE 조건표현구문

CREATE SEQUENCE

CREATE SEQUENCE 시퀀스명
       MINVALUE <min-value>
       MAXVALUE <max-value>
     START WITH <start-value>
   INCREMENT BY <step-value>
          CACHE <cache-value>

ALTER SEQUENCE

-- ALTER MINVALUE
ALTER SEQUENCE 시퀀스명 MINVALUE <new-min-value>;

-- ALTER MAXVALUE
ALTER SEQUENCE 시퀀스명 MAXVALUE <new-max-value>;

-- ALTER INCREMENT
ALTER SEQUENCE 시퀀스명 INCREMENT BY <new-step-value>;

-- SET CYCLE OR NOCYCLE
ALTER SEQUENCE 시퀀스명 <CYCLE | NOCYCLE>;

-- ALTER CACHE
ALTER SEQUENCE 시퀀스명 CACHE <new-cache-value>;

DROP SEQUENCE

DROP SEQUENCE 시퀀스명;

DCL (Data Control Language; 데이터 제어 언어)

  • CREATE USER
CREATE USER 유저명 IDENTIFIED BY <user-password>;
  • ALTER USER
ALTER USER 유저명 IDENTIFIED BY <new-user-password>;
  • GRANT
GRANT 권한 TO 유저명;

TCL (Transaction Control Language; 트랜잭션 제어 언어)

  • COMMIT
  • ROLLBACK



FROM 절

WHERE 절

GROUP BY 절

ORDER BY 절

WITH 절

SQL 조인

INSERT 구문

UPDATE 구문

MERGE 구문


SQL 활용

오라클SQL 과 안시SQL

SQL 실행원리 와 과정

최적의 SQL 작성법

스칼라 인라인뷰 서브쿼리

원도우 함수

그룹 함수

인덱스

CONNECT BY 절

LATERAL


PL/SQL 기초

함수

프로시져

패키지

트리거


SQL 고급

SQL 튜닝

목차