/ LECTURE

SQL - Intro

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

42일차 수업

주석

/*
*	다중 주석
*/

	-- 단일 주석

DataBase1

우리가 저장해야하는 정보를 저장하는 공간, 데이터의 집합

항상 같은 정보를 유지함으로써 식별 가능, 검색이 용이

활용 : 중복된 정보를 처리하는 것이 목표, 관련성 있는 데이터들끼리의 그룹화

행과 열, 트리 구조 데이터 베이스 > 관계형 데이터 베이스, 객체 지향 데이터 베이스

파일로 관리할 경우 중복, 보안, 경제성, 무결성 등의 문제

DataBase2

통합 데이터 : 여러 부서에서 사용하는 데이터를 한 곳에 공동 관리

  • 동일한 데이터는 중복 허용하지 않고, 검색의 효율성을 위해 최소한의 중복만 허용

저장 데이터 : 컴퓨터가 접근할 수 있는 저장매체에 저장된 것

운영 데이터 : 조직의 운영에 기본적으로 반드시 필요한 데이터를 저장하는 것

  • 언제나 필요한 정보는 운영 데이터에 저장

공용 데이터 : 한 조직의 여러 프로그램들이 공동으로 사용하는 것

  • 여러 사용자가 서로 다른 목적으로 공유한다

DataBase3

실시간 접근성 : 비정형적인 질의를 실시간 처리

계속적인 변화 : 데이터를 추가, 삭제, 갱신할 때 항상 변하고, 변화된 데이터를 정확하게 유지

동시 공유 : 같은 내용의 데이터를 여러 사람이 다른 방법을 동시에 공유해야 함

내용에 의한 참조 : 데이터가 저장 되어있던 메모리, 주소, 위치에 의해서 참조하는 것이 아니라

사용자가 요구하는 데이터의 내용에 따라 참조

용어

DBMS : 데이터 베이스 관리 시스템

RDBMS : 관계형 데이터 베이스 관리 시스템 : 오라클, MYSQL, MariaDB, MSSQL 등등..

DBA : 데이터 베이스 관리자, 데이터 베이스를 생성, 변경 관리 제어자

응용 프로그래머 : 개발자, 인터페이스, 응용프로그램 개발 + 데이터 베이스 설계 + 데이터 저장

SQL

Structured Query Language, 프로그래밍이 아닌 조작 명령어

데이터 베이스 관리(조회, 입력, 수정, 삭제 등)할 때 사용하는 언어

명령어의 끝은 항상 세미콜론

  • DDL : Data Definition Language, 데이터 정의 언어

  • DML : Data Manipulation Language, 데이터 조작 언어

  • DCL : Data Control Language, 데이터 제어 언어

데이터타입

varchar2(m) : 가변 길이 문자 데이터 (4000byte), 크기가 입력한 크기만큼 줄어듬

char(n) : 고정 길이 문자 데이터 (2000byte), 입력한 크기와 무관하게 크기 고정

number(p,s) : 숫자만 입력 가능한 데이터 타입 전체 자리(p) 중 소수점 이하 s 자리까지

DATE, LONG, BLOB, CLOB 있음

DDL

테이블 생성

  • 테이블 명으로 첫 글자는 문자, _ $ # 사용가능, 길이 1~30, 예약어는 불가, 소문자와 언더바 이용
CREATE TABLE 테이블명(
     컬럼명 데이터타입(속성),
     컬럼명 데이터타입(속성)
);

테이블 변경

 ALTER TABLE 테이블명 add(컬럼명 데이터타입);
 ALTER TABLE 테이블명 modify(컬럼명 데이터타입); -- 변경대상이 있어야 함
 ALTER TABLE 테이블명 drop(컬럼명);

변경 주의 사항

  • 데이터 타입 변경할 수 없음, 기존 데이터의 훼손이 일어남

  • 같은 이유로 크기를 늘릴 수 있지만 줄일 수는 없음

  • 모든 데이터가 null 혹은 행이 존재하지 않는다면 줄이거나 타입을 변경할 수 있음

  • Default 옵션 : 기본 값을 설정하는 옵션

  • Not null 옵션 : 옵션 추가를 하려면 모든 데이터가 null이 없어야 함

테이블 삭제

 DROP TABLE 테이블명 [CASCADE CONSTRAINTS]
 DROP TABLE 테이블명 -- 삭제가 되면 복구 불가능 (history 일정 부분 복구 가능)
 DROP TABLE 테이블명 CASCADE CONSTRAINTS -- 삭제가 되면 복구가 불가능, (history 일정부분 복구 가능), 제약조건과 무관하게 삭제
 DROP TABLE 테이블명 purge -- 삭제 시에 완전 삭제

제약조건

가능한 것과 불가능한 것을 구분 짓도록 하는 조건, 제약 조건을 지킨 값만 허용

NOT NULL : 이 컬럼에는 null이 안됨

UNIQUE : 이 컬럼은 중복이 안됨

PRIMARY KEY : null, 중복 허용 안함

FOREIGN KEY : 나중에 배울 것

CHECK : 제한적인 입력 처리

DEFAULT : 제약 조건 아니지만, null로 입력한 값에 자동으로 기본값을 입력

DML

조건이 없으면 테이블 내의 모든 데이터에 적용

조회 : SELECT 컬럼명, 컬럼명… FROM 테이블명 WHERE 조건식

입력 : INSERT INTO 테이블명(컬럼명, 컬럼명…) VALUES (컬럼값, 컬럼값..)

수정 : UPDATE 테이블명 SET 컬럼명 = 변경값 WHERE 조건식

삭제 : DELETE FROM 테이블명 WHERE 조건식

COMMIT : 현재 상태를 저장하는 명령어