select * from Book;
select * from Customer;
select * from Orders;
CREATE TABLE Orders;
--프라이머리키나 포린키 쓸땐 앞의 쉼표 삭제(이 문법에선 안 썼음)
orderid number(2),
custid number(2),
bookid number(2),
saleprice number(8),
orderdate date,
PRIMARY KEY(orderid),
foreign key(custid) references Customer(custid),
foreign key(bookid) references Book(bookid)
);
--숫자는 number로
--문자는 varchar2로
--날짜는 date로
insert into Orders values(1, 1, 1, 6000, to_date('2020-07-02', 'yyyy-mm-dd'));
insert into Orders values(2, 1, 3, 21000, to_date('2020-07-03', 'yyyy-mm-dd'));
insert into Orders values(3, 2, 5, 8000, to_date('2020-07-03', 'yyyy-mm-dd'));
insert into Orders values(4, 3, 6, 6000, to_date('2020-07-04', 'yyyy-mm-dd'));
insert into Orders values(5, 4, 7, 20000, to_date('2020-07-05', 'yyyy-mm-dd'));
insert into Orders values(6, 1, 2, 12000, to_date('2020-07-07', 'yyyy-mm-dd'));
insert into Orders values(7, 4, 8, 13000, to_date('2020-07-07', 'yyyy-mm-dd'));
insert into Orders values(8, 3, 10, 12000, to_date('2020-07-08', 'yyyy-mm-dd'));
insert into Orders values(9, 2, 10, 7000, to_date('2020-07-09', 'yyyy-mm-dd'));
insert into Orders values(10, 3, 8, 13000, to_date('2020-07-10', 'yyyy-mm-dd'));
DROP TABLE Orders;
commit;
--select 문법구조
--select 속성이름1, 속성이름2(만약 모든 속성 출력하려면 *) from 테이블 이름
--Q1 book 테이블에서 책이름과 출판사 두가지 모두 출력하시오.
select bookname 책이름, publisher 출판사 from Book;
--Q2 모든도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오.
select bookid, bookname, publisher, price from Book;
select publisher from Book;
--중복을 제거하고 싶으면 속성이름 앞에 DISTINCT를 붙여주면 된다.
--Q3)중복제거후 출판사 목록 출력
select DISTINCT publisher from Book;
--where
--의미: 모든 데이터를 다 출력하는 것이 아니라 조건에 맞는 데이터만 출력하고 싶을 때 사용!
--예: 가격이 20000원 이하인 책의 출판사를 출력하시오.
select publisher
from Book
where price <=20000;
--예: 책 이름이 4글자 이상인 책들을 모두 출력하시오
--비교 연산자: =, <>(같지 않다), <, >, =>등등
--범위 연산자: between a and b 문법
--Q4)가격이 10000원 이상 20000원 이하인 책들을 모두 출력하시오.
--조건 두 가지가 모두 만족하는 문법이 있어야 한다면?
--and(두가지 모두 만족), or(둘중에 하나만 만족), not(반대) 모두 조건문에 들어감
select *
from book
where price between 10000 and 20000;
select *
from book
where price >=10000 and price <=20000;
--Q5) 책들중 가격이 만원 혹은 이만원 혹은 삼만원인 책들을 출력하시오
select *
from book
where price=10000 or price=20000 or price=30000 ;
--IN( , )괄호 안에 있는 것 중에 하나라도 해당되면 ok
select *
from book
where price IN (10000, 20000, 30000) ;
--not 연산자 활용하여 가격이 만원, 혹은 이만원 또는 삼만원이 아닌 책들을 출력하시오
select *
from book
where price not in (10000, 20000, 30000);
commit;
--Q1. 모든 도서의 이름과 가격을 검색하시오
-- as뒤 한글은 속성의 영어를 한글로 바꿔줌
select bookname as 책이름, price as 가격
from book;
--이 문법으로 써도 됨 as는 alias의 줄임말(별명이라는 듯, 생략가능)
select bookname as 책이름, price as 가격
from book;
--Q2. (IN문법을 사용해서)출판사가 '굿스포츠'혹은 '대한미디어'인 도서를 검색하시오
--자료형이 number인 데이터는 ' '를 붙일 필요가 없고 그 외에는 데이터에 따옴표를 붙여야한다.
--숫자는 number로
--문자는 varchar2로
--날짜는 date로
select *
from book
where publisher IN ('굿스포츠',' 대한미디어 ');
--Q2. (IN문법을 사용해서)출판사가 '굿스포츠'혹은 '대한미디어'가 아닌 도서를 검색하시오
select *
from book
where publisher NOT IN ('굿스포츠',' 대한미디어 ');
--숫자를 같다 다르다 비교할 때는 =,<> ex)price = 10000;
--문자를 같다 다르다 비교할 때는 like, not like ex)publisher like '굿스포츠';
--Q4.책이름이 '축구의 역사'인 책을 출간한 출판사를 검색하시오
select publisher
from book
where bookname like '축구의 역사';
--출판사이름만 출력하려면 publisher
--%(퍼센트 문법) 어떤 문자열 속에 그 단어가 포함되는 문자열을 찾을 때 사용함.
--예를 들어 추억으로 끝나는 문자열을 찾고 싶을 때에는 '%추억'
--추억으로 시작하는 문자열을 찾고 싶을 때에는 '추억%'
--추억이 어딘가에 들어가는 문자열을 찾고 싶을 때에는 '%추억%'
--Q5 도서 이름에 '축구'가 포함된 책이름과 출판사를 검색하시오
select bookname, publisher
from book
where bookname like'%축구%';
--앞에 있는건(예시:도서이름) where뒤에 뒤에있는 에(예시:책이름과 출판사) select뒤 로 나오는 유형..
--_(언더바 문법)%는 0글자~ 여러글자 _는 한글자만 해당!
Q6. 도서이름의 왼쪽 두번째 위치에 '구'라는 문자열을 갖는 도서를 검색하시오
select *
from book
where bookname like'_구%';
Q7. 제임스가 요청을 한다. "축구에 관한 도서 중 가격이 20000원 이상인 책 좀 추천해줘"
select *
from book
where bookname like'%축구%' and price >=20000;
요약
1) 숫자는 number로
문자는 varchar2로
날짜는 date로
2)select 문법구조
select 속성이름1, 속성이름2(만약 모든 속성 출력하려면 *) + from 테이블 이름
3)중복을 제거하고 싶으면 속성이름 앞에 DISTINCT
4)비교 연산자: =, <>(같지 않다), <, >, =>등등
범위 연산자: between a and b 문법
5)IN( , )괄호 안에 있는 것 중에 하나라도 해당되면 ok (괄호 안 속성이 모두아닌 것은 NOT IN써주면 됨)
6) --숫자를 같다 다르다 비교할 때는 =,<> ex)price = 10000;
문자를 같다 다르다 비교할 때는 like, not like ex)publisher like '굿스포츠';
7) %(퍼센트 문법) 어떤 문자열 속에 그 단어가 포함되는 문자열을 찾을 때 사용함.
--예를 들어 추억으로 끝나는 문자열을 찾고 싶을 때에는 '%추억'
--추억으로 시작하는 문자열을 찾고 싶을 때에는 '추억%'
--추억이 어딘가에 들어가는 문자열을 찾고 싶을 때에는 '%추억%'
'데이터베이스 > 오라클' 카테고리의 다른 글
오라클 실습 내용 6(group by/having) (0) | 2023.04.05 |
---|---|
오라클 실습내용 5(집계함수sum,avg,count...등, order by) (0) | 2023.04.05 |
오라클 수업 한 파일 (0) | 2023.04.04 |
오라클 ZERO(쌍따옴표) (0) | 2023.04.04 |
오라클 실습내용 3(number,varchar2) (2) | 2023.03.22 |