sqldeveloper 코드 자동정리 ctrl + f7
1.CREATE
CREATE TABLE NewBook(
bookid NUMBER PRIMARY KEY,
bookname VARCHAR2(20) NOT NULL,
publisher VARCHAR2(20) UNIQUE,
price NUMBER
);
ALTER TABLE NewBook ADD isbn VARCHAR2(13);
ALTER TABLE NewBook MODIFY isbn NUMBER;
ALTER TABLE NewBook MoDIFY bookid NUMBER NOT NULL;
DROP TABLE NewBook;
1.SELECT
SELECT DISTINCT publisher
FROM Book;
SELECT SUM(saleprice) AS Total, AVG(saleprice) AS Average, MIN(saleprice) AS Minimum, MAX(saleprice) AS Maximum
FROM Orders;
SELECT COUNT(*)
FROM Orders;
WHERE BETWEEN 10000 AND 20000;
WHERE price ≥ 10000 AND price ≤ 20000;
WHERE publisher NOT IN ('굿스포츠', '대한미디어');
WHERE bookname LIKE '축구의 역사';
WHERE bookname LIKE '%축구%';
WHERE bookname LIKE '_구%';
WHERE bookname LIKE '%축구%' AND price >= 20000;
ORDER BY price desc, bookname asc;
(desc 내림차순, asc 오름차순) 기본은 asc로 오름차순으로 나타난다
GROUP BY : 속성값이 같은값 끼리 그룹을 만들어준다
HAVING : group by 한것에 대한 조건을 걸어준다
SELECT custid, COUNT(*) AS 도서수량
FROM Orders
WHERE saleprice >= 8000
GROUP BY custid
HAVING COUNT(**) >= 2;
서로다른 테이블의 데이터들을 한 테이블로 만들어서 원하는 데이터나, 통계를 내고싶을때
JOIN을 사용
SELECT name, SUM(saleprice)
FROM Customer, Orders
WHERE Customer.custid = Orders.custid
GROUP BY [Customer.name](http://customer.name/)
ORDER BY [Customer.name](http://customer.name/);
SELECT staff.ename, staff.job
FROM Emp staff, Emp manager
WHERE staff.mgr = manager.empno AND manager.ename LIKE 'BLAKE';
SELECT [Customer.name](http://customer.name/) , book.bookname
FROM Customer, Orders, Book
WHERE Customer.custid = Orders.custid AND Orders.bookid = Book.bookid AND Book.price=20000;
WHRER 조건에 속하지 않는것이라도 결과에 나타낼때
SELECT [Customer.name](http://customer.name/), saleprice
FROM Customer, Orders
WHERE Customer.custid = Orders.custid(+);
SELECT [Customer.name](http://customer.name/), saleprice
FROM Customer, Orders
WHERE Customer.custid(+) = Orders.custid;
SELECT name
FROM customer
WHERE custid IN (SELECT custid
FROM orders
WHERE bookid IN ( SELECT bookid
FROM book
WHERE publisher = '대한미디어'));
INSERT INTO Book(bookid, bookname, publisher, price)
VALUES (11, '스포츠 의학', '한솔의학서적', 90000);
INSERT INTO Book
VALUES (11, '스포츠 의학', '한솔의학서적', 90000);
INSERT INTO Book(bookid, bookname, price, publisher)
SELECT bookid, bookname, price, publisher
FROM Imported_book;
-- 한꺼번에 데이터 입력해주기
UPDATE Customer
SET address = (SELECT address
FROM Customer
WHERE name='김연아')
WHERE name LIKE '박세리';
DELETE FROM Customer
WHERE custid=5;
DELETE FROM Customer
-- 테이블의 데이터가 모두 사라지고 빈테이블만 남게된다.
참고문헌(오라클로 배우는 데이터베이스 개론과 실습)