[SQL] 2 기본 문법(DML)
DML(Data Manipulation Language): 데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어
Ex) INSERT, UPDATE, DELETE, SELECT 등
01 데이터 검색 (SELECT)
SELECT 컬럼1, 컬럼2, ..
FROM 테이블명;
-
book 테이블에서 모든 책의 title과 author 컬럼을 검색한다.
SELECT title, author FROM book;
-
검색할 컬럼에 *을 입력하면 해당 테이블(book)의 모든 데이터 검색할 수 있다.
SELECT * FROM book;
DISTINCT
중복되는 값 제거
SELECT DISTINCT 컬럼1, 컬럼2, ..
FROM 테이블명;
주의: DISTINCT
뒤에 2개 이상의 컬럼을 적으면, 한 쪽 컬럼에 중복이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급한다.
-
book 테이블에서 title과 author 컬럼의 중복 제거된 데이터를 검색한다.
SELECT DISTINCT title, author FROM book;
WHERE
특정 조건의 레코드 선택
SELECT 컬럼1, 컬럼2, ..
FROM 테이블명
WHERE 조건;
-
book 테이블에서 제목이 ‘돈키호테’인 모든 데이터를 검색한다.
SELECT * FROM book WHERE title = '돈키호테';
연산자
-
비교 연산자
연산자 예 의미 >, < N < 10
N < 10N이10미만
N이10초과>=, <= N <= 10
N >= 10N이10이하
N이10이상= N = 10 N이 10인 값 != N != 10 N이 10이 아닌 값 BETWEEN A BETWEEN 10 AND 20 A가 10과 20 사이에 포함된 값
(10, 20 포함)IN() A IN B B에 A가 포함된 값 NOT IN() A NOT IN B B에 A가 포함되지 않은 값 -
복합조건 연산자
연산자 예 의미 AND, && A AND B
A && BA 그리고 B를 모두 만족하는 값 OR, || A OR B
A || BA 또는 B인 값 NOT, ! NOT A
!AA가 아닌 값 SELECT * FROM score WHERE korean >= 90 OR math > 80;
LIKE
특정 패턴 매칭
SELECT 컬럼1, 컬럼2, ..
FROM 테이블명
WHERE 컬럼 LIKE 패턴;
-
book 테이블에서 제목(title)이 ‘어린왕자’인 책 검색
SELECT * FROM book WHERE title LIKE '어린왕자';
만약 특정 패턴을 포함하지 않는 데이터를 검색하고 싶을 때는
NOT LIKE
연산자를 사용하면 된다. -
book 테이블에서 제목(title)이 ‘어린’으로 시작하는 책 검색
SELECT * FROM book WHERE title LIKE '%어린';
[참고] ‘%’는 0개 이상의 문자라는 의미의 와일드카드(wildcard) 문자이다.
와일드카드 설명 % 0개 이상의 문자를 대체함. _ 1개의 문자를 대체함.
ORDER BY
결과 정렬
SELECT 컬럼1, 컬럼2, ..
FROM 테이블명
ORDER BY 정렬 조건;
ORDER BY 절의 기본 설정은 오름차순이며, ASC
키워드를 사용하여 직접 오름차순을 명시할 수도 있다. 내림차순으로 정렬하고자 할 때는 맨 마지막에 DESC
키워드를 추가하면 됩니다.
-
score 테이블에서 수학(math) 값이 높은 데이터부터 정렬하여 검색
SELECT * FROM score ORDER BY math DESC;
02 데이터 삽입 (INSERT)
테이블에 새로운 레코드 추가:
INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...)
VALUES (데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름
VALUES (데이터값1, 데이터값2, 데이터값3, ...);
-
‘햄릿’ 책 데이터를 book 테이블에 추가
INSERT INTO book(id, title, author, publisher) VALUES('3', '햄릿', '윌리엄 셰익스피어', '대한 출판');
INSERT INTO book VALUES('3', '햄릿', '윌리엄 셰익스피어', '대한 출판');
03 데이터 수정 (UPDATE)
UPDATE 테이블이름
SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...
WHERE 필드이름=데이터값;
-
책 제목(title)이 ‘돈키호테’인 데이터의 제목(title)을 ‘돈키호테 1’로 변경
UPDATE book SET title = '돈키호테 1' WHERE title = '돈키호테';
만약 WHERE 절을 생략하면, 해당 테이블의 모든 레코드의 title 필드의 값이 ‘돈키호테 1’로 변경된다.
04 데이터 삭제 (DELETE)
DELETE FROM 테이블이름
WHERE 필드이름=데이터값;
-
제목이 ‘돈키호테 1’인 책 데이터를 book 테이블에서 삭제
DELETE FROM book WHERE title = '돈키호테 1';
만약 WHERE 절을 생략하면, 해당 테이블에 저장된 모든 데이터가 삭제되기 때문에 신중히 사용해야 한다.
- 이때 테이블에 저장된 모든 데이터가 삭제되더라도 테이블은 여전히 남아있게 된다.
해당 테이블까지 삭제하고 싶을 때는
DROP TABLE
문을 사용해야 한다.
- 이때 테이블에 저장된 모든 데이터가 삭제되더라도 테이블은 여전히 남아있게 된다.
해당 테이블까지 삭제하고 싶을 때는
댓글남기기