1. 상세 용어(index)
(1) Primary Key(PK)
- 절대 이것이 똑같은 데이터는 이 테이블에 없다
- 1개 컬럼으로만 이루어질 수도 있고,
- 두 개 이상의 컬럼의 복합으로 이루어질 수도 있음
- 모든 테이블에 PK를 만드는 것이 원칙
- 테이블 간의 연관관계를 표현하는 ERD에서도 표현
- 일종의 제약조건(index이자 Constraint)
- 로그성 테이블(인서트는 많으나 조회는 거의 안 하는)에는 굳이 PK를 만들지 않아도 됨
- 때때로 안 만들기도 함
- null을 허용하지 않음
국민테이블 : 주민번호
주소변경이력 : 주민번호 + 변경일자 + 일련번호
(PK는 1개일수도, 2, 3, 4개일 수도 있음)
(2) Unique Key(UK)
- 절대 이것이 같은 데이터는 이 테이블에 없다.
- null을 허용함
주소변경이력을 unique key로 설정한 경우라면, 주민번호1 + null + null 주민번호1 + null + null 이 허용된다. |
- null이 여러 개의 row에 들어가도 인정
➡️ null을 미정이라고 봄
(3) 일반 인덱스(key)
- 조회 성능 개선을 목적으로 만듦
- PK, UK도 인덱스의 일종
인덱스(주민번호) 0312313026124 |
rowid(파일x에 x번 블럭에 x번째줄) 이라는 것까지 index 명부에 다 기록되어있음 |
(4) 인덱스를 많이 만들면 좋은 거 아닌가?
정답은 아님(X)
- 인덱스를 만들 때마다 용량을 추가로 차지함
- 조회성능은 개선되나 삽입, 수정 속도는 저하됨
2. 자료형
📂예전에 작성한 게시물을 참고하자
https://ttyeombi.tistory.com/entry/SQL-DDL-CREATE-ALTER-DROP-TRUNCATE
[SQL] DDL (CREATE, ALTER, DROP, TRUNCATE)
DDL Data Definition Language : 데이터 정의 언어 테이블 조작 또는 제어 관련 쿼리문 DDL 에는 4가지가 있다. 1. CREATE 2. ALTER 3. DROP 4. TRUNCATE 📁 1. CREATE : 테이블 생성 아래와 같이 작성한다. CREATE TABLE 테이
ttyeombi.tistory.com
(1) 표
문자형 | char | 고정길이 char(4)로 만들고 'A'만 넣으면 남은 세자리는 공백으로 채워짐 |
varchar | 가변길이 varchar(4)로 만들고 'A'만 넣으면 1자리만 차지함 |
|
숫자형 | number(자리수) | 정수 |
int(자리수) | 정수 | |
number(자리수, 소수점이하자리수) | 소수 ex) number(5, 2) - 003.14 |
|
시간형 | date | 날짜가 들어가는 타입 |
timestamp | 정밀도가 더 높은 날짜 sysdate : 오라클에서의 현재 시간 sysdate() : 마리아에서의 현재 시간 |
|
input_dt가 date 타입이라면 input_dt between to_date('20240910000000', 'yyyymmddhh24miss') and to_date('20240910235959', 'yyyymmddhh24miss') ➡️ 조회가 빈번하다면 활용이 매우 불편하다. ➡️ input_dt를 varchar(8), varchar(14) input_dt = '20240901' input_dt between '20240901000000' and '20240901124949' |
➡️ char의 장점은? 없다
(2) LOB, BLOB, CLOB
Large Object, Binary LOB, Char LOB
랍, 비랍, 씨랍
- 데이터베이스는 데이터를 블럭이라는 곳에 저장하는데
- 일반적으로 하나의 블럭에 여러 데이터가 들어간다
- 그런데, 데이터가 너무 커서(html, image, src) 외부에 저장(파일)하고 그곳을 가리키는 구조
- 속도가 매우 느림
- 데이터가 삭제되면 자동으로 용량이 줄어들지 않고 shrink를 수행해야 용량이 확보됨
3. SQL
Structured Query Language
- 데이터베이스에 조회/삽입/삭제/수정 + 오브젝트 생성/제거 등의 작업을 표준으로 수행하기 위한 언어
- 세미콜론으로 문장이 구분됨
- 번역과 동시에 수행
(1) DDL (Data Definition Language)
테이블 등 오브젝트에 관련된 쿼리문
create | 테이블 또는 오브젝트 생성 |
alter | 테이블 또는 오브젝트 변경 |
drop | 테이블 또는 오브젝트 삭제 |
truncate | 테이블의 데이터만 삭제, |
(2) SELECT : 조회, READ
대부분의 유저에게 주는 권한
(3) DML (Data Manipulation Language)
데이터를 생성/변경/삭제
INSERT | CREATE, 데이터 생성 |
UPDATE | UPDATE, 데이터 변경 |
DELETE | DELETE, 데이터 삭제 |
* DUSI (DELETE, UPDATE, INSERT, SELECT) : 시험용 용어
CRUD 현황이 어떻게 됩니까?
CUD 권한 주실 수 있을까요?
일반적으로 권한은 테이블명_SEL, 테이블명_ALL
내용이 참 미묘하게...
설명이 부족한 것 같은...
불필요한 이야기 나누는 시간이 길고 이론 설명이 너무 적은 것 같다
예전 수업에 비해 특히 더 그런듯..
'📁💻 웹개발 강의 아카이빙 > (2024)🛢️SQL' 카테고리의 다른 글
day01 (0) | 2024.10.03 |
---|