미리 알고 공부하자!
- 데이터베이스 : 지속적으로 유지, 관리되어야 하는 데이터들의 집합
- 데이터베이스 관리 시스템 (Database Management System)
: DBMS로 불리며, 데이터베이스를 관리해주는 시스템을 의미한다.
(ex. 오라클 DBMS, MS-SQL, DB2 등) - 관계형 데이터베이스 : 데이터를을 여러 항목(컬럼)의 집합으로 표현하는 테이블 형태로 데이터를 관리하는 방식
SQL (Structured Query Language) 이란 ?
: 데이터를 정의하고 조작, 제어하는 언어
DDL / DML / DCL
1. DDL (Data Definition Language) : 데이터 정의어
: CREATE 생성, DROP 삭제, ATLER 수정
2. DML (Data Manipulation Language) : 데이터 조작어
: INSERT 삽입, DELETE 삭제, UPDATE 수정, SELECT 검색
CRUD
CREATE | READ | UPDATE | DELETE |
INSERT | SELECT | UPDATE | DELETE |
3. DCL (Data Control Language) : 데이터 제어
: COMMIT 실제 DB에 반영한다, ROLLBACK 작업을 지속하고 되돌린다
: GRANT 권한부여, REVOKE 권한 취소
DB SQL 용어
- TABLE : 데이터를 저장하는 공간
- COLUMN : 속성 (attribute)
- CONSTRAINT : 제약 조건 ex) PRIMARY KEY - 중복 불가, NOT NULL
- DATA TYPE
- 문자열 VARCHAR2(100) - 100 자 이내
- 숫자형 NUMBER
DDL
1. 테이블 생성
MEMBER TABLE을 생성하고 정보를 저장한 후, 조회해본다
-- 실행 단축키 : 영역지정 후 alt + X
CREATE TABLE member(
id VARCHAR2(100) PRIMARY KEY,
password VARCHAR2(100) NOT NULL,
name VARCHAR2(100) NOT NULL,
address VARCHAR2(100)
);
* 데이터 타입
VARCHAR2(n) | 가변 길이 문자 데이터(1~4000byte) |
CHAR(n) | 고정 길이 문자 데이터(1~2000byte) |
NUMBER(p,s) | 전체 p자리 중 소수점 이하 s자리(p:1~38, s:-84~127) |
DATE | 7Byte(BC 4712년 1월 1일부터 AD 9999년 12월 31일 |
LONG | 가변 길이 문자 데이터(1~2Gbyte) |
CLOB | 가변 길이 문자 데이터(1~4Gbyte) |
RAW(n) | 원시 이진 데이터(1~2000) |
LONG RAW | 가변 길이 원시 이진 데이터(1~2Gbyte) |
BLOB | 가변 길이 이진 데이터(1~4Gbyte) |
BFILE | 가변 길이 외부 파일에 저장된 이진 데이터(1~4Gbyte) |
2. 테이블 삭제
DROP TABLE member;
DML
SELECT 테이블
member에있는 모든 정보를 조회
SELECT *
FROM member;
INSERT
INSERT INTO MEMBER(id, password, name, address) VALUES('king', '1232', '데이빗', '용인');
INSERT INTO MEMBER(id, password, name, address) VALUES('pink', '1332', '레오나드', '용인');
제약조건 PRIMARY KEY는 중복된 값을 허용하지 않으므로 아래 SQL문은 ERROR가 난다.
INSERT INTO MEMBER(id, password, name, address) VALUES('pink', 'test', 'test', 'test');
COUNT(*)
총 회원수를 조회
SELECT COUNT(*)
FROM member;
UPDATE
UPDATE member SET address = '하와이' WHERE id = 'pink';
조건적 SELECT하기
1) WHERE 절을 이용해서 pink라는 아이디를 가진 회원정보만 조회
SELECT *
FROM MEMBER
WHERE id='pink';
2) 회원의 name, address만 조회
SELECT name, address
FROM member;
DELETE
정보를 삭제
DELETE FROM member WHERE address='하와이';
제약조건 테스트
PRIMARY KEY로 형성된 COLUMN은 유일해야 하며,
NOT NULL(NULL이 아닌 값이 입력되어야함)이어야 하므로
반드시 중복되지 않은 정보를 저장해야 한다.
INSERT INTO member(password, name, address) VALUES('a', '옹성우', '판교');
--password COLUMN에도 NOT NULL 제약조건이 있기 때문에 반드시 INSERT해야 하므로 ERROR
INSERT INTO member(id, name, address) VALUES('A', '옹성우', '판교');
--address는 별도의 제약조건이 없으므로 NULL이 허용된다.
INSERT INTO member(id, password, name) VALUES('A', '1313','옹성우');
연습문제)
1. 회원정보 두 명을 입력 (INSERT)
ID | PASSWORD | NAME | ADDRESS |
spring | aop | 고슬링 | 뉴욕 |
mybatis | di | 스톤 | 뉴욕 |
2. INSERT 구문 실행 후 뉴욕에 사는 회원들의 이름만 출력해보기 (SELECT)
3. address가 뉴욕인 회원들의 address를 LA로 수정하기 (UPDATE)
4. 전체 회원 정보 조회
답)
1번
INSERT INTO member(id, password, name, address) VALUES ('spring', 'aop', '고슬링', '뉴욕');
INSERT INTO member VALUES ('mybatis', 'di', '스톤', '뉴욕'); -- 전체 컬럼 값을 INSERT할 경우 컬럼이름 생략 가능
2번
SELECT name
FROM member
WHERE address = '뉴욕';
3번
UPDATE member
SET address ='LA'
WHERE address = '뉴욕';
4번
SELECT *
FROM member;
'DB > 이론 및 개념' 카테고리의 다른 글
[day_03] DB / 06. SQL 기본 4 - Oracle SEQUENCE 시퀀스 (0) | 2020.08.10 |
---|---|
[day_02] DB / 05. 기본 SQL 3 - Oracle 함수 (0) | 2020.08.08 |
[day_02] DB / 04. 기본 SQL 2 - DDL (CREATE, ALTER), DML (INSERT, UPDATE) (0) | 2020.08.07 |
[day_02] DB / 03. JDBC (Java Database Connectivity) (0) | 2020.08.07 |
[day_01] DB / 01. Oracle SQL 설치 및 Eclipse IDE와 연동하기 (9) | 2020.08.06 |