delete from 테이블명
ORACLE
DDL문장 수행 후 자동으로 COMMIT 수행
DDL문장 수행은 내부적으로 트랜잭션을 종료시킴
''로 입력하면 NULL로 저장됨
SQL Server
DDL문장 수행 후 자동으로 COMMIT을 수행하지 않음
DDL문장 수행이 트랜잭션 종료시키지 않음
''로 입력하면 ''로 저장됨(NULL로 저장되지않음)
NULL
널 값은 아직 정의되지 않은 값으로 0 또는 공백과 다름( 0은 숫자, 공백은 하나의 문자)
테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 널 값을 포함할 수 있음
널 값을 포함하는 경우 결과 값도 널 값(?인 값에 숫자를 더하거나 빼는 연산의 정답을 알 수 없는 것과 같음)
결과값을 NULl이 아닌 다른 값을 얻으려면 NVL/ISNULL함수 사용(NULL값의 숫자형인 경우 주로 0, 문자형인 경우 x 같은 의미없는 문자로 바꾸는 경우가 많음)
연산
조건절에서 NULL값 사용하는 경우 IS NULL, IS NOT NULL 사용
(오답: <>, !=, NOT NULL)
내장함수(Built-in Function): 벤더에서 제공하는 함수
계산을 위해 함수에 입력되는 행 수 기준으로 단일행 함수와 다중행 함수로 나뉨
단일행 함수(Single-Row Fuction): 각각의 모든 행에 대해 함수가 계산을 수행, 인수로 들어가는 숫자만큼 결과가 나옴
다중행 함수(Multi-Row Function): 여러 개의 행(데이터)가 들어간다는 것으로 계산 결과가 단 1개, 종류는 집계함수, 그룹합수, 윈도우 함수
사용자 정의 함수(User Defined Function):
옵티마이저 O/X
1) 규칙기반 옵티마이저에서 가장 높은 우선순위 는 전체 테이블 스캔 방식이다(X)
-> 일반적으로 ROWID기반으로 스캔하는 것이 가장 높은 우선순위를 가짐
2) 인덱스는 오름차순으로 생성/정렬 된다(X)
-> 내림차순으로 생성 및 정렬 됨
3) 인덱스 범위 스캔은 항상 복수의 결과를 출력(X)
-> 스캔 범위에 따라 단수의 결과 혹은 0건의 결과 출력도 가능
4) 같은 SQL문이더라도 실행계획이 다르면 결과가 다름(X)
-> 동일, 성능은 달라질 수 있음
5)자주 변화하는 속성을 인덱스로 설정하는 것은 좋지 않다(O)
6) 보조인덱스는 중복 데이터 입력이 불가능하다(X)
-> UNIQUE 속성을 가진 인덱스가 아니라면 중복 데이터 입력 가능
7) 인덱스를 통한 스캔은 항상 전체 테이블 스캔보다 효율적이다(X)
-> 랜덤 액세스의 경우 많은 양의 데이터를 읽을 때 부하가 커서 오히려 전체 테이블 스캔이 유리할 수 있음
8) 비용기반 옵티마이저는 항상 인덱스 스캔이 유리하다고 판단한다(X)
-> 비용기반으로 전체 스캔이 유리할 수도 있음
9) 파티션 테이블은 파티션에 대해 인덱스를 생성할 수 있다(O)
-> 파티션 키에 대해 인덱스를 생성 가능하며, 그 경우 해당 인덱스르 Global 인덱스라고 부름
10) 인덱스의 수는 데이터의 입력, 삭제, 수정 속도에 영향을 미치지 않는다
-> 인덱스의 수가 증가할 경우, 입력, 삭제, 수정 속도가 느려질 수 있음
11) 인덱스의 생성이 간읗나 캐릭터 타입은 VARCHAR와 NUMBER 뿐이다
-> VARCHAR, NUMBER, DATE, CHAR 모두 가능
12) 인덱스 종류는 순차 인덱스, 비트맵, 결합 인덱스, 클러스터, 해시 인덱스가 있다(O)
'DB' 카테고리의 다른 글
[SQL] DCL 예제 (0) | 2023.03.02 |
---|---|
📝 NoSQL이란? (0) | 2022.11.16 |
SQLD 자격증 문제 풀이 정리 7-8 (0) | 2022.11.01 |
SQLD 자격증 문제 풀이 정리 5-6 (0) | 2022.11.01 |
SQLD 자격증 문제 풀이 정리 3-4 (2) | 2022.11.01 |