SQL 쿼리문 실행 순서
SELECT columns (5)
FROM tablename (1)
WHERE conditions (2)
GROUP BY grouping column (3)
HAVING grouping conditions (4)
ORDER BY col [ASC | DESC] (6)
group by 절
SELECT 문에서 GROUP BY 절을 사용하는 경우 데이터베이스는 쿼리 된 테이블의 행을 그룹으로 묶음
데이터베이스는 선택 목록의 집계 함수를 각 행 그룹에 적용하고 각 그룹에 대해 단일 결과 행을 반환
GROUP BY 절을 생략하면 데이터베이스는 선택 목록의 집계 함수를 쿼리 된 테이블의 모든 행에 적용
SELECT절의 모든 요소는 GROUP BY 절의 표현식, 집계 함수를 포함하는 표현식 또는 상수만 가능
having 절
group by한 결과에 조건을 추가 할 경우 having 절을 사용
Query의 실행 순서를 보면 where절이 group by절보다 먼저 실행 되기 때문에 aggregate 조건은 having절에 작성
DML (Data Manipulation Language)
insert (C) - 데이터베이스 객체에 데이터를 입력
select (R) - 데이터베이스 객체에서 데이터 조회
update (U) - 데이터베이스 객체에 데이터를 수정
delete (D) - 데이터베이스 객체에 데이터를 삭제
<sql />
INSERT INSERT INTO table_name VALUE(col_val1, col_val2, col_val3, …, col_valN);
<sql />
UPDATE UPDATE table_name SET col_name1 = col_val1, [ col_name2 = col_val, …, col_nameN = col_valN] WHERE conditions;
WHERE절의 conditions에 만족하는 레코드의 값을 변경
<sql />
DELETE DELETE from table_name WHERE conditions;
WHERE절의 conditions에 만족하는 레코드의 값을 삭제
트랜잭션 (Transaction) : 데이터베이스의 상태를 변화시키는 일종의 작업 단위
START TRANSACTION - COMMIT, ROLLBACK이 나올 때까지 실행되는 모든 SQL
COMMIT - 모든 코드 실행
ROLLBACK - START TRANSACTION 실행 전 상태로 되돌림
<sql />
start transaction; … rollback;
start transaction; … commit;
start transaction; … savepoint f1; … rollback to f1;
*ddl, dcl 실행 ⇒ commit이 실행됨
<sql />
create table aa(
num int auto_increment, —construct 제약조건 a varchar(10),
primary key(num) );
'데이터베이스' 카테고리의 다른 글
[데이터베이스] Index (0) | 2023.04.16 |
---|---|
[데이터베이스] DDL (0) | 2023.04.16 |
[데이터베이스] JDBC (0) | 2023.02.07 |
[데이터베이스] 내장 함수 (0) | 2023.02.07 |
[데이터베이스] RDBMS & SQL, DML(Select), SET Operation (1) | 2023.02.02 |