데이터베이스의 등장 배경
SQL(Structured Quarry Language)
구조화된 쿼리 언어
DBMS
데이터를 가진 쪽을 서버(server), 외부에서 데이터 요청하는 쪽을 클라이언트(client)
DB용어
관계형 데이터베이스(RDB Relational Data Base..):
여러 개의 테이블이 특정 관계로 이루어져 있는 구조를 가진 데이터 베이스
엔티티
사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 개체 (실존하는 개체의 정보)
엔티티 집합
동일한 속성을 가진 엔티티들의 집합. 엔티티 집합에 속한 요소들이 여러 엔티티 집합에 속할 수도 있다
스키마(외부, 개념, 내부)
엑셀표처럼 데이터들(엔티티들)을 DB에 저장하기 위해 일정한 기준으로 정의한 틀
Table용어
Relation (TABLE)
관계형 데이터 베이스에서 정보를 구분하여 저장하는 기본 단위
Attribute (속성, 학술적 정의 - 논문)
TABLE의 열, FIELD, COLUMN으로도 불림
Tuple(학술적 정의 - 논문)
TABLE의 행, RECORD, ROW으로도 불림
Table
Attribute, Field, Column | |||
Tuple, Record, Row | |||
Domain
Attribute이 가질 수 있는 값의 집합(데이터 값의 범주) ex) 상품개수 :
Degree (차수)
Attribute (열)의 개수
Cardinality
Tuple (행)의
스키마를 정의한다.?
데이터 타입 | |
int | 주 정수 데이터 -2^31 ~ 2^31의 범위를 표현 |
bigint | int의 범위를 초과하는 데이터 -2^63 ~ 2^63의 범위를 표현 |
float(n) | 부동 소수점 숫자 데이터: n-자리의 소수점 표시 0 < n < 53 |
char(n) | 고정 크기 문자열 데이터: n 바이트의 문자열 1 < n < 8000 |
varchar(n) | 가변 크기 문자열 데이터: n-바이트 이하의 문자열 1 < n < 8000 or n < 2^31 (이 경우 varchar(max)을 쓴다) |
datetime | 소수 자릿수 초가 있는 24시간제 기준의 시간과 결합된 날짜를 정의 |
INSERT INTO | 데이터를 입력하는 구문 |
SELECT | 데이터를 읽어오는 구문 |
DELETE | 데이터를 삭제하는 구문 |
UPDATE | 데이터를 수정하는 구문 |
WHERE | 데이터 필터하는 조건절 |
SQL 구문은 무조건 ; 으로 끝나야 실행된다
즉, 엔터 키로 줄을 띄는 것은 문법에 상관없다
조건절(WHERE)을 활용하는 기호 |
|
<> | != | ^ | 모두 ≠(같지 않음)을 나타내는 기호 |
BETWEEN A AND B |
A와 B의 사이 값 불러오기 |
LIKE | 특정 문자열이 들어간 값 불러오기 |
IN | 2개 이상의 조건 중 하나라도 만족하는 값 불러오기 |
AND | 모든 조건을 만족하는 값 불러오기 |
OR | 하나의 값이라도 만족하는 값 불러오기 |
IS NULL/ IS NOT NULL |
컬럼 값이 NULL인 값 불러오기 / NULL이 아닌 값 불러오기 (NULL : 값이 없음) |
NOT | 조건이 아닌 것 |
실습
MYSQL workBench 실습
마우스를 올려놓으면 ...
market데이터
INSERT INTO market (seller, amount, reg_date)
VALUES ('홍길동', 0, '2023-03-07 10:10:10');
SELECT * FROM market WHERE seller = '홍길동';
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('김영진', '닌텐도스위치' , 1 , 100000 , '2023-03-07 10:10:10');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('김민준', '사과' , 1 , 1300 , '2023-03-07 10:10:10');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('나수아', 'PS5' , 1 , 350000 , '2023-03-09 12:48:20');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('남건우', '아이폰14' , 1 , 1000000 , '2023-02-21 23:54:00');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('민지환', '책상' , 1 , 80000 , '2023-02-16 17:54:24');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('홍진호', '벙커벙커' , 1 , 222222 , '2022-02-02 02:02:02');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('조승우', '뮤지컬 티켓' , 1 , 80000 , '2022-12-26 00:00:00');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('이가은', '콜라' , 1 , 500 , '2023-03-01 10:55:00');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('최하린', '핸드크림' , 1 , 4500 , '2022-11-06 18:45:05');
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES ('장승우', '이어폰' , 1 , 90000 , '2022-12-24 12:00:00');
교수님 책상 | |||||||
내 자리 | |||||||
'computing' 카테고리의 다른 글
20250318_OS3 (0) | 2025.03.18 |
---|---|
PCB(Process Control Block)의 기능, 특징 (2) | 2025.03.18 |
20250317_DB2 (2) | 2025.03.17 |
명언 잠금화면 앱 개발_기획서 (4) | 2025.03.16 |
20250306_java_1 (0) | 2025.03.06 |