- 튜플(Tuple, 레코드)
- 유일성: 테이블 내에는 2개 이상의 동일 튜플이 존재할 수 없음.
- 튜플들은 순서를 갖지 않음.
- 속성(Attribute, Column, 통계 데이터에서는 변수(Variable))
- 순서를 갖지 않음.
- 속성값(Attribute Value)은 반드시 원자 값(Atomic Value)을 가져야 함.
- 테이블 스키마: 데이터베이스 관리 시스템에서 데이터 구조를 기술.
- 데이터베이스 스키마: 데이터베이스에서 테이블 스키마의 집합.
- 스키마(Schema): 구조와 표현법에 대한 정의.
- 키(Key): 테이블에서 특정 튜플을 식별 가능하게 하는 속성의 집합.
- 슈퍼키(Super Key): 아무런 제약없이 튜플을 구분할 수 있는 속성의 집합.
- 후보키(Candidate Key): 키 중 최소한의 속성만으로 구성된 키
- 기본기(Primary Key): 후보키 중 하나만을 선택하여 식별자로 사용.
- 외래키(Foreign Key): 다른 테이블의 기본키를 참조.
SQL(Structured Query Language)이란?
- 관계형 데이터베이스 관리 시스템과 대화(정보를 저장하고 처리하기 위한)하기 위한 언어이다.
- 데이터베이스 관리 시스템에 요청하는 것을 쿼리(Query)라고 한다.
종류 | 명칭 | 명령어 | 설명 |
데이터 정의어 | DDL (Data Definition Language) | · CREATE · DROP · ALTER · RENAME · TRUNCATE |
· 데이터와 그 구조를 정의하는 언어. · 데이터를 저장하고 관리하기 위해 테이블 만들기, 지우기, 계정에 권한 주기 등에 사용. |
데이터 조작어 | DML (Data Manipulation Language) | · SELECT · INSERT · UPDATE · DELETE |
· 데이터를 조작할 때 사용하는 언어. · 저장된/저장할 데이터를 수정, 삭제, 추출, 가공 시 사용. |
데이터 제어어 | DCL (Data Control Language) | · GRANT · REVOKE |
· 데이터베이스 접근 권한의 부여/제거 가능. |
3강.
데이터베이스 모델링
: 테이블의 구조를 미리 설계하는 개념, 즉 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업.
- 프로젝트를 진행하기 위해서는 대표적으로 폭포수 모델을 사용
- 데이터베이스 모델링은 폭포수 모델의 업무 분석과 시스템 설계 단계에 해당.
- 이 단계를 거치면 데이터베이스 개체인 테이블 구조가 결정.
4강.
데이터 형식
- 정수형
데이터 형식 | 바이트 수 | 숫자 범위 |
TINYINT | 1 | -128 ~ 127 |
SMALLINT | 2 | -32768 ~ 32767 |
INT | 4 | 약 -21억 ~ 21억 |
BIGINT | 8 | 약 -900경 ~ 900경 |
- 문자형
데이터 형식 | 바이트 수 |
CHAR(개수) | 1 ~ 255 |
VARCHAR(개수) | 1 ~ 16383 |
데이터베이스 만들기
- 작은 따옴표(')가 아닌 백틱(`)
- 컬럼명이나 스키마명은 백틱으로 감싸야 함.
CREATE SCHEMA `Your_Schema_Name`
테이블 만들기
CREATE TABLE shop_db.member(
`member_id` CHAR(8) NOT NULL,
`memer_name` CHAR(5) NOT NULL,
`member_addr` VARCHAR(45) NULL,
PRIMARY KEY (`member_id`));
약어 | 의미 | 설명 |
PK | Primary Key | · 기본 키 · 해당 컬럼이 테이블의 고유 식별자 역할 |
NN | Not Null | · Null을 허용하지 않음. |
UQ | Unique | · 고유값 제약조건. · 같은 값을 가진 레코드가 존재할 수 없음. |
B | Binary | · 문자열 컬럼을 바이너리로 저장. (대소문자 구분) · 주로 CHAR 또는 TEXT 형과 함께 사용. |
UN | Unsigned | · 부호없는 숫자. · 음수를 허용하지 않고 범위가 더 넓어짐. |
ZF | Zero Fill | · 숫자를 0으로 채움. |
AI | Auto Increment | · 자동 증가. · 새 레코드 추가 시 자동으로 1씩 증가. · 주로 기본 키에 사용. |
G | Generated Column | · 생성된 컬럼. · 다른 컬럼 값을 계산해서 자동으로 채워지는 컬럼. |
테이블에 값 입력
INSERT INTO shop_db.member (`member_id`,`member_name`,`member_addr`) VALUES ('tess','나훈아','경기 부천시 중동');
INSERT INTO shop_db.member (`member_id`,`member_name`,`member_addr`) VALUES ('hero','임영웅','서울 은평구 중산동');
INSERT INTO shop_db.member (`member_id`,`member_name`,`member_addr`) VALUES ('iyou','아이유','인천 남구 주안동');
INSERT INTO shop_db.member (`member_id`,`member_name`,`member_addr`) VALUES ('jyp','박진영','경기 고양시 장항동');
- 컬럼명은 백틱, 값은 문자열이기에 작은 따옴표로 감싸야 함.
출력 결과 | ![]() |
테이블 값 변경
UPDATE shop_db.member SET member_addr='서울시 강동구 천호동' WHERE member_id='heromembermember'
출력 결과 | ![]() |
테이블 값 삭제
DELETE FROM shop_db.member WHERE member_id='hero'
출력 결과 | ![]() |
특정 Column만 보기
SELECT member_id, member_name FROM shop_db.member
출력 결과 | ![]() |
특정 Row만 보기
SELECT * FROM shop_db.memeber WHERE member_name='아이유'
출력 결과 | ![]() |
속성 이름 변경해서 보기
SELECT member_id 아이디, member_name 이름, member_addr 주소 FROM shop_db.member
출력 결과 | ![]() |
- 띄어쓰기는 작은 따옴표로 감싸기.
- Ex) SELECT member_id '멤버 아이디' FROM shop_db.member
범위 내의 테이블 값 보기
SELECT mem_name, height, mem_number FROM member WHERE height >= 165 OR mem_number > 6
출력 결과 | ![]() |
SELECT mem_name, addr FROM member WHERE addr IN ('경기','전남','경남')
출력 결과 | ![]() |
SELECT * FROM member WHERE mem_name LIKE '우%'
출력 결과 | ![]() |
- 정규 표현식 %는 여러 글자.
SELECT * FROM member WHERE mem_name LIKE '__핑크'
출력 결과 | ![]() |
- 정규 표현식 _는 개당 한 글자
5강.
Procedure 만들기
DELIMITER //
CREATE PROCEDURE proc_name()
BEGIN
# 자주 쓰는 예약어
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELEMITER;
CALL proc_name(); #호출
'Study' 카테고리의 다른 글
[SQL] Chapter 4. (9~11강) (0) | 2025.07.07 |
---|---|
[SQL] Chapter 3. (6~8강) (0) | 2025.07.07 |
[Computer Vision] Dolphin, Shark, Whale을 분류하는 ResNet50 파이프라인 구축 (0) | 2024.08.29 |
[Computer Vision] Augmentation과 Normalization이 진행된 이미지를 시각화 (0) | 2024.08.29 |
[Computer Vision] 이미지 픽셀 값 조정 (0) | 2024.08.29 |