본문 바로가기
DB/이론 및 개념

[day_01] DB / 02. 기본 SQL 1 (DDL, DML)

by 파프리카_ 2020. 8. 6.
728x90
반응형

미리 알고 공부하자!

  • 데이터베이스 : 지속적으로 유지, 관리되어야 하는 데이터들의 집합

  • 데이터베이스 관리 시스템 (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;
728x90
반응형