본문 바로가기
데이터베이스/SQL

Final Project - Maria DB

by ADELA_J 2023. 5. 12.

 

 

CREATE DATABASE SalesDB;

USE salesdb;
CREATE TABLE SalesPerson (NAME CHAR(8) NOT NULL PRIMARY KEY, age INT NOT NULL,salary INT NOT NULL);

INSERT INTO salesperson VALUES('sally', 33, 35000);
INSERT INTO salesperson VALUES('justin', 29, 29000);
INSERT INTO salesperson VALUES('tom', 25, 20000);
INSERT INTO salesperson VALUES('paul', 39, 39000);
INSERT INTO salesperson VALUES('jennie', 32, 28400);
INSERT INTO salesperson VALUES('benaya', 24, 51000);
INSERT INTO salesperson VALUES('suzie', 60, 33000);
INSERT INTO salesperson VALUES('lizelle', 42, 23000);
INSERT INTO salesperson VALUES('ellie', 22, 44000);
INSERT INTO salesperson VALUES('helena', 30, 42000);
INSERT INTO salesperson VALUES('alvin', 50, 32000);

CREATE TABLE Ordertbl (NUMBER INT, custName CHAR(8) NOT NULL PRIMARY KEY, salesPerson CHAR(8), amount INT,
FOREIGN KEY (salesperson) REFERENCES salesperson(NAME), FOREIGN KEY (custname) REFERENCES customer(NAME));
INSERT INTO ordertbl VALUES(1, 'mimi','sally', 2);
INSERT INTO ordertbl VALUES(2, 'vince','justin', 5);
INSERT INTO ordertbl VALUES(3, 'helen','tom', 1);
INSERT INTO ordertbl VALUES(4, 'lamaya','ellie', 2);
INSERT INTO ordertbl VALUES(5, 'graind','jennie', 12);
INSERT INTO ordertbl VALUES(6, 'saara','alvin', 8);
INSERT INTO ordertbl VALUES(7, 'jenny','helena', 6);
INSERT INTO ordertbl VALUES(8, 'claire','ellie', 4);
INSERT INTO ordertbl VALUES(9, 'jessie','paul', 2);
INSERT INTO ordertbl VALUES(10, 'maria','deil', 2);

CREATE TABLE customer(NAME CHAR(8) NOT NULL PRIMARY KEY, city CHAR(8), industryType CHAR(8));
INSERT INTO customer VALUES('mimi', 'LA', 'edu');
INSERT INTO customer VALUES('maria', 'LasVegas', 'beauty');
INSERT INTO customer VALUES('claire', 'atlanta', 'shoes');
INSERT INTO customer VALUES('vince', 'NewYork', 'sales');
INSERT INTO customer VALUES('helen', 'Manhat', 'bank');
INSERT INTO customer VALUES('saara', 'Paris', 'marketer');
INSERT INTO customer VALUES('graind', 'Sydney', 'officer');
INSERT INTO customer VALUES('lamaya', 'Suwon', 'book');
INSERT INTO customer VALUES('jessie', 'Seoul', 'IT');
INSERT INTO customer VALUES('jenny', 'Lagos', 'game');

-- (2)모든 판매원의 이름과 급여를 보이시오, 단 중복 행은 제거
SELECT DISTINCT NAME,salary FROM salesperson; 
-- (3)나이가 30세 미만인 판매원의 이름을 보이시오.
SELECT NAME FROM salesperson WHERE age < 30;
-- (4) 'S'로 끝나는 도시에 사는 고객의 이름을 보이시오.
SELECT * FROM customer WHERE city LIKE '%s';

-- (5) 주문을 한 고객의 수(서로 다른 고객만)를 보이시오.
SELECT DISTINCT COUNT(custName) AS '주문을 한 고객수' FROM ordertbl;
-- (6) 판매원 각각에 대하여 주문의 수를 계산하시오.
SELECT salesperson, SUM(amount) AS '총 판매 개수' FROM ordertbl GROUP BY salesperson ORDER BY SUM(amount) desc;
-- (7) LA에 사는 고객으로부터 주문을 받은 판매원의 이름과 나이를 보이시오.(부속질의를 사용)
 

-- SELECT Name FROM customer WHERE city LIKE 'LA'; -- 첫번째,  customer tbl 에서 LA사는 사람 불러오고
-- 
-- SELECT custName FROM ordertbl WHERE custName LIKE 'mimi';   -- 두번째,그 사람의 이름을 ordertbl에서 판매원을 불러오고
-- 
-- SELECT salesperson from ordertbl 
-- WHERE custName LIKE (SELECT Name FROM customer WHERE city LIKE 'LA');  -- 첫번째, + 두번째 합친거

-- (7) 최종 답SQL 
SELECT NAME, age FROM salesperson 
WHERE NAME LIKE 
(SELECT salesperson from ordertbl WHERE custName LIKE 
(SELECT Name FROM customer WHERE city LIKE 'LA'));  --  그리고 최종

-- (8) 두 번 이상 주문을 받은 판매원의 이름을 보이시오.
SELECT salesperson AS '두 번 이상 주문받은 직원' , COUNT(salesperson) AS '횟수'
FROM ordertbl GROUP BY salesperson HAVING COUNT(salesperson) >=2;
-- (9)판매원 'TOM'의 봉급을 45,000원으로 변경하는 sql문을 작성하시오.
UPDATE salesperson SET salary = 45000 WHERE NAME='tom';
-- (10) 'LA'에 사는 고객으로부터 주문을 받은 판매원의 이름과 나이를 보이시오(조인을 사용)

SELECT s.name, age FROM salesperson AS s
JOIN ordertbl AS o ON o.salesPerson = s.name
JOIN customer AS c ON o.custName = c.NAME
WHERE city LIKE 'LA';

'데이터베이스 > SQL' 카테고리의 다른 글

SQL SELECT, * , AS, 연결연산자(||) 사용하기  (1) 2023.08.27
인덱스  (0) 2023.05.12
Maria DB 기본키(1) : 외래키(N)  (0) 2023.04.21
DB 모델링과 필수 용어  (0) 2023.04.16
Maria DB 설치  (0) 2023.04.16