다시 이음

SQL (1) - SQL 기초 본문

채우기/SQLD 준비

SQL (1) - SQL 기초

Taeho(Damon) 2022. 5. 2. 11:00

안녕하세요.

 

SQLD 자격증을 준비하면서 정리할 내용들을 정리하려고 합니다.

 

MySQL 도서를 읽으면서 정리할 내용을 주로 기록할 것입니다.

 

PART1

 

DBMS는 데이터 베이스를 관리하는 역할을 하는 소프트웨어를 지칭합니다.

 

(1)데이터베이스의 특징

- 데이터의 무결성 : 데이터에 오류가 있으면 안됩니다.

-데이터의 독립성 : 변화되는 내용이 있더라도 기존에 작성된 응용프로그램에는 영향을 끼치면 안됩니다.

-보안 : 접근이 허가된 사용자만 접근이 가능해야합니다.

-데이터 중복의 최소화

 

(2) 요구사항 분석과 시스템 설계 그리고 모델링

 

- 정보 시스템 구축 절차

분석,설계, 구현, 시험, 유지보수 5가지 단계를 거칩니다.

 

- 데이터베이스 모델링과 필수 용어

  • 데이터 : 하나하나의 단편적인 정보
  • 테이블 : 데이터를 표 형태로 표현한 것
  • 데이터베이스 : 테이블이 저장되는 저장소
  • 데이터 형식
  • Primary Key(기본키) : 각 행을 구분하는 유일한 열(중복 x, 비어있어도 x)
  • 외래키(Foreign Key) : 두 테이블의 관계를 맺어주는 키

- 데이터베이스 구축 절차

 

데이터베이스 생성 - 테이블 생성 - 데이터 입력 - 데이토 조회/활용

 

- 테이블 외의 데이터베이스 개체

  • 인덱스 : 테이블의 열 단위에 해당
  • 뷰 : 가상의 테이블. 진짜 테이블에 링크된 개념으로 조회만 가능한 테이블
  • 스토어드 프로시저 : MySQL에서 제공해주는 프로그래밍 기능(함수와 같이 정의)

- 데이터베이스의 백업과 복원

  • Data Export : 데이터 백업
  • Data Import,Restore : 데이터 복원

 

Part 2 SQL 기본

 

- 데이터베이스 모델링

  • 데이터 중복이 있는지
  • 데이터가 없는 부분이 있는지
  • 부모테이블, 자식 테이블

- SQL 기본

  • SELECT 구문 : 테이블에서 정보 추출 [ SELECT 열 이름 FROM 테이블이름 WHERE 조건 ]
  • USE 구문 : 데이터베이스 지정 [ USE 데이터베이스_이름]
  • WHERE 구문 : 조건문 필드
    -BETWEEN : WHERE height BETWEEN 180 AND 183
    -관계연산자 : WHERE height >= 180 AND height <= 183
    -OR : WHERE addr = '서울' OR addr = '경기'
    -IN : WHERE addr IN ('서울','경기','충청')
    -LIKE : WHERE name LIKE '김%' OR name LIKE '_종신'
  • 서브쿼리 : WHERE 구문에 조건을 쿼리로 입력하는 경우
    -ANY(SOME) : 조건이 여러 개 나왔을 때 그중 하나만 달성해도 출력
    -ALL : 여러가지 조건 모두 달성하는 값 출력
  • ORDER BY : 순서 정렬
    -DESC : 내림차순
    -ASC : 오름차순
  • DISTINCT : 중복값 제외
  • LIMIT : 출력 개수를 제한
  • 테이블 복사하기 : CREATE TABLE 새로운 테이블 (SELECT 복사할 열 FROM 기존 테이블)
  • GROUP BY :  그룹화
  • HAVING : WHERE과 같은 개념으로 조건을 제한하지만 집계함수에 대해서 제한하는것 (GROUP BY 다음에 나와야함)
  • ROLL UP : 총합 또는 중간 합계가 필요할 때

-SQL의 분류

  • DML(Data Manipulation Language) : 데이터를 조작(선택, 삽입, 수정, 삭제) 사용되는 언어
    SQL문 중에 SELECT, INSERT, UPDATE, DELETE 해당(트랜잭션이 발생하는 SQL)
  • DDL(Data Definition Language) : 데이터 베이스, 테이블, 뷰, 인덱스 등의 데이터베이스 개체를 생성/삭제/변경하는 역할
    SQL문 중에 CREATE, DROP, ALTER 등이 해당(트랜잭션이 발생하지 않음)
  • DCL(Data Control Language) : 사용자에게 권한을 부여하거나 빼앗을 때 주로 사용되는 언어
    SQL문 중에 GRANT, REVOKE, DENY 등이 해당

 - 데이터의 변경을 위한 SQL문

  • INSERT문 : 데이터를 삽입하는 명령어
    AUTO_INCREMENT : 1부터 자동으로 증가하는 고유번호를 입력할때
  • UPDATE문 : 기존에 입력된 값 변경하는 명령어
    [UPDATE 테이블이름 SET 열이름 = 값 WHERE 조건]
  • DELETE FROM 문 : 행단위로 삭제
  • TRUNCATE 문 : 트랜잭션 로그를 기록하지 않고 DELETE
  • WITH 문 : 객체지향문법과 같이 생성한 쿼리를 함수와 같이 정의하고 그뒤에 중첩되는 쿼리문에 있어 간결함을 유지
    [WITH abc( userid, total )
    AS
    (SELECT userid, SUM(price*amout) FROM buytbl GROUP BY userid)
    SELECT * FROM abc ORDER BY total DESC;]

'채우기 > SQLD 준비' 카테고리의 다른 글

SQL (3) - 인덱스와 스토어드 프로그램  (0) 2022.05.10
SQL (2) - 데이터 형식과 조인  (0) 2022.05.03