-> 블로그 이전

[SQLD] 2-3. DML

2021. 10. 29. 20:11Certificate`/SQLD

SELECT (조회)

SELECT [DISTICT] 컬럼명1, 컬럼명2,... 
FROM 테이블명
[WHERE 조건]
[GROUP BY 컬럼명1, 컬럼명2,...] -- SELECT 절에 컬럼 + 집계함수가 있는 경우 존재하는 컬럼명 전부 작성
[HAVING 조건] -- SELECT 절에 집계함수가 있는 경우 집계함수에 대한 조건
[ORDER BY 컬럼명1, 컬럼명2,...] -- 정렬 ASC/DESC

 

≫ WILDCARD (* -> 전부 조회)

SELECT *
FROM PLAYER;

 

≫ DISTINCT (중복 제거)

SELECT DISTINCT POSITION
FROM PLAYER;

 

≫ ALIAS 부여 (별칭)

- 별칭에 띄어쓰기가 있으면 " " 붙여서 활용 ex) AS "회원 정보"

- AS는 생략해도 된다

SELECT DISTINCT POSITION [AS] 포지션
FROM PLAYER;

 

≫ 산술 연산자 { (), *, /, +, - }

SELECT PLAYER_NAME 이름, HEIGHT-WEIGHT "키-몸무게"
FROM PLAYER
WHERE POSITION = 'GK' AND (HEIGHT-WEIGHT) >= 110
ORDER BY HEIGHT-WEIGHT DESC;

 

≫ 합성 연산자 ('||', '+')

- concat(str1, str2)로도 사용할 수 있다

- Oracle = '||' / SQL Server = '+'

SELECT PLAYER_NAME || '선수 ' || HEIGHT || 'cm ' || WEIGHT || 'kg' 체격정보
FROM PLAYER
WHERE HEIGHT > 190
ORDER BY HEIGHT DESC, WEIGHT DESC;

 

INSERT (입력)

-- 일부 컬럼에만 값 입력
INSERT INTO 테이블명 [(컬럼명1, 컬럼명2,...)]
VALUES (값1, 값2,...);

-- 전체 컬럼에 값 입력
INSERT INTO 테이블명
VALUES (값1, 값2,...);

- 컬럼명과 값을 1:1로 매핑해서 입력

- 정의되지 않은 컬럼은 NULL 값 입력

- NOT NULL로 지정된 컬럼은 무조건 값을 입력해야 한다

 

UPDATE (수정)

UPDATE 테이블명
SET 수정 컬럼명 = 수정 값
WHERE [조건];

 

DELETE (삭제)

DELETE FROM 테이블명
WHERE [조건];

 

DDL / DML 차이

- DDL

  • 입력하는 순간 Auto Commit 된다

- DML

  • 별도로 Commit을 입력해야 저장된다
  • SQL Server에서는 Auto Commit 된다