본문 바로가기

SQLD

[SQLD : Ⅲ. SQL 기본] 3. DML

* INSERT

▶ INSERT INTO 테이블명 (COLUMN_LIST)VALUES (COLUMN_LIST에 넣을 VALUE_LIST); 
▶ INSERT INTO 테이블명VALUES (전체 COLUMN에 넣을 VALUE_LIST);

 - 해당 컬럼명과 입력되어야 하는 값을 1:1로 매핑하여 입력

[예제] 선수 테이블에 박지성 선수의 데이터를 일부 칼럼만 입력한다.

[예제] ▶ 테이블명 : PLAYER INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO) VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7); 1개의 행이 만들어졌다.

[예제] 해당 테이블에 이청용 선수의 데이터를 입력해본다.

[예제] INSERT INTO PLAYER VALUES ('2002010','이청용','K07','','BlueDragon','2002','MF','17',NULL, NULL,'1',180,69); 1개의 행이 만들어졌다.

 

* UPDATE

 - 잘못 입력되었거나 변경을 위해 정보를 수정해야 하는 경우

UPDATE 테이블명 SET 수정되어야 할 칼럼명 = 수정되기를 원하는 새로운 값;

[예제] 선수 테이블의 백넘버를 일괄적으로 99로 수정한다.

[예제] UPDATE PLAYER SET BACK_NO = 99; 480개의 행이 수정되었다.

[예제] 선수 테이블의 포지션을 일괄적으로 ‘MF’로 수정한다.

[예제] UPDATE PLAYER SET POSITION = 'MF'; 480개의 행이 수정되었다.

 

* DELETE

 - 테이블의 정보가 필요 없게 되었을 경우 데이터 삭제

DELETE [FROM] 삭제를 원하는 정보가 들어있는 테이블명;

[예제] 선수 테이블의 데이터를 전부 삭제한다.

[예제] DELETE FROM PLAYER; 480개의 행이 삭제되었다.

 - DML의 경우 테이블을 메모리 버퍼에 올려놓고 작업해서 실시간으로 테이블에 영향을 미치지 않음

 - 실제 테이블에 반영되기 위해서 COMMIT 명령어를 입력하여 트랜잭션을 종료해야 함

 - SQL 서버의 경우 DML도 AUTO COMMIT으로 처리되어 실제 테이블 반영을 위해 COMMIT 명령어 입력

 - 복구를 원할 경우 ROLLBACK을 이용하여 원 상태로 돌림

 

* SELECT

[예제] 조회하기를 원하는 칼럼명을 SELECT 다음에 콤마 구분자(,)로 구분하여 나열하고,

FROM 다음에 해당 칼럼이 존재하는 테이블명을 입력하여 실행시킨다. 입력한 선수들의 데이터를 조회한다.

[예제] SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO FROM PLAYER;

 

 - DISTINCT

[예제 및 실행 결과] SELECT ALL POSITION FROM PLAYER; ALL은 생략 가능한 키워드이므로 아래 SQL 문장도 같은 결과를 출력한다, SELECT POSITION FROM PLAYER; 480개의 행이 선택되었다.

[예제] SELECT DISTINCT POSITION FROM PLAYER;

[실행 결과] Oracle POSITION -------- GK DF FW MF 5개의 행이 선택되었다.

 

 - WILDCARD 사용하기

[예제] 입력한 선수들의 정보를 모두 조회한다.

[예제] SELECT * FROM PLAYER;

 

 - ALIAS 부여하기 : 별명을 부여해서 컬럼 레이블 변경

[예제] 입력한 선수들의 정보를 칼럼 별명을 이용하여 출력한다.

[예제] SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키, WEIGHT AS 몸무게 FROM PLAYER; 
칼럼 별명에서 AS를 꼭 사용하지 않아도 되므로, 아래 SQL은 위 SQL과 같은 결과를 출력한다. 

SELECT PLAYER_NAME 선수명, POSITION 위치, HEIGHT 키, WEIGHT 몸무게 FROM PLAYER;

[예제] 칼럼 별명을 적용할 때 별명 중간에 공백이 들어가는 경우 『" " 』를 사용해야 한다. SQL Server의 경우『" "』, 『' 』', 『[ ]』와 같이 3가지의 방식으로 별명을 부여할 수 있다.

[예제] SELECT PLAYER_NAME "선수 이름", POSITION "그라운드 포지션", HEIGHT "키", WEIGHT "몸무게" FROM PLAYER;

 

* 산술연산자

 - NUMBER와 DATE 자료형에 대해 적용

[예제] 선수들의 키에서 몸무게를 뺀 값을 알아본다.

[예제] SELECT PLAYER_NAME 이름, HEIGHT - WEIGHT "키-몸무게" FROM PLAYER;

[예제] 선수들의 키와 몸무게를 이용해서 BMI(Body Mass Index) 비만지수를 측정한다. ※ 예제에서 사용된 ROUND( ) 함수는 반올림을 위한 내장 함수로써 6절에서 학습한다

[예제] SELECT PLAYER_NAME 이름, ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) "BMI 비만지수" FROM PLAYER;

출력 형태) 선수명 선수, 키 cm, 몸무게 kg 예) 박지성 선수, 176 cm, 70 kg

[예제] Oracle SELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보 FROM PLAYER;
[예제] SQL Server SELECT PLAYER_NAME +'선수, '+ HEIGHT +'cm, '+ WEIGHT +'kg'체격정보 FROM PLAYER;