자소서를 새로 쓰기로 시작한 후, 첫 번째 시도 !! 기업인 KB증권 디지털 직무에 합격했습니다 ~!
(도와준 여자친구에게 감사 인사 전합니다 :) )
인적성 + 코테(SQL 4문제)로 구성되어있어서,, SQL 12000짜리 강의랑 자료를 사서 공부를 해보려합니다..
저번에 다 풀었던 프로그래머스 다시 아이디새로파서 풀고, 함수들 정리하고,, 정규표현식 공부하고,, 1주일간 화이팅 해보겠습니다
FIGHTING!
SELECT CUSTOMERNAME, CITY FROM CUSTOMERS;
SELECT * FROM CUSTOMERS;
SELECT DISTINCT Country FROM Customers;
SELECT * FROM Customers
WHERE CustomerName = 'Ana';
SELECT * FROM Customers
WHERE CustomerID = 2;
같을 때 "=" , 같지 않을 때 "!=", 클 때 "<", 크거나 같을 때 "<="
SELECT * FROM Customers
ORDER BY Country ASC/DESC;
SELECT * FROM Customers
ORDER BY FIELD (Country, UK, Sweden)
SELECT * FROM Customers LIMIT 3;
SELECT * FROM Customers LIMIT 2, 3; -> INDEX 2부터 3개 리턴 (2,3,4 번째 INDEX 로우)
SELECT * FROM Customers LIMIT 0, 3;
SELECT * FROM Customers
ORDER BY Country ASC LIMIT 3 ;
SELECT * FROM (SELECT * FROM Customers LIMIT 3)
ORDER BY Country ASC;
SELECT City FROM Customers
WHERE Country IS NOT NULL;
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'A%';
SELECT * FROM Customers
WHERE Country = 'Germany' OR Country = 'UK';
SELECT * FROM Customers
WHERE Country IN ('Germany', 'UK');
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
SELECT * FROM Products
WHERE (Price NOT BETWEEN 10 AND 20) AND NOT CategoryID IN (2,3);
SELECT Orders.OrderID, Customers.CustomerName (두 개 테이블의 컬럼들)
FROM Orders INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers FULL OUTER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
SELECT City FROM Customers UNION SELECT City FROM Orders
ORDER BY City;
UNION은 기본적으로 중복값을 제거함
중복값을 포함하고 싶을 경우 UNION ALL 사용
SELECT MIN(Price) FROM Products;
SELECT MAX(Price) FROM Products;
SELECT ABS(Price) FROM Products;
SELECT COUNT(CategoryID) FROM Products;
SELECT AVG(Price) FROM Products
SELECT SUM(Price) FROM Products WHERE SupplierID > 2;
SELECT COUNT(CustomerID), Country
FROM Customers
WHERE ~
GROUP BY Country;
SELECT COUNT(CustomerID), Country
FROM Customers
WHERE ~
GROUP BY Country
HAVING COUNT (CustomerID) > 2
SELECT CONCAT(string1, string2, ...., string n);
SELECT CONCAT('HELLO', ',', 'SQL!!')
SELECT CONCAT(region_name, ' ', store_name)
FROM Geography WHERE store_name = 'Boston';
>SELECT ROUND(Price, 1) FROM People;
SELECT TRUNC(Price, -1) FROM People;
SELECT ROUND(to_date(Contact date, 'yyyy-mm-ddhh24:mi'));
두 개의 날짜값의 차이를 Int형으로 반환하고자 할 때 사용
Int 형으로 반환하기에 Int 범위를 넘어서는 차이는 확인 불가능
두 날짜값의 년도 차이나 시간 차이, 개월 수 차이도 확인 가능
문법 : SELECT DATEDIFF(interval, Start_Date, End_Date);
>SELECT DATEDIFF(dd, '2018-01-01', '2018-12-31') + 1;
-> 365
시간을 원하는 형태로 반환하고자 할 때 사용
문법 : DATE_FORMAT(DATETIME date, FORMAT);
SELECT DATE_FORMAT(NOW(), "%Y%c/%e %r");
변경할 테이블 명을 UPDATE 문에 적고
변경할 값을 SET 문 뒤에 나열
조건이 있다면 WHERE 절에 작성, 없으면 열 전체가 변경
COMMIT 명령어 입력해야 반영이 됩니다!
변경된 걸 원상복구하고 싶으면 ROLLBACK!! (BUT, COMMIT 입력했으면 ROLLBACK 안되요 조심!)
UPDATE [테이블명]
SET 컬럼1 = '값1', 컬럼2 = '값2'
WHERE 조건 = 조건값
INSERT INTO 테이블 이름 (열1, 열2, ...)
VALUE (값1, 값2, ...)
INSERT INTO 테이블 이름 (열1, 열2, ...)
SELECT 테이블에 들어갈 값
FROM select값을 구하기 위한 테이블
WHERE 조건
SELECT LOAN_NUMBER
FROM LOAN
WHERE BRANCH_NAME = 'Perryridge' AND AMOUNT >= 1400;
SELECT B.CUSTOMER_NAME, B.LOAN_NUMBER, L.AMOUNT
FROM LOAN AS L, BORROWER AS B
WHERE (L.BRANCH_NAME = 'Perryridge') AND (L.LOAN_NUMBER = B.LOAN_NUMBER);
SELECT CUSTOMER_NAME
FROM CUSTOMER
WHERE CUSTOMER_STREET LIKE '%Main%' ;
SELECT B.CUSTOMER_NAME
FROM LOAN AS L, BORROWER AS B
WHERE (L.BRANCH_NAME = 'Perryridge') AND (L.LOAN_NUMBER = B.LOAN_NUMBER)
ORDER BY B.CUSTOMER_NAME ASC;
SELECT DISTINCT CUSTOMER_NAME
FROM BORROWER INNER JOIN LOAN
WHERE BORROWER.LOAN_NUMBER = LOAN.LOAN_NUMBER
AND BRANCH_NAME = 'Perryridge' ORDER BY CUSTOMER_NAME;
SELECT AVG(BALANCE)
FROM ACCOUNT
WHERE BRANCH_NAME = 'Perryridge';
SELECT BRANCH_NAME, BALANCE
FROM ACCOUNT
GROUP BY BRANCH_NAME
HAVING AVG(BALANCE) >= 700;
SELECT ID
FROM Products
WHERE ID IN (SELECT ID FROM PRODUCTS WHERE NAME = 'Milk') AND NAME = 'Yogurt'
ORDER BY ID;
SELECT I.ANIMAL_ID, I.NAME, I.DATETIME
FROM ANIMAL_INS AS I
ORDER BY I.NAME ASC, DATETIME DESC;
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d')
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
(GROUP BY NAME
HAVING NAME IS NOT NULL) -> 생략 가능
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME ASDC
LIMIT 1;
SELECT COUNT(DISTINCT ANIMAL_ID)
FROM ANIMAL_INS
SELECT COUNT(DISTINCT ANIMAL_NAME)
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog';
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
SELECT ANIMAL_ID, NAME
FROM OUTS
WHEHE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM INS)
ORDER BY
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS AS A LEFT JOIN ANIMAL_INS
ON O.ANIMAL_ID = ANIMAL_INS.ANIMAL_ID
WHERE ANIMAL_INS.ANIMAL_ID IS NULL;