상세 컨텐츠

본문 제목

SQLD 공부 7일 차

SQL과 데이터베이스

by 크앙크아앙 2025. 6. 4. 22:09

본문

오늘의 작성 내용은 관계형 데이터베이스가 무엇인지 간단하게 설명하는 것을 시작으로 SQL의 기본적인 문법인 SELECT절에 관한 설명을 작성하겠습니다.


1. 데이터베이스

1) 데이터란 무엇인가?

- 데이터는 컴퓨터로 작업을 수행할 때 처리 대상이 되는 것을 의미한다.(이미지, 음성, 텍스트, 등)

- 현실 세계에서 측정되거나 수집된 사실이나 어떤 값

 

2) 데이터베이스란 무엇인가?

- 데이터베이스란 앞서 말한 데이터를 효과적으로 가공하여 유용한 정보를 얻기 위해 고안된 방법이다.

- 데이터베이스는 데이터를 일정한 체계에 따라 통합하여 디스크나 메모리에 저장한 것이다.

- 데이터의 독립성, 중복 저장 최소화, 통합 처리, 자체 관리 등의 이점이 있다

- 거의 모든 애플리케이션은 데이터베이스를 사용하여 데이터의 관리 및 처리를 진행한다. (모든 애플리케이션X)

- 데이터베이스의 구축 및 관리를 돕는 프로그램을 'DBMS' 또는 '데이터베이스 관리 시스템'이라고 부른다

 

3) 관계형 데이터베이스란?

- 관계형 데이터베이스는 E.F.Codd 박사가 1970년도에 발표한 정규화 이론에 따라 데이터의 일관성 문제를 해결한 데이터베이스이다

- 2차원의 행(Row)과 열(Column)의 테이블(Table)로 구성되어 있다

- SQL이라는 공통된 질의 언어를 정의하여 원하는 정보를 보다 쉽게 조회, 가공, 추출이 가능하다.

 

1. TABLE

 

 

1) TABLE = ENTITY = Relation

2) Column = Field = Attribute

3) Row = Record = Tuple = Instance

 

2. SQL

- SQL은 구조화된 질의언어를 뜻한다

- SQL은 원하는 결과만을 서술하는 언어로 비절차적 언어의 특성을 띄고 있다.

(∴단, PL/SQL, T-SQL의 경우 프로시저, 함수, 트리거 등을 작성하는 문법의 경우 절차적 언어의 특징도 포함하고 있다)

 

DDL(Data Definition Language)

데이터 정의 언어
- 스키마를 정의하는 명령어
- CREATE, ALTER, DROP, RENAME, TRUNCATE
- ROLLBACK 불가능
DML(Data Manipulation Language)

데이터 조작 언어
- 테이블의 데이터를 조회, 입력, 수정, 삭제하는 명령어
- 커밋(COMMIT) 이전에 롤백(ROLLBACK) 가능
- SELECT, INSERT, UPDATE, DELETE, MERGE
DCL(Dato Control Language)

데이터 제어 언어
- 사용자 접근 권한을 부여하는 명령어
- GRANT, REVOKE
TCL(Transaction Control Language)

트랜잭션 제어 언어
- 트랙잭션의 제어를 다루는 명령어

  DROP TRUNCATE DELETE
명령어 구분 DDL DDL DML
삭제 범위 테이블 자체 테이블 내 모든 데이터 테이블 내 범위 지정 가능
로그 여부 X X O
롤백 가능 여부 X X O

 


2. SELECT 문

- 데이터를 조회하는 명령어

- WHERE문을 사용하여 특정 조건 조회 가능

 

SQL의 실행 순서

순서 작성 순서 실행 순서
1 SELECT FROM
2 FROM WHERE
3 WHERE GROUP BY
4 GROUP BY HAVING
5 HAVING SELECT
6 ORDER BY ORDER BY

 

작성 예시
SELECT * FROM [Table_name]
WHERE [Column_name] [연산자]
GROUP BY [Column_name]
HAVING [조건]
ORDER BY [Column_name] desc
순서 연산자 설명
1 산술 연산자(*,/,+,-) 사칙연산
2 연결 연산자 / 합성 연결자(||) 문자열 연결
3 비교 연산자(<,>,<=,>=,=) 크기 비교
4 IS NULL/ LIKE / IN 조건 비교
5 BETWEEN 범위 비교
6 NOT 연산자 논리 부정
7 AND 연산자 논리 곱
8 OR 연산자 논리 합

 

1. 산술연산자

연산자 설명 연산 우선순위
() 우선적으로 계산 할 식을 묶는다 1
* 곱셈을 수행한다 2
/ 나눗셈을 실행한다
%, MOD 나머지 연산을 실행한다
+ 덧셈을 실행한다 3
- 뺄셈을 실행한다

 

- 단일행 연산만 가능하다

∴ NULL 과의 연산시 NULL값을 반환한다

0으로 나눌시 오류가 발생한다

 

2. 합성연산자 / 연결연산자

'||'는 합성 연산자로 문자열을 연결할 때 사용한다

 

예시)
예시 TABLE

입학년도 입학순서
2017 001
2017 002
2018 001
2018 002


SELECT '입학년도' || '입학순서' as '학번' FROM FRESHMAN

결과 TABLE

학번
2017001
2017002
2018001
2018002

 


3. 함수

1. 문자열 함수

  종류 설명 작성법
1 LOWER 모든 문자열을 소문자로 변경하여 반환한다 SELECT LOWER(칼럼/문자) FROM 테이블;
2 UPPER 모든 문자열을 대문자로 변환하여 반환한다 SELECT UPPER(칼럼/문자) FROM 테이블;
3 CHR(CHAR) ASCII 코드에 해당하는 문자를 반환한다 SELECT CHR(num) FROM 테이블;
4 TRIM 지정된 문자열을 제거하여 반환한다 SELECT TRIM('문자열') FROM 테이블;
5 LTRIM 좌측에서 지정된 문자열을 제거하여 반환한다 SELECT LTRIM('문자열' FROM 칼럼/문자) FROM 테이블;
6 RTRIM 우측에서 지정된 문자열을 제거하여 반환한다 SELECT RTRIM('문자열' FROM 칼럼/문자) FROM 테이블;
7 SUBSTR 지정된 범위의 문자열을 반환한다 SELECT SUBSTR('칼럼/문자',시작,끝) FROM 테이블;
8 LENGTH 문자열의 길이를 반환한다 SELECT LENGTH(칼럼/문자) FROM 테이블;
9 REPLACE 기존 문자열을 지정된 문자열로 변경하여 반환한다 SELECT REPLACE(칼럼/문자,'기존 문자열','대체할 문자열') FROM 테이블

 

- TRIM 함수의 경우 LEADING / TRAILING / BOTH 를 활용하여 시작 지점을 선택 가능하다

(∴ 시작 지점을 별도로 지정을 안한다면 BOTH 적용)

 

2. 숫자 함수

 

  종류 설명 작성법
1 ABS 숫자의 절대값을 반환한다 SELECT ABS(칼럼/숫자형) FROM 테이블;
2 MOD(%) 숫자의 나머지값을 반환한다 SELECT MOD(칼럼/숫자형,나누는 칼럼/숫자형) FROM 테이블;
3 ROUND 숫자의 반올림 한 값을 반환한다 SELECT ROUND(칼럼/숫자형, 반올림 자릿수) FROM 테이블;
4 TRUNC 숫자의 버림값을 반환한다 SELECT TRUNC(칼럼/숫자형, 버림 자릿수) FROM 테이블;
5 FLOOR 숫자의 내림값을 반환한다(정수) SELECT FLOOR(칼럼/숫자형) FROM 테이블;
6 CEIL 숫자의 올림값을 반환한다(정수) SELECT CEIL(칼럼/숫자형) FROM 테이블;
7 SIGN 숫자의 음수, 양수 여부를 반환한다 SELECT SIGN(칼럼/숫자형) FROM 테이블;

 

 

3. 날짜 함수


  종류 설명 작성법
1 SYSDATE 오늘 날짜를 날짜형으로 반환한다 SELECT SYSDATE FROM 테이블;
2 EXTRACT 칼럼 혹은 입력된 값에서
DATE, MONTH, YEAR, MINUTE 등을 추출한다.

추출한 값은 숫자형 데이터이다
SELECT EXTRACT(DATE from 칼럼/날짜형) FROM 테이블;

 

4. 변환 함수

  종류 설명 작성법
1 TO_DATE 문자열을 날짜형 데이터로 변환하여 반환한다 SELECT TO_DATE(240604,YYMMDD) FROM 테이블;
2 TO_NUMBER 문자열을 숫자형 데이터로 변환하여 반환한다 SELECT TO_NUMBER('240604') FROM 테이블;
3 TO_CHAR 숫자열/날짜형 값을 문자열 데이터로 변환하여 반환한다 SELECT TO_CHAR(240604) FROM 테이블;

 

5. NULL 함수

  종류 설명 작성법
1 NVL NULL에 해당하는 값을 변환하여 반환한다 SELECT NVL(칼럼,변환할 값) FROM 테이블;
2 NULLIF 입력된 인자가 같은면 NULL을 반환하고
다르면 철번째 인자를 반환한다
SELECT NULLIF(칼럼,비교값) FROM 테이블;
3 COALESCE NULL이 아닌 첫번째 인자를 반환한다 SELECT COALESCE(칼럼,칼럼,,,) FROM 테이블;

 

6. CASE

- 특정 값을 가지면 이를 대체하는 새 값을 반환하는 연산

 

1. CASE 작성법

[형식 1]

SELECT [칼럼명]
     CASE [칼럼명]
     WHEN [값1] THEN [값A]
     WHEN [값2] THEN [값B]
     ELSE 값 [값E]
     END
FROM TABLE;

 

[형식 2]

SELECT [칼럼명]
    CASE
    [칼럼명] <비교연산자> [값1] THEN [값A]
    [칼럼명] <비교연산자> [값1] THEN [값A]
    ELSE 값 [값E]
     END
FROM TABLE;

 

[형식 3]

SELECT DECODE(칼럼명,값1,값A,값2,값B,값3,값C,,,,) FROM TABLE;

'SQL과 데이터베이스' 카테고리의 다른 글

SQLD 공부 10일 차!  (7) 2025.06.08
SQLD 공부 9일 차!  (0) 2025.06.05
SQLD 공부 6일 차 (2)  (3) 2025.06.02
SQLD 공부 6일 차!  (1) 2025.05.30
SQLD 공부 5일 차  (6) 2025.05.27

관련글 더보기