목록오라클 (21)
K 개발자
문자 함수 문자 함수character functions는 주로 CHAR나 VARCHAR2 데이터 타입을 대상으로 단일 문자나 문자열을 가공한 결과를 반환한다. 문자 함수는 다음과 같이 다양하게 제공되고 있으므로 목적에 맞게 골라서 사용한다. 함수 설명 CHR(k) 정수 아스키코드를 문자로 반환 CONCAT(s1, s2) 두 문자열을 연결 INITCAP(s) 문자열의 첫 번째 알파벳을 대문자로 변환 LOWER(s) 대상 문자열을 모두 소문자로 변환 LPAD(s, n, c) 대상 문자열의 왼쪽부터 지정한 자릿수까지 지정한 문자로 채움 LTRIM(s1, s2) 대상 문자열의 왼쪽부터 지정한 문자들을 제거 REPLACE(s1, s2, s3) 대상 문자열의 지정한 문자를 원하는 문자로 변경 RPAD(s, n, c..
숫자 함수 SQL 문에서는 수학의 기본적인 사칙 연산자(+, -, *, /)와 나머지(%) 연산자 기호를 그대로 사용한다. 그러나 실제 수학에서는 사칙 연산자 외에도 여러 연산자가 있다. 오라클은 이러한 연산자 중 사용 빈도가 높은 것을 내장 함수 형태로 제공한다. 내장 함수로 제공되는 숫자 함수는 다음과 같다. 함수 설명 ABS(숫자) 숫자의 절댓값 계산 CEIL(숫자) 숫자보다 크거나 같은 최소의 정수 FLOOR(숫자) 숫자보다 작거나 같은 최소의 정수 ROUND(숫자, m) m 자리를 기준으로 숫자 반올림 LOG(n, 숫자) 숫자의 자연로그 값 반환 POWER(숫자, n) 숫자의 n제곱 값 계산 SQRT(숫자) 숫자의 제곱근 값 계산(숫자는 양수) SIGN(숫자) 숫자가 음수이면 -1, 0이면 0,..
INSERT 문 INSERT 문은 테이블에 새로운 투플을 삽입하는 명령이다. UPDATE 문 UPDATE 문은 특정 속성값을 수정하는 명령이다. DELETE 문 DELETE 문은 테이블에 있는 기존 투플을 삭제하는 명령이다. DELETE 문은 에 해당되는 투플을 삭제한다. 이 없으면 모든 투플을 삭제한다. 연습문제 -- Book 테이블에 새로운 도서 '스포츠 의학'을 삽입하시오. 스포츠 의학은 한솔의학서적에 출간했으며 가격은 90,000원이다. INSERT INTO Book(bookid, bookname, publisher, price) VALUES (11, '스포츠 의학', '한솔의학서적', 90000); -- Book 테이블에 새로운 도서 '스포츠 의..
CREATE 문 CREATE 문은 테이블로 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령이다. ALTER 문 ALTER 문은 생성된 테이블의 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경한다. DROP 문 DROP 문은 테이블을 삭제하는 명령이다. DROP 문은 테이블의 구조와 데이터를 모두 삭제하므로 사용에 주의해야 한다. 연습문제 -- 다음과 같은 속성을 가진 NewBook 테이블을 생성하시오. /* bookid(도서번호) - NUMBER bookname(도서이름) - VARCHAR2(20) publisher(출판사) - VARCHAR2(20) price(가격) - NUMBER */ CREATE TABLE NewBook ( bookid NUMBER,..
EXISTS EXISTS는 상관 부속질의문 형식이다. EXISTS는 원래 단어에서 의미하는 것과 같이 조건에 맞는 투플이 존재하면 결과에 포함시킨다. 즉 부속질의문의 어떤 행이 조건에 만족하면 참이다. 반면 NOT EXISTS는 부속질의문의 모든 행이 조건에 만족하지 않을 때만 참이다. 연습문제 -- 주문이 있는 고객의 이름과 주소를 보이시오. SELECT name, address FROM Customer cs WHERE EXISTS ( SELECT * FROM Orders od WHERE cs.custid = od.custid);
집합연산 SQL 문의 결과는 테이블로 나타난다. 테이블은 투플의 집합이므로 테이블 간의 집합연산을 이용하여 합집합, 차집합, 교집합을 구할 수 있다. SQL에서 집합연산은 합집합을 UNION, 차집합을 MINUS, 교집합을 INTERSECT로 나타낸다. 연습문제 -- 도서를 주문하지 않은 고객의 이름을 보이시오. SELECT name FROM Customer MINUS SELECT name FROM Customer WHERE custid IN ( SELECT custid FROM Orders);
부속질의 SQL 문 내에 또 다른 SQL 문을 작성하는 것을 부속질의subquery라고 한다. 부속질의는 질의가 중첩되어 있다는 의미에서 중첩질의nested query라고도 한다. 부속질의 간에는 상하 관계가 있으며, 실행 순서는 하위 부속질의를 먼저 실행하고 그 결과를 이용하여 상위 부속질의를 실행한다. 반면 상관 부속질의correlated subquery는 상위 부속질의의 투플을 이용하여 하위 부속질의를 계산한다. 즉 상위 부속질의와 하위 부속질의가 독립적이지 않고 서로 관련을 맺고 있다. 연습문제 -- 가장 비싼 도서의 이름을 보이시오. SELECT bookname FROM Book WHERE price = ( SELECT MAX(price) FROM Book); -- 도서를 구매한 적이 있는 고객..
조인 조인join은 한 테이블의 행을 다른 테이블의 행에 연결하여 두 개 이상의 테이블을 결합하는 연산이다. 연습문제 -- 고객과 고객의 주문에 관한 데이터를 모두 보이시오. SELECT * FROM Customer, Orders WHERE Customer.custid = Orders.custid; -- 고객과 고객의 주문에 관한 데이터를 고객별로 정렬하여 보이시오. SELECT * FROM Customer INNER JOIN Orders ON Customer.custid = Orders.custid ORDER BY Customer.custid; -- 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오. SELECT name, saleprice FROM Customer INNER JOIN Order..