SQL(Structured Query Language)
DBMS에서 데이터를 관리/검새하기 위해 사용되는 표준 데이터베이스 언어
- DBMS 란
![](https://blog.kakaocdn.net/dn/bSsGXa/btsvniJE7HB/BxUoD25fdsV9bN26FStKtk/img.png)
데이터(DATA)
- 수, 영상, 단어 등의 형태로 된 의미 단위
- 테이블 의미 : DB(데이터베이스)에서 자료를 저장하는 곳(논리적 공간)
데이터베이스 (DB)
- 대용량의 데이터 집합을 체계적으로 구성한 것
- 하나의 DB에는 여러 개의테이블이 존재할수 있음
데이터베이스 관리 시스템(DBMS)
- 데이터 베이스를 관리/운영하는 소프트웨어
- 하나의 DBMS에는 여러 개의 DB가 존재할 수 있음
데이터베이스 관리 시스템(DBMS) 특징
1) 데이터 무결성
- 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
- 데이터의 오류 x
1-1) 데이터 무결성 제약조건
제약조건 : 컬럼의 성격(특징) 지정, 컬럼별로 지정함
제약조건 지정시 그 컬럼에는 그 성격(특징)의 데이터만 저장가능하다(데이터 저장 제한기능)
2) 데이터 독립성
- DB 크기나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 으용프로그램에는 영향 X
-> 의존적 관계가 아닌 독립적 관계
3) 보안
- DB 내 데이터에는 접근이 허가된 사람만 접근할 수 있어야 함
- 접근할 때에도 사용자의 계정에 따라 다른 접근 권한을 가져야 함4) 데이터 중복의 최소화
- 동일한 데이터가 여러 개 중복 저장되는 것을 가능한 방지함
5) 데이터 안전성 향상
- 백업, 복원 기능 제공
*** 관계형 DBMS(RDBMS)
- 데이터를 저장하는 최소 단위 : 테이블(Relation, Entity)
- 여러 테이블을 생성하고, 테이블 간의 관계를 형성해서 데이터를 저장/관리함
- 모델링 과정
요구사항 분석
- 시스템에 대한 사용자의 요구사항을 수집 및 분석하는 것
시스템 설계
- DB 시스템을 구축하는 초기 단계
- 시스템 구축을 위해 필요한 요구사항과, 이를 충족시키기 위한 설계 및 계획 수립
- DB 구조/기능, 인터페이스, 보안 등 정의
- 데이터를 체계적으로 관리/활용할 수 있도록 함
모델링
- 시스템에 사용될 데이터들을 수집하고, 어떻게 관리할지 설계하는 것
- CRUD 란
DB 또는 실무 프로젝트 많이 사용하는 약어
테이블(데이터) 조작 방법(생성, 복사, 삭제, 테이블/컬럼 주석 사용)
- C(CREATE 문(생성))
- R(READ, SELECT 문(조회))
- U(UPDATE 문(수정))
- D(DELETE 문(삭제))
SQL Developer 단축키
해당 코드 실행 | [Ctrl] + [Enter] |
전체 코드 실행 | [Ctrl] + [Shift] + [Enter] |
코드 삭제 | [Ctrl] + [L] |
코드 복사 | [Ctrl] + [D] |
코드 힌트 | [Ctrl] + [Space] |
주석 처리 | [Ctrl] + [/] |
코드 자동 정렬 | [Ctrl] + [B] |
영문 소문자 <-> 대문자 변환 | 문자열 드래그 후 [Alt] + ['(작은 따옴표)] |
예약어는 대문자로, 직접 이름을 정의하는 단어들은 소문자로 작성하기
스네이크 표기법 권장(연결 단어를 _) ex) student_name
테이블 데이터 자료형(타입)
데이터 타입 | 의미 | |
CHAR(크기) | 고정 크기 문자열 자료형(타입) 최대 : 2000byte 최소 : 1 byte |
VARCHAR2(크기) : 문자열 자료형, 가변자료형 (VS CHAR(크기): 고정자료형) 예) VARCHAR2(4000) : 최고 크기, VARCHAR2 : 잘 안씀(1글자만 들어감) |
VARCHAR2(크기) | 가변 크기 문자열 자료형(타입) 최대 : 4000byte 최소 : 1 byte |
|
NUMBER (정수크기, 소수크기) |
숫자 데이터 자료형(타입) 정수,소수 로 표현 (정수, 소수) 생략가능 |
NUMBER(2) : 2자리수 정수, NUMBER(2, 3) : 2자리수 정수 + 3자리수 소수점 NUMBER : 실수, 정수 무한 크기로 지정가능(크기 생략) 단, 크기가 지정되면 그 크기 이하로만 값을 넣을 수 있음(기본) |
DATE | 날짜 형식을 저장하기 위한 데이터 자료형 (타입) |
|
BLOB | 대용량의 이미지 등을 저장하기 위한 데이터 자료형(타입) | |
CLOB | 대용량의 텍스트 데이터를 저장하기 위한 데이터 자료형(타입) |
(C) CREATE(생성) 사용법
DDL( DATA DEFINITION LANGUAGE : 데이터 정의어(용어))
의미 | 명령문 예시 |
테이블 생성(만들기) | CREATE TABLE 테이블명 (컬럼명 자료형(크기), ... ); |
테이블(데이터) 만들기 복사 생성 | CREATE TABLE 복사할테이블명 AS SELECT * FROM 원본테이블; |
테이블만 만들기 복사 생성 (데이터 빼고 테이블 설계(디자인)만 복사시 WHERE 거짓조건;) |
CREATE TABLE 복사할테이블명 AS SELECT * FROM 원본테이블 WHERE 1 = 2; |
테이블 주석 달기 테이블에 상세 설명을 불일 수 있음 |
COMMENT ON TABLE 테이블명 IS '테이블주석'; |
컬럼 주석 달기 컬럼에 상세 설명을 불일 수 있음 |
COMMENT ON COLUMN 테이블명.컬럼명 IS '컬럼주석'; |
테이블 삭제 | DROP TABEL 테이블명; |
명령문 실행한 입력 결과 취소 | ROLLBACK; |
입력 결과 최종 저장 | COMMIT; |
테이블 설계구조 보기 | DESC 테이블명; |
(R) SELECT 사용법
데이터를 조회하기 위한 Select 절
키워드 | 의미 | 명령문 예시 |
SELECT 절 | 조회하고자 하는 컬럼명의 목록을 나열함 | SELECT [DISTINCT] {* | 컬럼 [as 별명]} FROM 테이블명 [WHERE 조건명] [GROUP BY 그룹핑할 컬럼목록] [HAVING 그룹조건] [ORDER BY 정렬대상컬럼목록] |
DISTINCT | 동일한 내용을 한 번씩만 출력하여 중복을 제거함 | |
FROM 절 | 조회하고자 하는 테이블명의 목록을 나열함 | |
WHERE 절 | 조회하고자 하는 로우의 조건을 나열함 | |
GROUP By 절 | 동일한 값을 갖는 로우들을 한 그룹으로 묶음 | |
HAVING 절 | 로우들의 그룹이 만족해야 하는 조건을 제시함 | |
ORDER BY 절 | 로들의 정렬 순서를 제시함 | |
All 컬럼 조회 | All 컬럼보기 | SELECT * FROM 테이블명/DRUL |
1개 컬럼 조회 | SELECT 컬럼명 FROM 테이블명 |
SELECT_WHERE 절
02_SELECT_WHERE
데이터를 조건을(비교 연산자) 붙여 조회하기 비교연산자 > , <, >=, <=, =(같다), <>( 같지않다 )
데이터 추출 |
SELECT 컬럼명,컬럼명2 ... FROM 테이블명 WHERE 조건절(컬럼명 > 값) 이거나 |
BETWEEN ~ AND 데이터 값과 값의 사이 또는 초과의 값 조회하기 |
1) BETWEEN 사용 SELECT 컬럼명 FROM 테이블명 WHERE BETWEEN 작은값 AND 큰값; 2) NOT BETWEEN 사용 SELECT 컬럼명 FROM 테이블명 WHERE NOT BETWEEN 작은값 AND 큰값; 3) OR 사용 SELECT 컬럼명 FROM 테이블명 WHERE 작은값 OR 큰값; |
IN OR 로 연결된 데이터를 간단하게 사용 가능 |
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IN ( 값, 값2, ... ); |
LIKE 일부 키워드(영문자, 한글)만 사용해서 비슷한 것들만 추려서 조회하기 IN, BETWEEN 의 반대를 나타낼때 NOT 앞에 붙여서 사용했음 LIKE 의 반대를 나타낼때 똑같이 사용할 수 있음 : NOT LIKE |
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%_키워드%'; % : 키워드를 제외한 문자들 _ 언더바( 키워드를 제외한 어떤 1문자를 의미 ) |
NULL 검색(조회) 예약어 |
테이블 데이터 자료형(타입)
데이터 타입 | 의미 |
CHAR(크기) | 고정 크기 문자열 자료형(타입) 최대 : 2000byte 최소 : 1 byte |
VARCHAR2(크기) | 가변 크기 문자열 자료형(타입) 최대 : 4000byte 최소 : 1 byte |
NUMBER(정수크기,소수크기) | 숫자 데이터 자료형(타입) 정수,소수 로 표현 (정수, 소수) 생략가능 |