티스토리 뷰
▷ DDL : 테이블을 생성하고 생성된 테이블의 구조를 변경하는 명령어
▷ DML : 테이블에 관리할 자료들을 입력, 수정, 삭제, 조회하는 명령어
( Data Manipulation Language )
[SQL/SQLD 2과목] - SQLD - 과목2. (2) DDL
1. INSERT
테이블에 데이터를 입력하는 방법 ( 2가지 )
(1) INSERT INTO 테이블명 (COLUNM_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST);
(2) INSERT INTO 테이블명 VALUES (전체 COLUMN 에 넣을 VALUE_LIST);
칼럼명과 입력 값을 서로 1:1 매핑해서 입력한다.
해당 칼럼의 데이터 유형이 문자 유형 (CHAR or VARCHAR2 등) 이면 ' ' (Single Quotation) 로 입력할 값을 입력한다.
숫자 유형이면 ' ' 을 붙이지 않는다.
데이터를 입력하는 경우 정의되지 않은 미지의 값은 두개의 '' (Single Quotation) 을 붙여서 표현하거나, NULL 이라고 명시적으로 표현할 수 있다.
(1) 유형의 경우
칼럼의 순서는 테이블의 칼럼 순서와 매치할 필요 없다.
정의하지 않은 칼럼은 Default 로 NULL 값이 입력된다.
( Primary Key 나 NOT NULL 지정된 칼럼은 NULL 값이 허용되지 않는다. )
(2) 유형의 경우
이 경우, 모든 칼럼에 데이터를 입력하는 경우로 칼럼의 순서대로 빠짐없이 데이터가 입력되어야 한다.
2. UPDATE
입력된 정보를 수정해야 하는 경우 사용하는 UPDATE 문장.
SET 다음에 수정되어야 할 칼럼명과 해당 칼럼에 수정될 값으로 수정이 된다.
UPDATE 테이블명 SET 수정할 칼럼명 = 새로운 값
(예시)
UPDATE PLAYER SET NUMBER = 99;
PLAYER 테이블의 NUMBER 칼럼 값이 99로 수정된다.
3. DELETE
DELETE 문장은 데이터 삭제를 할 때 사용한다.
FROM 문구는 생략 가능하고, WHERE 절을 사용하지 않으면 테이블의 전체 데이터가 삭제된다.
DELETE [FROM] 테이블명 [WHERE절];
데이터베이스는 DDL 명령어와 DML 명령어를 처리하는 방식에서 차이가 있다.
DDL ( CREATE, ALTER, RENAME, DROP ) 은 직접 데이터베이스의 테이블에 영향을 미치기 때문에, DDL 명령어에 해당하는 작업이 즉시 완료된다.
하지만, DML ( INSERT, UPDATE, DELETE, SELECT ) 은 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 해서 실시간으로 테이블에 영향을 미치지 않는다.
따라서, DML 명령어가 실제 테이블에 반영되기 위해 COMMIT 명령어를 입력하여 TRANSACTION 을 종료해야 한다.
< SQL Server >
DML의 경우도 즉시 처리되기 때문에 COMMIT 명령어가 필요없다.
테이블의 전체 데이터를 삭제하는 경우, 시스템 활용 측면에서 삭제된 데이터를 로그로 저장하는 DELETE 보다는 시스템 부하가 적은 TRUNCATE 이 좋다.
TRUNCATE : 삭제된 데이터의 로그가 없으모로 ROLLBACK이 불가능하므로 주의 필요.
데이터 삭제 이후 오류가 발견되어 다시 복구를 하려면 ROLLBACK 문을 이용하여 테이블 데이터를 원 상태로 되돌릴 수 있다.
4. SELECT
입력한 데이터를 조회하기 위한 명령어.
조회할 칼럼명을 콤마 ( , ) 로 구분하고, FROM 다음에 해당 칼럼이 존재하는 테이블명을 입력한다.
SELECT [ALL/DISTINCT] 칼럼명, 칼럼명, ... FROM 해당 칼럼이 있는 테이블명;
▷ ALL : Default 옵션이므로 별도 표시 X
중복한 데이터도 모두 출력
▷ DISTINCT : 중복된 데이터가 있으면 1건으로 처리 후 출력
▷ WILDCARD : 해당 테이블의 모든 칼럼 정보를 보려고 할 때 와일카드로 애스터리스크(*) 를 사용하여 조회
SELECT * FROM 테이블명;
레이블은 기본적을 대문자로 표시되며, 좌측 정렬 (문자 및 날짜 데이터) / 우측 정렬 (숫자 데이터) 로 정렬된다.
▷ ALIAS 부여 : 일종의 별명(ALIAS, ALIASES) 을 부여해서 칼럼 레이블을 변경할 수 있다.
(1) 칼럼명 바로 뒤에 온다
(2) 칼럼명과 ALIAS 사이에 as 키워드를 사용한다.
(3) 이중 인용부호(Double quotation) 는 ALIAS 가 공백, 특수문자를 포함하거나 대소문자 구분이 필요할 경우 사용된다.
SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키, WEIGHT AS 몸무게 FROM PLAYER;
# OUTPUT
선수명 위치 키 몸무게
________________________
KIM MF 175 65
* 칼럼 별명 중간에 공백이 들어가는 경우 " " 를 사용한다.
SQL Server 의 경우 " " , ' ' , [ ] 의 3가지 방식으로 별명을 부여한다.
SELECT PLAYER_NAME "선수명", POSITION "위치", HEIGHT "키", WEIGHT "몸무게" FROM PLAYER;
# OUTPUT
선수명 위치 키 몸무게
________________________
KIM MF 175 65
5. 산술 연산자와 합성 연산자
▷ 산술 연산자
: NUMBER 와 DATE 자료형에 대해 적용된다. 우선순위를 위한 괄호 적용이 가능하다.
산술 연산을 사용하면 적절한 ALIAS 를 새로 부여하는 것이 좋다.
우선순위 → ( ) , * , / , + , -
▷ 합성 연산자
: ( CONCATENATION )
문자 - 문자 를 연결하는 합성 연산자를 사용하여 SQL 문장만으로 리포트를 출력한다.
CONCAT ( string1, string2 ) 함수 사용 가능하다.
* Oracle
2개의 수직 바 ( || ) 를 사용한다.
* SQL Server
( + ) 표시를 사용한다.
Oracle
SELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보 FROM PLAYER;
SQL Server
SELECT PLAYER_NAME + '선수,' + HEIGHT + 'cm,' + WEIGHT + 'kg' 체격정보 FROM PLAYER;
# OUTPUT
체격정보 KIM선수,175cm,65kg
'SQL > SQLD 2과목' 카테고리의 다른 글
SQLD - 과목2. (6) 함수 (FUNCTION) (0) | 2021.03.16 |
---|---|
SQLD - 과목2. (5) WHERE 절 (0) | 2021.03.11 |
SQLD - 과목2. (4) TCL (0) | 2021.03.08 |
SQLD - 과목2. (2) DDL (0) | 2021.03.03 |
SQLD - 과목2. (1) 데이터베이스 (0) | 2021.02.28 |
- Total
- Today
- Yesterday
- SQLD
- 파이썬문법
- 파이썬입출력
- f-string
- python문법
- Unity GameObject 생성
- SUM함수
- 40회 SQLD
- range함수
- BAEKJOON
- 파이썬sum
- 데이터베이스
- SQLD1과목
- NaverCloudPlatform
- 네이버클라우드플랫폼
- 백준
- 알고리즘
- Python
- 데이터 모델링
- python별찍기
- SQLD 2과목
- 백준파이썬
- SQLD40회
- 파이썬 입출력
- SQLD 1과목
- 별 찍기
- 파이썬for문
- 백준별찍기
- 파이썬
- 백준 별찍기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |