1. rollup
(1) group by절에 입력하면 select 결과로 출력되는 테이블에 있는 데이터들의 컬럼별 총합이 맨 아래쪽 행에 나타난다.
(2) 사용 예시
2. SQL 종류
1) DQL(Data Query Language): select
2) DDL(Data Definition Language): create, alter, trunctate, drop
3) DML(Data Manipulation Language): insert, update, delete
4) TCL(Transaction Control Language): commit, rollback
* commit: 데이터베이스 테이블의 변경 내용을 영구히 저장.
* rollback: 직전 commit 상태로 되돌리기.
3. create
1) 테이블 생성
2) 작성방법
create table 테이블이름 ( 컬럼이름 데이터타입 [[기본값] [제약조건]], ... ); |
* 대괄호 안의 내용은 생략 가능
3) 데이터 타입으로 사용되는 키워드들은 데이터베이스 종류에 따라서 다름.
* Oracle 데이터 타입: number, varchar2(가변길이 문자열), date, timestamp, clob(character large object), blob(binary large object), ...
4) 사용예시
(1) number(전체 숫자 자리수, 소수점 자리수)
- number(6, 0) : 숫자를 전체 6자리 허용하는데 그 중 소수점 0자리 허용.
- number(6, 2) : 숫자를 전체 6자리 허용하는데 그 중 소수점 2자리 허용(소수점 아닌 숫자는 4자리가 허용됨).
(2) varchar2(데이터길이)
- 데이터길이 : 저장할 수 있는 데이터 길이(밑에서 추가 설명)
(3) date : 날짜형 데이터
- date 다음에 길이를 작성하지는 않는다.
4. insert
1) 테이블에 행을 추가
2) 작성방법
(1) 기본
insert into 테이블(컬럼, ...) values (값, ...); |
(2) 테이블에 삽입하는 값들의 개수가 컬럼 개수와 같고, 값들의 순서가 테이블을 만들 때 컬럼 순서와 같으면
insert into 테이블 values (값, ...); |
3) 사용 예시
5. varchar2
1) 문자열 타입 varchar2 단위: char(글자수), byte(바이트)
2) 오라클에서 문자열을 저장할 때 인코딩을 utf-8을 사용하는 경우, 영문자/숫자/특수기호 - 1 byte. 한글 - 3 byte.
3) varchar2의 기본 단위는 byte! 단위를 생략하면 byte로 취급.
* (예) varchar2(10)는 varchar2(10 byte)와 같은 의미
6. 제약조건(constraint) 종류
* 제약조건을 설정하는 이유: 데이터의 무결성을 유지하기 위해서
1) primary key(PK, 고유키): 테이블에서 유일한 행 1개를 검색할 수 있는 컬럼(들).
* PK인 컬럼은 null 값을 가질 수 없고, 중복되는 값을 가질 수 없음.
2) not null(NN): 반드시 값을 가져야 하는 컬럼. null 값을 가질 수 없는 컬럼.
* 넓은 의미로는 check 제약조건 중 하나
3) unique: 중복된 값을 가질 수 없는 컬럼. null은 가질 수 있음.
4) check: 컬럼의 값이 조건을 만족하는 값들로만 제한.
5) foreign key(FK, 외래키): 다른 테이블의 PK를 참조하는 컬럼.
* (예) emp 테이블에서 deptno 컬럼 - FK. dept 테이블에서 deptno 컬럼 - PK.
7. 테이블을 생성할 때 제약조건 만들기
1) 제약조건 이름을 설정하지 않은 경우
(1) 오라클에서 제약조건의 이름을 자동으로 부여
* (예) SYS_C001234
2) 제약조건 이름 설정
(1) constraint 뒤에 원하는 이름 입력
* 띄어쓰기는 개인 취향
(2) 제약조건 이름을 적절하게 설정하면 코드 가독성을 높일 수 있다.
3) 컬럼 정의 따로, 제약조건 정의 따로
(1) 컬럼을 먼저 정의하고, 그 후에 제약조건을 정의하는 방식
(2) not null 제약조건은 제약조건을 따로 명시하는 경우 check를 사용해서 설정해야함!!(오라클 문법)
8. Foreign Key(FK, 외래키)
1) 다른 테이블의 PK를 참조하는 제약조건
2) PK를 갖는 테이블을 먼저 만들어야 그 테이블 참조하여 다른 테이블에서 FK를 생성할 수 있다.
3) 외래키를 갖는 테이블 생성 예시
4) FK를 갖는 테이블은 부모테이블에 PK가 없으면 insert가 불가능하다.
5) FK 제약조건 : 컬럼 정의와 제약조건 정의를 따로 설정
9. 테이블 생성할 때 컬럼의 기본값 설정하기
1) default 키워드 사용하면 컬럼별 기본값을 설정할 수 있다.
2) 입력 순서: 컬럼이름 데이터타입 기본값 제약조건
10. Meta Table(메타 테이블)
1) 테이블(사용자 계정, 제약조건, ...)을 관리하기 위한 테이블.
11. Alter Table(테이블 변경)
1) 이름 변경
alter table ... rename ... to ...; |
![]() |
![]() |
2) 추가
alter table ... add ...; |
* (주의) add로 컬럼을 추가할 때는 column을 명시하지 않음
3) 삭제
※ 데이터베이스에 거대한 오브젝트를 저장하면 성능이 느려질 수 있다. 따라서 데이터베이스에는 경로만 저장하고 미디어 서버를 따로 만드는 것이 좋다.
※ 제약조건 메타 테이블에서 검색할 때 주의할 점
'SQL' 카테고리의 다른 글
241119 SQL 05 - modify, create as select 구문, truncate, drop, insert, update, delete, generated as identity (0) | 2024.11.19 |
---|---|
[Trouble Shooting] 테스트 실패: ORA-12541: 접속할 수 없습니다. (0) | 2024.11.18 |
241115 SQL 03 - Subquery (1) | 2024.11.15 |
241114 SQL 02 - 단일/다중 행 함수, 그룹별 쿼리, Join (0) | 2024.11.14 |
241113 SQL 01 - SQL 기본 쿼리 문장 (1) | 2024.11.13 |