1. DML이란?
- Data Manipulation Language
- 데이터베이스에서 데이터를 조작하는데 사용
- sql을 이용해 데이터를 CRUD하기위한 문법
SELECT | 데이터 조회에 사용 |
---|---|
INSERT | 데이터 삽입에 사용 |
UPDATE | 데이터 수정에 사용 |
DELETE | 데이터 삭제에 사용 |
2. 조회
SELECT | 조회할 열을 지정 |
---|---|
FROM | 조회할 테이블을 지정 |
WHERE | 조회할 데이터를 필터링 |
- 모든 열을 조회
SELECT * FROM students;
- 특정 열을 조회
SELECT name, age FROM students;
- 별칭을 사용하여 열 이름 변경
SELECT name AS col1, age AS col2 FROM students;
- 조선을 사용하여 데이터 필터
SELECT * FROM students WHERE age >= 30;
- 중복된 행 제거
SELECT DISTINCT address FROM students;
3. 삽입
- INSERT INTO : 테이블에 새로운 행을 삽입할 때 사용
- 한 행 삽입
INSERT INTO students (name, age, address) VALUES ('김이박', 40, '서울특별시');
- 한 행 삽입 + 특정 열만
INSERT INTO students (name, age) VALUES ('신기루', 41);
- 여러 행 삽입
- 여러행을 한번에 삽입 한다고 해서 bulk insert라고도 한다.
INSERT INTO students (name, age, address) VALUES ('학생1', 20, '경기도'), ('학생2', 22, '경기도'), ('학생3', 23, '경기도');
- 조회 후 삽입
INSERT INTO students (name, age, address) SELECT name, age, address FROM students WHERE age < 30;
4. 수정
- 테이블에 새로운 행을 수정할 때 사용
UPDATE 수정할 테이블을 지정 SET 데이터 수정 WHERE 수정할 데이터를 필터링
- 필드 한 개 수정
UPDATE students SET age = 99 WHERE name = '이황';
- 필드 여러 개 수정
UPDATE students SET age = 10, address = '서울특별시' WHERE name = '정약용';
- 조건부 수정
UPDATE students SET address = '인천광역시' WHERE age < 33;
5. 삭제
- 테이블의 행을 삭제할 때 사용
- Delete는 행을 삭제하기 때문에 Select 처럼 열을 지정해줄 필요가 없다.
DELETE FROM 삭제할 테이블을 지정 WHERE 삭제할 데이터를 필터링
- 특정 행 삭제
DELETE FROM students WHERE name = '이황';
- 여러 행 삭제
DELETE FROM students WHERE age BETWEEN 30 AND 33;
- 모든 행 삭제
DELETE FROM students;
6. 기타
- ifnull : SQL에서만 사용가능
- Rollback : 마지막 커밋 시점으로 초기화
INSERT INTO students (name, age, address) VALUES ('이황', 28, '경상북도'), ('정약용', 29, '경기도'), ('김정호', 30, '전라북도'), ('박지원', 31, '전라북도'), ('김홍도', 32, '경기도'), ('신윤복', 33, '서울특별시'), ('김광균', 34, '서울특별시'), ('한용운', 35, '경상남도'), ('박두진', 36, '경기도'); Commit; DELETE FROM students; Rollback; //Delete는 Rollback 되어 Insert문 결과가 보여진다. SELECT * FROM students;
- Soft delete :
- withdraw = 0
- withdraw = 1
- Hard delete
- where age between 1 and 2 : 1과 2사이의 나이
'Dev > ESTsoft 오르미' 카테고리의 다른 글
SQL과 데이터베이스 (0) | 2024.02.23 |
---|---|
스레드(Thread) (0) | 2024.02.23 |
스트림 (0) | 2024.02.23 |
이팩티브 자바-인터페이스 (0) | 2024.02.23 |
람다식 (0) | 2024.02.23 |