[SQLD] 2-3. DML
2021. 10. 29. 20:11ㆍCertificate`/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 된다