Chapter 2. SQL

김승현·2021년 10월 7일
0

SQL(Structured Query Language/ 구조화된 질의 언어)


  • 관계형 데이터베이스 시스템(RDBMS) 에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
  • 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성 함



기본 SQL 문법의 종류


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

  • 데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용
    - CREATE(개체 생성), ALTER(개체 수정), DROP(개체 삭제), TRUNCATE(개체 초기화)

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

  • Data를 조작하기 위해 사용하는 언어
  • Table 안에 데이터를 추가, 수정, 삭제, 조회 등을 하기 위해 사용
  • Data를 이용하려는 사용자와 시스템간의 인터페이스를 직접적으로 제공하는 언어
    - INSERT(데이터 삽입), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 검색) 등
    • SELECT 구문은 DQL(Data Query Language) 라고도 함

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

  • 사용자의 권한이나 관리자 설정 등을 처리하는 언어
    - GRANT(유저 권한 생성), REVOKE(유저 권한 삭제)

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

  • 트랜잭션 관리 제어 언어
    • 트랜잭션
      • 처리하는 업무의 작업 단위
      • 하나의 작업이 정상적으로 처리되었다명 COMMIT
      • 하나의 작업안에서 특정 작은 업무라도 잘못되면 ROLLBACK
  • COMMIT(트랜잭션 종료 처리 후 저장), ROLLBACK(트랜잭션 취소), SAVEPOINT(임시저장/ 포인트 지점 설정)



TABLE의 구조


  • Relation : Table을 Relation이라 부름
  • Column(Domain, Attribute) : 특정한 단순 자료형과 데이터의 열
  • Row(Tuple) : 테이블에서 한 객체의 대한 전체 정보를 표현한 행
  • Field : 단일 값 자체를 의미함



DB 데이터 타입(Oracle)


NUMBER 타입

  • NUMBER([P,S])
    • P : 표현할 수 있는 전체 숫자 자리수(1~38)
    • S : 소수점 이하 자리수(-84~127)
  NUMBER        -> 원래 데이터 형식
  NUMBER(3.2)   ->  X.XX
  NUMBER(4.2)   ->  XX.XX
  NUMBER(4.3)   ->  X.XXX
  NUMBER(4.-1)  ->  XXX0
  NUMBER(4.-3)  ->  X000

CHAR(NCHAR) 타입

  • CHAR (SIZE[byte | char])
  • 지정한 크기보다 작은 문자(열)이 입력 : 남는 공간은 공백으로 채움
  • 데이터 : ‘ ‘을 사용하여 표기, 대/소문자 구분
  • CHAR는 Byte 단위 / NCHAR는 글자수 단위
  • 사이즈 명시하지 않으면 1Byte
  • CHAR는 최대 2000Byte까지 가능
  • 알파뱃 : 아스키코드 값 (한글자당 1Byte)
  • 한글 : 유니코드 (한글자당 2Byte)/ Oracle XE는 3Byte 처리
CHAR(6) -> ORACLE
CHAR(9) -> ORACLE(공백 3칸)
CHAR(3) -> 에러

NCHAR(6) -> 공부(공백 4칸)
NCHAR(9) -> 공부(공백 7칸)
NCHAR(3) -> 공부(공백 1칸)

VARCHAR2(NVARCHAR) 타입

  • 가변 타입
  • 글자 수에 따라 가변 길이가 되어 공간을 효율적으로 사용
  • 최대 길이 : 4000Byte
  • NVARCHAR: 글자 수 단위 가변길이
VARCHAR(6) - > ORACLE
VARCHAR(9) - > ORACLE

VARCHAR(5) - > ORACLE(엄격모드시 에러)

DATE 타입

  • 일자(년/월/일) 및 시간 (시/분/초) 정보를 관리
  • 기본적으로 화면에 년/월/일 정보만 표기 됨
  • 날짜 연산 및 비교 가능
연산결과타입설명
날짜+숫자DATE작성한 숫자만큼 며칠 후
날짜-숫자DATE작성한 숫자만큼 며칠 전
날짜-날짜DATE두 날짜의 차이(일수)
날짜-숫자/24DATE날짜 +시간

NULL 데이터

  • NULL : 아무런 정의가 되어 있지 않은 값(0이나 공백과는 다른 값)

싱글쿼테이션과 더블쿼테이션 ('' , "")

  • 싱글쿼테이션과(‘ ‘) : 문자열 표기 시 사용
  • 더블쿼테이션 (“ “) : 컬럼명 등 감싸주는 기호로 사용
SELECT ‘Hello’ AS “기본 출력” FROM DUAL;
profile
개발자로 매일 한 걸음

0개의 댓글