전체 글에 해당하는 글 292

  1. 11. 서브쿼리 2021.04.15

    서브쿼리(Subquery) : 쿼리 안에 들어가는 또 다른 쿼리. = 가상의 테이블을 만든다. SELECT(ex.누적 합cumulative sum), FROM(ex.기간별 평균 발생량), WHERE 등에서 사용이 가능하다. *(괄호) 안에 들어가야 하며 이름을 꼭 지어 주는 게 좋다. WHERE절의 = 뒤에 들어가는 서브쿼리는 결과물(Column과 Row)이 1개여야만 한다. IN을 쓰면 여러 개의 데이터가 나타나도 된다. 연습문제 1 여기서 다른 방법으로 풀었던 문제 연습문제 2 WHERE절 내의 서브쿼리에서 출력된 Salary가 어떤 DepartmentId의 Salary 인지 알 수 없기 때문에, 최대값으로 출력된 Salary와 같은 사람이라면 모두 출력되는 상황이라서! 틀린것! JOIN할 때 키를 ..


  2. 10. ERD, 데이터 타입 2021.04.14

    ERD(Entity Relationship Diagram) : 개체/엔티티(=테이블) 간의 관계를 나타내는 그림. Attribute : 각 엔티티가 가지는 특징이자 구조적으로 각 테이블의 컬럼명, 컬럼 정보=데이터타입 해당 컬럼이 무엇을 의미하는지 등을 나타낸다. PK(Primary Key) : 주 식별자. 하나의 엔티티에 PK는 하나씩만 존재할 수 있다. 해당 엔티티(테이블)을 대표하는 키. 각 레코드마다 유니크하게 가지는 key. FK(Foreign Key) : 외부 식별자. 다른 엔티티의 PK에서 참조될 수 있다. 두 가지 이상의 엔티티에서 그 사이의 관계를 정의하는 데 사용될 수 있다. 화살표는 어떤 엔티티와의 관계를 보여주지만, 몇 개의 데이터가 몇 개의 데이터와 대응되는지 나타내 준다. (1 ..


  3. 09. 조작어 / INSERT, UPDATE, DELETE 2021.04.08

    조작어(DML, Data Manifulation Language) : DB에 저장되어 있는 데이터를 조작하는 명령어 [INSERT : 새로운 데이터를 추가 ] 1. 테이블 전체에 데이터를 추가하기 format : INSERT INTO 테이블명 VALUES (VALUE_LIST) ; VALUE_LIST는 컬럼 순서대로 입력 아래와 같은 4개의 컬럼을 가지는 텅 빈 "Salary"라는 테이블이 있을 때, id name salary date INSERT INTO Salary VALUES ('1', 'A', '250', '2021-04-07') ; 를 실행하면! id name salary date 1 A 250 2021-04-07 2. 특정 컬럼을 지정하여 데이터를 추가하기 format : INSERT INTO..


  4. 08-1. 추가 연습문제 풀이 2021.01.31

    연습문제 1-1 연습문제 1-2 연습문제 1-3 연습문제 1-4 연습문제 2-1 연습문제 2-2 연습문제 2-3 *BETWEEN 38.7880 AND 137.2345 하려면 이상/이하여야 함. 연습문제 2-4 select * from submissions as S left join Hackers as H on H.hacker_id = S.hacker_id -- inner join Challenges as C on S.challenge_id = C.challenge_id -- inner join Difficulty as D on D.difficulty_level = C.difficulty_level -- where C.difficulty_level = D.difficulty_level and D.score..


  5. 08. 숫자와 문자열을 다루는 함수 2021.01.25

    ***웬만한 건 다 함수로 정해져 있으니 여기를 참고*** *** 테이블 내부 데이터 자체를 건드리는 게 아니다! *** select로 뽑아올 때 출력값을 어떻게 보일 지 정해주는 함수라는 것 유의*** [소수점 이하 숫자 다루기] ROUND(컬럼명/값, n) : 값을 소수점 이하 n자릿수로 반올림 -> ROUND(8.765,2) = 8.77 TRUNCATE(컬럼명/값,n) : 값을 소수점 이하 n자릿수까지만 남기고 나머지 버림 -> TRUNCATE(8.765,2) = 8.76 CEIL(컬럼명/값) : 값의 소수점 이하를 올림해 정수 반환 FLOOR(컬럼명/값) : 값의 소수점 이하를 버림해 정수 반환 [간단한 숫자 연산하기] POWER(컬럼명/값, n) = POW(컬럼명/값, n) : 값을 n제곱해서 ..


  6. 07. 데이터 결합하기(↕️) / UNION, UNION ALL 2021.01.04

    JOIN의 경우는 옆으로 데이터를 이어 붙이는 것이었다. 이번에는 위 아래로 붙이는 걸 해볼거임! 실습링크 UNION : 두 개의 테이블의 데이터를 중복값을 제외하여 결합한 테이블을 반환한다. (default) UNION ALL : 중복값을 포함하여 결합한 테이블을 반환한다. *SELECT와 달리 중복값을 제외하는 출력이 디폴트다. 예시 : Products테이블에서 Price가 5 이하거나 200 이상인 데이터만 출력하세요. > SELECT * FROM Products WHERE Price = 200 위와 같은 기능을 하는 코드를 구현하기 위해서는 . . . UNION을 아래와 같이 사용하면 5 이하인 테이블과 200 이상인 두 개의 테이블을 붙여준다. > SELECT * FROM Products WHE..


  7. 06. 테이블 결합하기(↔️) / JOIN, DATE_ADD 2020.12.30

    관계형 데이터베이스(Relative DataBase) >> 관련이 있는 테이블을 큰 하나의 테이블이 아니라 여러 개의 테이블로 나눠서 저장함. 그리고 그 테이블간의 관계성으로 데이터를 저장한다. why??? 중복해서 저장할 필요가 없는 정보들을 효율적으로 저장하기 위해서임. JOIN : 관련이 있는 두 개의 테이블을 결합해서 데이터를 한 번에 가져오게 하는 것 실습링크 ✔️SELECT * FROM Users, Orders WHERE Users.ID = Orders.UserID = SELECT * FROM Users INNER JOIN Orders ON Users.ID = Orders.userID 결과에서 왼쪽에 두고 싶은 테이블을 FROM 뒤에 써 준다. >SELECT * FROM Orders ➡️ 이 ..


  8. 05. 조건문 CASE, 테이블 피봇 2020.12.29

    엑셀에서의 IF와 비슷한 문법. 실습링크 >SELECT CASE >SELECT WHEN categoryid = 1 THEN '음료' >SELECT WHEN categoryid = 2 THEN '조미료' >SELECT ELSE '기타' >SELECT END AS 'categoryname', * FROM Products >> Products 테이블에서, Categoryid가 1이면 '음료', 2이면 '조미료', 그 외면 '기타'로 표기하고 해당 column명은 categoryname으로 지정해서 나타내라. *CASE 내에 비교연산자(=,,>,SELECT CASE >SELECT WHEN categoryid = 1 AND SupplierID = 1 THEN '음료' >SELECT WHEN categoryid =..


  9. 04. 보고 싶은 데이터 요약하기 / 집계함수, GROUP BY 2020.12.29

    대량의 값들을 볼 때는 각각의 데이터를 보기보다는 통계를 뽑기도 한다. = 요약 통계 집계 함수 : 여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수! 실습 링크 >SELECT COUNT(*) FROM Products >> Products 테이블에 있는 전체* 데이터 행의 수를 세어준다. ID Name Visits 1 A 1 2 A 2 3 B 3 4 C 5 5 Null Null >SELECT COUNT(*) FROM sample; → 5 전체 데이터 행의 수 >SELECT COUNT(Name) FROM sample; → 4 Null값 제외 >SELECT COUNT(DISTINCT Name) FROM sample; → 3 Null값 제외+중복값 제외 SUM : 숫자 컬럼을 가진 데이터의 ..


  10. 03. ORDER BY, 문자열 자르기 + 주석 처리 2020.12.20

    데이터 정렬하기. 실습링크 ORDER BY라는 예약어를 사용한다. (WHERE 다음에 위치함) >SELECT * FROM Products ORDER BY ProductID DESC (descending) >> Customers 테이블에서 CustomerID를 기준으로 내림차순으로 정렬한 모든 항목 오름차순의 경우 ASC를 쓴다. 하지만 DESC를 쓰지 않으면 디폴트가 ASC임. *ORDER BY 명령 자체는 데이터베이스에 저장된 순서를 변경하지는 않는다. 건들지 않음. 저장되어 있는 데이터는 순서대로 쌓여 있고, select문을 수행해서 데이터를 보여줄 때 순서만 변경해서 보여주는 것. *여러 기준으로 정렬하고 싶을 때는 콤마(,) 후 두 번째 기준이 될 항목의 이름을 써 준다. LIMIT를 활용하면 최..