savepoint
이전에 배운 rollback 명령어의 단점은 입력했던 모든 명령어가 무위로 돌아간다는 것이다.
이때 savepoint를 사용하면 특정 지점을 저장하여 해당 지점으로 되돌릴 수 있다.
SQL> savepoint aaa;
해당 시점을 aaa라는 변수에 저장해라.
SQL> rollback to aaa;
만약 되돌리고 싶다면 rollback 명령어로 해당 시점으로 되돌리는 것이 가능하다.
column format
스키마에서 설계된 자리점을 조정하는 명령어이다.
문자형은 column [attribute 명] format a(숫자)를 쓰고
숫자형은 column [attribute 명] format 9999와 같은 형식으로 쓰인다. 말이 어려우니 빨리 예시로 넘어가도록 하겠다.
school table을 조회해본다. 여기서 저 ------에 주목해서 보면된다.
column student_name format a14; 명령어를 입력 후에 student_name의 - 표시가 14개로 바뀐 것을 확인 가능하다.
SQL> column student_name format a14;
student_name의 -표시를 14개까지만 만들어라
이번엔 숫자형 format 명령어를 입력해보면
SQL> column student_score format 999999999999999999999999;
위와 같은 결과가 출력되는 것을 확인 가능하다.
where과 연산자의 조합
where은 이전에 말했듯이 특정 조건을 붙일 때 사용한다.
SQL> delete from school where student_name='홍길순';
이름이 홍길순인 레코드를 삭제해라.
SQL> select * from school where student_name='홍길순';
이름이 홍길순인 레코드를 조회해라(모든 attribute)
이렇듯 이런 where의 조건과 특정 연산자를 결합하여 더 제한된 조건을 생성이 가능하다.
where+between 연산자는 특정 조건 사이에 있는 데이터 추출이 가능하다.
SQL> select * from school where student_score between 300 and 400;
school 테이블에서 student_score가 300과 400사이인 레코드를 출력해라.
between은 and 명령어를 사용해서 나타내는 것이 가능하다.
SQL> select * from school where student_score>=300 and student_score<=400;
위의 between 연산자와 똑같은 의미이다.
where in 연산자를 사용하면 해당 조건을 만족하는 모든 데이터를 추출하는 것이 가능하다.
SQL> select * from school where student_name in ('홍길순', '김철수');
school 테이블에서 student_name이 홍길순이거나 김철수인 사람의 레코드를 출력해라
in 명령어는 or 명령어를 사용해서 나타내는 것이 가능하다.
SQL> select * from school where student_name='홍길순' or student_name='김철수';
위의 in 연산자와 똑같은 의미이다.
where과 like
like는 특정 문자열을 추출하는 조건을 만들고 싶을 때 사용한다.
like+[문자열]%은 해당 문자열로 시작하는 모든 조건을 추출한다.
반대로 like+%[문자열]는 해당 문자열로 끝나는 모든 조건을 추출한다.
like+%[문자열]%는 해당 문자열이 포함되는 모든 조건을 추출한다.
like+[문자열]_ 은 해당 문자열로 시작하며 해당 문자열 뒤에 임의의 문자 하나가 오는 것을 뜻한다.
반대로 like+_[문자열]는 해당 문자열로 끝나며 해당 문자열 앞에는 임의의 문자 하나가 오는 것을 뜻한다.
like+_[문자열]_는 해당 문자열이 포함되어있으며 해당 문자열 앞 뒤로 1글자씩 오는 것을 뜻한다.
SQL> select * from school where student_name like '홍%';
해당 명령의 결과로 홍길순이 출력된다.
해당 명령어는 school 테이블에서 student_name이 홍으로 시작하는 레코드를 출력하라는 뜻이다.
SQL> select * from school where student_name like '홍_';
'프로그래밍 > 네트워크 프로그래밍' 카테고리의 다른 글
네트워크 프로그래밍-DB(equi, non equi, inner) (0) | 2018.11.22 |
---|---|
네트워크 프로그래밍-DB(집계함수와 group/정렬) (0) | 2018.09.29 |
네트워크 프로그래밍-DB(함수, 조건문) (0) | 2018.09.21 |
네트워크 프로그래밍-DB(DDL, DML, DCL) (0) | 2018.09.14 |
네트워크 프로그래밍-DB(oracle) 기본(계정접속, 계정생성, 권한 부여) (0) | 2018.09.13 |