# 4. 자격증/SQLD

SQLD 자격증 # SQL 기본(과목2)_DML

둥굴둥굴둥굴레차 2021. 11. 11. 20:47

DML이란?

자료들을 입력, 수정, 삭제, 조회하는 명령어
  • INSERT
  • UPDATE
  • DELETE
  • SELECT

 

1. INSERT

INSERT문 기본 형태

 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문 예제 (선수 테이블의 백넘버를 일괄적으로 99로 수정)

 

UPDATE PLAYER SET BACK_NO = 99;

 

480개의 행이 수정되었다.

 

3. DELETE

DELETE문 기본 형태

 DELETE FROM 테이블명;

DELETE문 예제 (선수 테이블 삭제하기)

 

DELETE FROM PLAYER;

 

480개의 행이 삭제되었다.

  

4. SELECT

SELECT 기본 형태

 SELECTALL/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 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 테이블명;

 

 

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;

 

<결과>

선수명    위치     키     몸무게

-----      ---      --     ---- 

정경량     MF     173    65 

정은익     MF     176    63 

레오마르  MF     183    77 

:          :        :      

480개의 행이 선택되었다.

 

5. 산술 연산자와 합성 연산자

산술 연산자란?

  • 산술 연산자는 NUMBER와 DATE 자료형에 적용
  • 수학에서의 4칙 연산과 동일
  • 산술 연산자는 수학에서와 같이 (), *, /, +, - 의 우선순위를 가진다.

 

산술 연산자 활용 예 1

 

SQL

SELECT PLAYER_NAME 이름, HEIGHT - WEIGHT "-몸무게"

FROM PLAYER;

 

<결과>

이름  -몸무게

 ---   -------

정경량 108.00 

정은익 113.00 

… … 

 

480개의 행이 선택되었다.

산술 연산자 활용 예 2

 

SQL

SELECT PLAYER_NAME 이름, ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) "BMI 비만지수"

FROM PLAYER;

 

<결과>

 이름   BMI 비만지수 

정경량 21.72 

정은익 20.34 

… … 

 

480개의 행이 선택되었다.

합성(CONCATENATION) 연산자 특징

  • 문자와 문자를 연결하는 경우 2개의 수빅 바(||)에 의해 이뤄진다 (Oracle)
  • 문자와 문자를 연결하는 경우 + 표시에 의해 이뤄진다. (SQL Server)
  • 두 벤더 모두 공통적으로 CONCAT (string1, string2) 함수를 사용할 수 있다.
  • 칼럼과 문자 또는 다름 칼럼과 연결시킨다.
  • 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.

합성 연산자 예

 

출력 형태선수명 선수키 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;

 

<결과>

체격정보

정경량선수,173cm,65kg 

정은익선수,176cm,63kg 

 

 

480개의 행이 선택되었다.