DML (Data Manipulation Language) : 데이터 조작어
[2] DML : (1)INSERT (2)SELECT (3)UPDATE (4)DELETE
INSERT
(1) INSERT : 데이터 삽입
1.모든 COLUMN 데이터를 삽입할 때
INSERT INTO [TABLE_NAME] VALUES (COLUMN_DATA1, COLUMN_DATA2, .... COLUMN_DATA);
2.특정 COLUMN 데이터를 삽입할 때
INSERT INTO [TABLE_NAME] (COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3)
VALUES (COLUMN_NAME1_DATA, COLUMN_NAME2_DATA, COLUMN_NAME3_DATA);
--1.STUDENT 테이블에 모든 COLUMN 데이터를 삽입할 때
INSERT INTO STUDENT VALUES (1, '학생1', '2022-03-04', '010-1234-1234', '대한민국', '학생1@학교.com', '독서');
--2.STUDENT 테이블에 특정 COLUMN 데이터를 삽입할 때
INSERT INTO STUDENT (번호, 이름, 생년월일, 전화번호) VALUES(2, '학생2', '2022-03-04' ,'010-5678-5678');
SELECT
(2) SELECT : 데이터 조회
1. 모든 컬럼값 조회
SELECT * FROM [TABLE_NAME];
SELECT * FROM STUDENT; -- 학생의 모든 정보를 출력할 때
2. 특정 컬럼값 조회
SELECT [COLUMN_NAME1], [COLUMN_NAME2] ... [COLUMN_NAME(N)] FROM [TABLE_NAME];
SELECT 번호, 이름, 생년월일 FROM STUDENT; -- (번호, 이름, 생년월일) 검색
3. 특정 컬럼값 조회2
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] = 검색할값;
SELECT * FROM STUDENT WHERE 취미 = '영화감상'; --(취미가 영화감상인 학생 검색)
4. 중복 데이터 제거 DISTINCT
SELECT DISTINCT [COLUMN_NAME] FORM [TABLE_NAME];
SELECT DISTINCT 주소 FROM STUDENT; -- 중복된 주소(데이터) 제거
5. 정렬하기 ORDER BY
-오름차순 ASC -오름차순은 기본값 생략가능-
SELECT [COLUMN_NAME] FROM [TABLE_NAME] ORDER BY [COLUMN_NAME] ASC; --ASC생략가능
-내림차순 DESC
SELECT [COLUMN_NAME] FROM [TABLE_NAME] ORDER BY [COLUMN_NAME] DESC;
SELECT * FROM STUDENT ORDER BY 번호;-- 번호는 원래 데이터가 오름차순이라 출력결과 생략
SELECT * FROM STUDENT ORDER BY 번호 DESC; -- 번호를 내림차순으로 정렬
6. 두가지 이상 조건 검색
1) AND :모든 조건식이 만족할 때 true, 하나라도 거짓이면 false
SELECT [COLUMN_NAME] FROM [TABLE_NAME] WHERE 조건 AND 조건;
SELECT * FROM STUDENT WHERE 생년월일 = '22/03/04' AND 취미 = '독서';
--생년월일이 '22/03/04'이면서 취미가 '독서'인 학생 출력
2) OR : 조건식중에 하나라도 만족할 때 true 전부 거짓이면 false
SELECT [COLUMN_NAME] FROM [TABLE_NAME] WHERE 조건 OR 조건;
SELECT * FROM STUDENT WHERE 생년월일 = '22/03/04' OR 취미 = '독서';
--생년월일이 '22/03/04' 이거나 취미가 '독서'인 학생 출력
7. IN연산자 : 같은 컬럼에서 여러가지 조건 검색
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] IN(DATA1, DATA2, DATA3....DATA(N));
SELECT * FROM STUDENT WHERE 번호 IN (1,2,3); --번호가 1,2,3인 학생 조회
8. 산술연산자, 문자연산자
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] > 조건;
SELECT * FROM STUDENT WHERE 번호 > 2; --번호가 2보다 큰 학생 조회
9. BETWEEN A AND B : A부터 B사이의 값의 데이터 검색
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] BETWEEN 조건 AND 조건;
-- 조건과 조건사이의 데이터 검색
SELECT * FROM STUDENT WHERE 번호 BETWEEN 1 AND 3; --번호가 1에서 3사이의 학생 출력
9-1.NOT BETWEEN : A부터 B사이의 값이 아닌 데이터검색
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] NOT BETWEEN 조건 AND 조건;
SELECT * FROM STUDENT WHERE 번호 NOT BETWEEN 1 AND 3; -- 번호가 1에서 3사이가 아닌 학생 출력
10.LIKE, WILDCARD
LIKE : [ % , * ] 0개이상의 문자와 대응된다. 즉 내용, 글자수 상관없이 전부 검색
% : 표준 SQL에서 사용 , * : Access에서 사용
[ _ , ? ] 1개이상의 문자와 대응된다. 즉 _ 하나당 문자하나로 처리
_ : 표준 SQL에서 사용, ? : Access에서 사용
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] LIKE '시%';
해당 컬럼의 첫번째 글자가 '시'로 시작하는 데이터를 전부 찾아온다.
SELECT * FROM [TABLE_NAME] WHERE [COLUMN_NAME] LIKE '_그%';
해당 컬럼의 두번째 글자가 '그'인 모든 데이터를 전부 찾아온다.
SELECT * FROM STUDENT WHERE 취미 LIKE '%감상'; -- 취미가 감상으로 끝나는 학생 출력
SELECT * FROM STUDENT WHERE 생년월일 LIKE '___01___'; --생년월일이 1월인 사람 출력
UPDATE
(3) UPDATE : 데이터 수정
1.데이터 수정
UPDATE [TABLE_NAME] SET [COLUMN_NAME] = [COLUMN_DATA];
UPDATE STUDENT SET 취미 = '독서';
--학생의 모든 사람의 취미가 독서로 변한다.
2. 특정 데이터 수정
UPDATE [TABLE_NAME] SET [COLUMN_NAME] = [COLUMN_DATA]
WHERE [변경할 데이터 선별조건];
UPDATE STUDENT SET 취미 = '게임' WHERE 이름 = '학생2';
--학생2의 취미만 게임으로 변경
UPDATE STUDENT SET 주소 = '대한민국', 이메일 = '학생2@학생.com' WHERE 이름 = '학생2';
--학생2의 주소와, 이메일을 업데이트
DELETE
(4) DELETE : 데이터 삭제
1.모든 데이터를 삭제하는 경우
DELETE FROM [TABLE_NAME];
2.특정 데이터를 삭제하는 경우
DELETE FROM [TABLE_NAME] WHERE [삭제할 데이터 조건];
DELETE FROM STUDENT WHERE 이름 = '학생8'; --학생8의 데이터 삭제
'DB' 카테고리의 다른 글
Oracle DB 함수(TRIM,REPLACE),숫자함수(ABS, ROUND, TRUNC, CEIL)와 날짜함수들 (0) | 2022.03.11 |
---|---|
Oracle DB SQL 문자함수(UPPER, LOWER, INITCAP, LENGTH,LENGTHB, SUBSTR, INSTR, REPLACE, CONCAT, LPAD, RPAD) (0) | 2022.03.08 |
Oracle DB SQL DDL 기초 (CREATE, ALTER, DROP) (0) | 2022.03.04 |
Oracle DB SQL 기초 용어와 문법 (0) | 2022.03.04 |
SQL이란? (0) | 2022.03.04 |