본문 바로가기

데이터베이스

[Oracle] SQL 명령문 정리

※ 수업 시간에 배운 내용 정리 및 메모를 위한 포스팅입니다.

실습에 사용된 프로그램 SQL Developer, Oracle 구동입니다. 

 

데이터베이스가 확립된 것은

1. 데이터베이스는 순서가 없다.

2. 표가 틀어지면 안된다. (표의 형태)

 

SQL

오라클에서는 대소문자 구분이 따로 없다..

 

RDBMS, 관계형 데이터베이스 용어

Database(데이터베이스) : 저장소에 구분되는 가장 큰 단위로 백업, 복구 등의 기준이 되기도 함

 

Table(테이블) : 데이터베이스에 저장되는 가장 큰 단위의 테이블은 여러 개의 테이블이 하나의 데이터베이스에

                    생성 될 수 있으면 기본적인 쿼리문을 수행하고 인덱스를 설정할 수 있는 단위

 

Column(컬럼) : 테이블의 세로 줄 하나 하나를 컬럼이라고 부름. 날짜, 시간, 제목 등등 하나의 특징들이

                    컬럼으로 나뉘어 짐

 

Row(행) : 여러 개의 컬럼을 가지는 하나의 줄 단위가 바로 Row임. 테이블 내의 모든 row에는

             동일한 컬럼 값들을 가지게 됨

 

컬럼과 필드 그리고 로우와 레코드는 다르게 불리지만 서로 동일한 의미를 가지고 있습니다.

즉 같은 뜻으로 해석 될 수 있습니다.

데이터베이스 스키마(Schema)
DB Schema :  데이타베이스를 설계, 생성하는 과정에서 각각의 테이블에 필요한 컬럼의 타입과 네이밍을

                   결정하는 것을 DB스키마, 데이터베이스 스키마로 부릅니다.

 

내용 참조 : https://webisfree.com/2014-07-14/[sql]-컬럼과-필드-구분법과-차이점-및-데이터베이스-기본-용어정리 

 

[SQL] 컬럼과 필드 구분법과 차이점 및 데이터베이스 기본 용어정리

데이터베이스, SQL과 관련된 내용을 찾다보면 용어 부분이 이해하기 어렵거나 혼동을 주기도 합니다. 아래는 데이터베이스와 관려된 용어를 간략하게 정리한 내용입니다.

webisfree.com

 


 

 

명령어

 

select : 내가 보고 싶은 필드명 *

from : 내가 보고 싶은 필드명을 가지고 있는 테이블 이름

         ex) select 이름, 학과 from 학생;

 

where : 조건(데이터에 대한)

          ex) select 이름, 학과, from 학생 where 학과='전산';

 

order by : 데이터 조회 정렬 ( ASC 오름차순 / DESC 내림차순 )

         ex) select 이름, 학과, from 학생 where 학과='전산' order by 이름 desc;

         ----> 내림 차순

         ex) select 이름, 학과, from 학생 where 학과='전산' order by 이름 [ 00, 00, 00 ...];

         ----> 여러 컬럼으로 정렬

 

group by : 필드명 

        집계함수(sum, avg, count, max, min)

 

having : 조건(집계 함수에 대한 조건)

 

기본기(primary key)의 조건

유일성 (Uniqueness)
기본키를 구성하는 컬럼은 테이블에서 레코드를 식별할 수 있도록 유일해야 함

최소성 (Minimality)
유일성을 만족하는 한도 내에서 최소한의 컬럼(하나 이상)으로 구성되어야 함

개체 무결성(Entity integrity)
기본키가 가지고 있는 값을 유일성이 보장받아야함.
(컬럼 값이 Null인 경우 값이 지정된 것이 아니기 때문에 기본키로 사용 불가)

char(고정크기 문자데이터 형식)

- 고정 사이즈이다.
- 남는 공간은 공백으로 채우게 된다.
- 공백 채움 비교(blank-padded comparison semantics)를 사용한다.
- 무조건 처음 선언된 10byte가 소요된다.
- 물론 값을 받아 올 때 공백은 자동으로 제거된다.
   공백까지 읽고 싶다면 PAD_CHAR_TO_FULL_LENGTH모드를 활성화하면 공백까지 다 읽어온다.
- CHAR형의 경우 삽입되는 데이터가 선언된 길이보다 작다면 남은 공간은
  스페이스로 채워지므로 공간의 낭비가 발생한다.
- 반드시 고정길에 해당하는 데이터만 CHAR로 선언하는게 좋다.

 

varchar(가변크기 문자데이터 형식)

- 데이터르 상입하면 데이터값 외에 삽인된 문자열의 길이를 저장하는데
  255글자 이하에는 1바이트, 그 이상은 2바이트의 추가 공간을 필요로 한다.
- 실질적인 데이터와 길이 정보도 같이 저장된다.
- 저장될 때에 공백이 추가되지 않는다.
( 하지만 공백에 대한 처리는 버전에 따라 다르다. )

 

내용 참조 : https://goodgid.github.io/JS-char-vs-varchar/

 

CHAR와 VARCHAR 비교 및 특징

Index

goodgid.github.io


 

 

학생 //테이블 명
학번 이름 전화 학과코드 학과코드 학과명 //필드
1 홍씨 010 A A 전산
2 손씨 011 B B 경영
3 사씨 016 A A 전산
4 저씨 019 C C 전자

학과[테이블]
학과코트 학과명
A 전산
B 경영
C 전자

       (테이블.필드)
select 학생.이름, 학생.전화, 학과.학과명, 학생.학과코드
from 학생 join 학과 on 학생.학과코드 = 학과. 학과코드 //안지 표준 -----필드명이 틀릴때
       학생 AS x join 학과 y on x. 학과코드 = y.학과코드
       학생 join 학과 on 학생 using(학과코드)  -----필드명이 같을때
       학생, 학과 where 학생.학과코드 = 학과.학과코드  ----- 오라클 전용