LIKE 연산자 ( 복습 )
일부 단어만 작성한 후 검색할 때 해당 단어가 포함된
모든 결과를 반환하기 위해 사용되는 LIKE 연산자
LIKE 연산자만 사용한다면 작성한 단어가 완벽하게 일치하는 결과만을 반환하지만 ( = )
와일드카드( %, _ ) 를 사용한다면 작성한 단어가 포함된 모든 결과를 출력할 수 있다.
%는 임의의 문자 N개를 즉, 어떠한 문자든지, 문자 개수는 몇 개든 몇 백개든 상관없다.
_는 임의의 문자 1개를 의미한다.
ROWNUM 컬럼을 사용하면 WHERE절에 출력개수를 지정할 조건을 작성하기 쉽다.
- ROWNUM은 사용자가 아닌 시스템이 관리하는 Pseudo Column이다.
번호를 획득할 때 ( 채번 ), 출력 개수를 지정할 때 활용이 가능하다.
테이블을 생성할 때 명시적으로 컬럼을 작성하지 않아도
기본적으로 만들어지는 컬럼중 하나가 ROWNUM이고,
ROWNUM은 행의 번호를 나타내며 사용자가 아닌 시스템이 관리한다.
번호를 획득할 때 ( 채번 ) 또는 ( 위에서부터 N개의 레코드를 반환할 때 ) 출력 개수를 지정하는 등에 사용된다.
ROWNUM은 TOP N개를 반환하고 싶을 때
즉 출력 개수를 지정하고싶을 때 사용하는데
부등호를 사용하여 ROWNUM ( 행의 번호 ) 을 출력한다.
여러 행을 반환할 때 같다를 의미하는 = 등호 사용은 안된다.
예를 들면 WHERE ROWNUM = 3 은 안되지만 하나의 행을 반환하는
WHERE ROWNUM = 1 은 된다. ( 예외로 사용가능한 WHERE ROWNUM = 1 )
ROWNUM 이 등호를 사용할 때 등호 ( = ) 뒤에 1이 아닌 숫자가 오면 틀린 것이다.
DML중 INSERT, UPDATE, DELETE 는 데이터를 변형하기 위한 명령어,
테이블의 구조가 변경되는 것이 아닌 테이블의 인스턴스가 변경되는 것이다.
INSERT는 기본적으로 테이블에 한 건의 레코드를 추가하는 것이다.
여러 건을 입력하고 싶다면 INSERT ALL ~ 구문을 활용한다.
문자 또는 날짜 값의 경우 작은 따옴표로 묶는다.
숫자 데이터는 작은 따옴표 없이 사용한다.
( 하나의 ) 레코드를 삽입시 두 가지 유형으로 입력이 가능하다.
1) 일부 칼럼에 대응되는 데이터만 입력할 때
INSERT INTO 테이블명 ( 칼럼을 순서대로 나열 ) VALUES ( 앞서 작성한 칼럼 순서대로 데이터 나열 );
→ 칼럼 순서는 실제 테이블의 칼럼 순서와는 무관하며
정의하지 않은 칼럼은 NULL 값이 입력된다.
ex. INSERT INTO PLAYER ( player_id, player_name, team_id, birth_date )
VALUES ( '2999001', '손흥민', 'K07', '1999-01-01');
2) 전체 칼럼에 대응되는 데이터를 모두 입력할 때
INSERT INTO 테이블명 VALUES ( 스키마 구조 순서대로 데이터를 나열한다 );
→ 전체 칼럼의 모든 값을 테이블 스키마 구조 순서대로 입력해야 한다.
→ 값이 없는 컬럼의 경우 NULL 또는 작은 따옴표 둘로 입력한다.
ex. INSERT INTO PLAYER
VALUES ( '2999002', '이승우', 'K07', NULL, NULL, '2010', 'MF', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT ALL 사용할 때는 반드시 SELECT문을 사용해야 한다.
새로운 값을 직접 입력하는 경우에는 DUAL 테이블을 사용한다 → SELECT * FROM DUAL;
DELETE는 테이블에 존재하는 전체 레코드를 삭제한다.
DELETE 테이블명; DELETE FROM 테이블명; → 테이블에 존재하는 모든 레코드가 삭제된다.
일반적으로는 WHERE절을 작성하여 특정 인스턴스를 삭제한다.
예를 들어 DELETE FROM STADIUM WHERE STADIUM_ID = 'TP1';
이 SQL문은 STADIUM 테이블에서 STADIUM_ID가 TP1인 레코드를 삭제하라는 것이다.
'공부기록용' 카테고리의 다른 글
[ SQLD ] DDL 240816 (0) | 2024.08.16 |
---|---|
[ SQLD ] SQL - DDL 240815 (0) | 2024.08.16 |
[ SQLD ] SQL_Basic DML 240810 (0) | 2024.08.10 |
[ SQLD ] 데이터 모델과 성능 240806 (0) | 2024.08.06 |
[ Spring Boot ] 스프링 JPA (0) | 2024.08.02 |