[SQL] SQL_기초

DEVELOPERS_Ivan ㅣ 2023. 9. 11. 19:37

SQL(Structured Query Language)
DBMS에서 데이터를 관리/검새하기 위해 사용되는 표준 데이터베이스 언어

 

- DBMS 란

더보기

 

데이터(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

SQL 질의문( query )특징 : 대소문자 구분이 없음( 오라클 DB : 대문자가 성능이 빠름 )

테이블 데이터 자료형(타입)

데이터 타입 의미  
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(정수크기,소수크기) 숫자 데이터 자료형(타입)
정수,소수 로 표현
(정수, 소수) 생략가능