SQL 첫걸음 1~2장

Tamszero·2025년 3월 23일

ECC

목록 보기
1/17

1장


  • DB : DataBase
  • DBMS : DataBase Management System -> 데이터 베이스를 다루는 기능 제공
  • RDBMS : Relational DataBase Management System (SQL을 다루는 데베)
  • SQL : RDBMS를 조작하는 언어
    - DML : Data Manipulate Language -> 데이터 추가.삭제.갱신 등
    - DDL : Data Definition Language -> 데이터 객체 정의
    - DCL : Data Control Language -> 트랜젝션 제어

데이터베이스의 종류

  1. 계층형 데이터베이스
    : 폴더와 파일의 계층구조로 저장하는 오래된 방식의 DB
    ex) HDD,DVD 파일시스템 ...

  2. 관계형 데이터베이스
    : 관계대수에서 착안한 행과 열을 가지는 표 형식 데이터

  3. 객체지향 데이터베이스
    : 객체 그대로를 데이터로 저장하는 것

  4. XML 데이터베이스
    : XML형식의 데이터를 저장, SQL 대신 XQuery 사용

    • XML이란?

      태그를 이용해 마크업 문서를 작성할 수 있도록 한 자료형식
  5. KVS
    : 키-벨류 스토어, 키와 값의 형태로 데이터를 저장 -> 열 지향 DB

데이터베이스 서버

많은 RDBMS가 클라이언트/서버 모델을 채택해 가동하고있다.
클라이언트는 서버에 접속요청,SQL명령 실행 요청을 보내고 서버는 이를 처리하여 응답한다.

  1. 웹 시스템에서의 클라이언트/서버
    : 클라이언트는 브라우저에서 웹서버 요청을 보냄 -> Request
    웹서버는 요청을 받아 HTML로 된 데이터로 처리 -> Response
  2. RDBMS의 클라이언트/서버
    : 클라이언트의 사용자인증 이 필요하다

웹 애플리케이션의 구조

웹 서버에서 동적으로 HTML을 생성하기 위해선 제어용 프로그램이 필요하다.
-> CGI 확장방식 사용을 통해 프로그램과 웹 서버 간을 연동,통신하여 처리한다

  1. 클라이언트 브라우저 -> 웹 서버에 요청
  2. 서버에서 CGI로 프로그램 실행 -> 프로그램이 동적으로 HTML 생성

실제로 DB에 접속하는 것은 CGI프로그램이다.
웹 서버의 CGI프로그램이 DB의 클라이언트가 된다.(DB에게 요청을 하므로)

2장


SELECT

  • select * from [table명];
  • 애스터리스크(*) 는 모든 열을 의미한다
  • 예약어와 데이터베이스 객체명은 대소문자를 구별하지 X
  • 테이블은 행과 열로 구성된 표 형식의 데이터다
  • 열은 하나의 자료형(문자형,수치형 등)만 가질 수 있다

NULL

  • 값이 없는 데이터로 아무것도 저장되어있지 않은 상태를 의미한다

DESC

  • desc [테이블명];
  • 해당 테이블에 어떤 열이 정의되어 있는지 알 수 있다
  • NULL은 널값을 허용할 것인지의 여부

자료형

  • INTEGER형
    : 정수값의 자료형
  • CHAR 형
    : 문자열 자료형. CHAR(10)으로 지정했을 경우 최대 10문자의 문자열을 저장할 수 있다. 또한 길이가 고정되기때문에 최대 길이보다 작을 경우 공백 문자로 나머지를 채운 후 저장.
  • VARCHAR 형
    : 문자열 자료형. CHAR과 달리 데이터 크기에 맞춰 저장공간의 크기도 변경된다. 가변 길이 문자열 자료형
  • DATE 형
    : 날짜값을 저장할 수 있는 자료형
  • TIME 형
    : 시간 자료형

검색 조건 지정

  • select 열1,열2 from 테이블명 where 조건식;
    : 열을 한정하는 방법. 여러개를 지정할 수 있다.
    조건식) no = 2; -> no열의 값이 2와 동일한 경우의 행만 반환함
    조건식) no <> 2; -> no열의 값이 2가 아닌 행만 반환
    조건식) name = '김선미'; -> name 열 값이 '김선미'인 행만 반환
    문자열 리터럴은 싱글쿼트로 감싸 표현해줘야함
    조건식) 열 IS NuLL -> 열의 값이 Null인 행만 추출
    no = null 검색은 불가

조건 조합

  • 조건식1 AND 조건식2
    : 2개의 조건식을 만족해야함
  • 조건식1 OR 조건식2
    : 조건식1 또는 2를 만족하면 됨
    주의
    where no=1 OR 2; -> 두번째 조건식 2는 상수 논리연산으로 항상 참이됨
    whre no=1 OR no=2; -> 올바른 조건식

우선순위
AND가 OR보다 우선순위가 높음
-> 괄호로 묶어 조건 설정을 잘 해두자

NOT 조합

  • select * from sample where NOT(a<>0 OR b<>0);
    : 조건식인 행을 제외한 나머지 행을 검색후 반환

LIKE로 패턴 매칭

  • select * from sample where text LIKE 'SQL%';
    : text 열이 SQL을 포함하는 행을 검색
    LIKE 에서는 메타문자 %(임의의 문자열)와 _를 사용할 수 있다
    메타문자를 검색시에는 \를 통해 이스케이프 필요
    문자열 상수 '의 이스케이프
    '를 이스케이프 하기 위해선 -> '' 와 같이 두개를 연속해 기술하면 됨
profile
공부로그

0개의 댓글