SQL - Intro
JAVA(자바), Python(파이썬) 기반의
AI 활용 응용 소프트웨어 개발자 양성 과정
찾으시는 정보가 있으시다면
주제별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 조건식