제3절_DML(DATA_MANIPULATION_LANGUAGE)
2011.09.19 16:28
제3절_DML(DATA_MANIPULATION_LANGUAGE)
- DML이란?
- 자료들을 입력, 수정, 삭제, 조회하는 명령어
- DML 종류
- INSERT
- UPDATE
- DELETE
- SELECT
1. INSERT
- INSERT문 기본 형태
▶ INSERT INTO 테이블명 (컬럼 리스트)
VALUES (컬럼 리스트에 넣을 값);
▶ INSERT INTO 테이블명
VALUES (전체 칼럼에 넣을 값);
- 해당 칼럼과 입력값을 1:1 매핑하여 입력한다.
- 칼럼의 데이터가 문자 유형일 경우 '(single quotation)로 입력할 값 을 입력한다. 숫자일 경우 붙이지 않는다.
- INSERT문 예제 1 (정의된 칼럼에 데이터 입력하기)
INSERT INTO PLAYER
(PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO)
VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7);
1개의 행이 만들어졌다.
- INSERT문 예제 2 (칼럼 순서대로 입력하기)
INSERT INTO PLAYER
VALUES ('2002010','이청용','K07','','BlueDragon','2002','MF','17',NULL, NULL,'1',180,69);
1개의 행이 만들어졌다.
2. UPDATE
- UPDATE문 기본 형태
UPDATE 테이블명
SET 칼럼명 = 값;
- UPDATE문 예제 1 (선수 테이블의 백넘버를 일괄적으로 99로 수정)
UPDATE PLAYER
SET BACK_NO = 99;
480개의 행이 수정되었다.
3. DELETE
- DELETE문 기본 형태
DELETE [ FROM ] 테이블명;
- DELETE문 예제 (선수 테이블 삭제하기)
DELETE FROM PLAYER;
480개의 행이 삭제되었다.
4. SELECT
- SELECT 기본 형태
SELECT [ ALL/DISTINCT ] 칼럼, 칼럼, ...
FROM 테이블명;
- ALL : Default 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데이터가 있어도 모두 출력한다.
- DISTINCT : 중복된 데이터가 있는 경우 1건으로 처리해서 출력한다.
- SELECT문 예제 (선수들 정보 조회하기)
SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO
FROM PLAYER;
<실행결과>
PLAYER_ID PLAYER_NAME TEAM_ID POSITION BACK_NO HEIGHT WEIGHT
-------- ---------- ------ ------ ------- ----- ------
2007155 정경량 K05 MF 19 173 65
2010025 정은익 K05 MF 35 176 63
2012001 레오마르 K05 MF 5 183 77
: : : : : : :
480개의 행이 선택되었다.
- DISTINCT 옵션 (선수 테이블의 포지션 정보늘 ALL과 DISTINCT 옵션으로 확인하기)
<ALL 예제>
SELECT ALL POSITION <--- (ALL 생략가능)
FROM PLAYER;
POSITION
------
MF
MF
MF
...
SELECT POSITION FROM PLAYER;
480개의 행이 선택되었다.
<DISTINCT 예제>
SELECT DISTINCT POSITION
FROM PLAYER;
POSITION
--------
GK
DF
FW
MF
5개의 행이 선택되었다.
- WILDCARD 사용하기
- 모든 칼럼 정보를 조회할 경우 사용
<예>SELECT *FROM 테이블명;PLAYER_ID PLAYER_NAME TEAM_ID E_PLAYER_NAME NICKNAME JOIN_YYYY POSITION BACK_NO NATION BIRTH_DATE SOLAR HEIGHT WEIGHT
-------- ---------- ------ ---------------- -------- -------- ------- ------- ------ ---------- ----- ------ ------
2007155 정경량 K05 JEONG, KYUNGRYANG 2006 MF 19 1983-12-22 1 173 65
2010025 정은익 K05 MF 35 1991-03-09 1 176 63
2012001 레오마르 K05 Leomar Leiria 레오 2012 MF 5 1981-06-26 1 183 77
: : : : : : : : : : : :
480개의 행이 선택되었다.
- ALIAS 부여하기 : 조회된 결과에 별명(ALIAS, ALIASES)을 부여하여 칼럼 레이블을 변경할 수 있다.
- 칼럼명 바로 뒤에 온다.
- 칼럼명과 ALIAS 사이에 AS, as 키워드를 사용할 수 있다.
- 이중 인용부호(Double quotation)는 ALIAS가 공백, 특수문자를 포함할 경우와 대소문자 구분이 필요할 경우 사용된다.
- ALIAS 예제
<SQL 예>
SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키, WEIGHT AS 몸무게
FROM PLAYER;
칼럼 별명에서 AS를 꼭 사용하지 않아도 되므로, 아래 SQL은 위 SQL과 같은 결과를 출력한다.
SELECT PLAYER_NAME 선수명, POSITION 위치, HEIGHT 키, WEIGHT 몸무게
FROM PLAYER;
<SQL 결과>
선수명 위치 키 몸무게
----- --- -- ----
정경량 MF 173 65
정은익 MF 176 63
레오마르 MF 183 77
: : : :
480개의 행이 선택되었다.
- 참고사항
- 칼럼 별명을 적용할 때 별명 중간에 공백이 들어가는 경우 " " 를 사용해야 한다.
- SQL Server의 경우 " " , ' ' , [ ] 와 같이 3가지 방식으로 별명 부여 가능
5. 산술 연산자와 합성 연산자
- 산술 연산자란?
- 산술 연산자는 NUMBER와 DATE 자료형에 적용
- 수학에서의 4칙 연산과 동일
- 산술 연산자는 수학에서와 같이 (), *, /, +, - 의 우선순위를 가진다.
- 산술 연산자 활용 예 1
<SQL 예>
SELECT PLAYER_NAME 이름, HEIGHT - WEIGHT "키-몸무게"
FROM PLAYER;
<SQL 결과>
이름 키-몸무게
--- -------
정경량 108.00
정은익 113.00
… …
480개의 행이 선택되었다.
- 산술 연산자 활용 예 2
<SQL 예>
SELECT PLAYER_NAME 이름, ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) "BMI 비만지수"
FROM PLAYER;
<SQL 결과>
이름 BMI 비만지수
정경량 21.72
정은익 20.34
… …
480개의 행이 선택되었다.
- 합성(CONCATENATION) 연산자 특징
- 문자와 문자를 연결하는 경우 2개의 수빅 바(||)에 의해 이뤄진다 (Oracle)
- 문자와 문자를 연결하는 경우 + 표시에 의해 이뤄진다. (SQL Server)
- 두 벤더 모두 공통적으로 CONCAT (string1, string2) 함수를 사용할 수 있다.
- 칼럼과 문자 또는 다름 칼럼과 연결시킨다.
- 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.
- 합성 연산자 예
<SQL 출력 형태>
출력 형태) 선수명 선수, 키 cm, 몸무게 kg
예) 박지성 선수, 176 cm, 70 kg
<SQL 예 - Oracle>
SELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보
FROM PLAYER;
<SQL 예 - SQL Server>
SELECT PLAYER_NAME +'선수, '+ HEIGHT +'cm, '+ WEIGHT +'kg'체격정보
FROM PLAYER;
<SQL 결과>
체격정보
정경량선수,173cm,65kg
정은익선수,176cm,63kg
…
480개의 행이 선택되었다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
27 | 제4절_서브쿼리 | balto | 2011.10.08 | 14420 |
26 |
제9절_조인(JOIN)
![]() | DB지기 | 2011.09.29 | 7658 |
25 | 제8절_ORDER_BY_절 | 실천하자 | 2011.09.29 | 6706 |
24 | 제7절_GROUP_BY_HAVING_절 | 실천하자 | 2011.09.28 | 7776 |
23 | 제6절_함수(FUNCTION) | monsterRachel | 2011.09.28 | 11049 |
22 | 제5절_WHERE_절 | 실천하자 | 2011.09.21 | 7147 |
21 | 제4절_TCL(TRANSACTION_CONTROL_LANGUAGE) | 노랑배 | 2011.09.20 | 8635 |
» | 제3절_DML(DATA_MANIPULATION_LANGUAGE) | 노랑배 | 2011.09.19 | 13028 |
19 | 제2절_DDL(DATA_DEFINITION_LANGUAGE) | balto | 2011.09.10 | 10411 |
18 | 제1절_관계형_데이터베이스_개요 | balto | 2011.09.10 | 11360 |
17 | 2_연습문제 | suspace | 2011.09.08 | 7227 |
16 | 2_장요약 | suspace | 2011.09.08 | 22329 |
15 | 제6절_분산_데이터베이스와_성능 | suspace | 2011.09.08 | 12312 |
14 |
제3절_반정규화와_성능
![]() | DB지기 | 2011.09.07 | 6967 |
13 |
제2절_정규화와_성능
![]() | DB지기 | 2011.09.07 | 7338 |
12 |
제1절_성능_데이터_모델링의_개요
![]() | DB지기 | 2011.09.07 | 7261 |
11 | 제5절_데이터베이스_구조와_성능 | monsterRachel | 2011.09.07 | 6774 |
10 | 제4절_대량_데이터에_따른_성능 | monsterRachel | 2011.09.07 | 7729 |
9 | 장_요약 [1] | balto | 2011.09.02 | 16680 |
8 | 연습문제 | 노랑배 | 2011.09.01 | 41363 |