끄적끄적 코딩

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) - 데이터베이스 객체에 데이터를 삭제

INSERT INSERT INTO table_name VALUE(col_val1, col_val2, col_val3, …, col_valN);
UPDATE UPDATE table_name SET col_name1 = col_val1, [ col_name2 = col_val, …, col_nameN = col_valN] WHERE conditions;

 WHERE절의 conditions에 만족하는 레코드의 값을 변경

DELETE DELETE from table_name WHERE conditions;

 WHERE절의 conditions에 만족하는 레코드의 값을 삭제


트랜잭션 (Transaction)
 : 데이터베이스의 상태를 변화시키는 일종의 작업 단위

START TRANSACTION - COMMIT, ROLLBACK이 나올 때까지 실행되는 모든 SQL
COMMIT - 모든 코드 실행
ROLLBACK - START TRANSACTION 실행 전 상태로 되돌림

start transaction; … rollback;

start transaction; … commit;

start transaction; … savepoint f1; … rollback to f1;

*ddl, dcl 실행 ⇒ commit이 실행됨

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  (0) 2023.02.02

검색 태그