DB

SQL 기억 다시 되살리기..

꾸크리 2024. 10. 27. 05:17

학원을 다닐때는 프로젝트를 진행할때 항상 관계형 DB를 사용했었는데 

NODE를 공부하다가 처음으로 NOSQL접하고 한번 사용해보기로하고 프로젝트를 진행했는데

너무 편하고 좋았지만 너무 편한나머지 SQL문법을 잃어버린거 같아서 다시 복습삼아 정리해보려고 합니다. 

 

https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_all

 

MySQL Tryit Editor v1.0

WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, and Opera. If you use another browser you will still be able to use our Try SQL Editor, but a different version, usin

www.w3schools.com

이 주소로가면 mysql 연습을 할 수 있는 실습페이지로 이동 됩니다.

데이터베이스를 잘 다룰려면 SQL공부를 꼭 해야되는데

내가 원하는 데이터를 내가 원하는데로 뽑아오려면 문법을 잘 알아야겠습니다.

RDB는 테이블로 이루어져있고 가로열을 컬럼이라고하며 세로열을 로우라고 합니다.

1. 원하는 컬럼 골라서 보기

원하는 컬럼만 골라서 보려면

SELECT CustomerName FROM Customers;

간단합니다.

셀렉트다음에는 내가 원하는 테이블의 컬럼을 써주고 FROM다음에는 해당 컬럼이 있는 테이블명을 써주면 됩니다.

만약, 내가 Customers안에 여러 컬럼을 더 가져오고 싶다면

SELECT CustomerID, CustomerName, ContactName, Country FROM Customers;

이런식으로 , 쉼표로 구분해서 여러개를 적어주시면 됩니다.

2. 원하는 로우 골라서 보기

SELECT * FROM Orders WHERE EmployeeID = 3;

SELECT * 이란건 모든 컬럼을 이야기하고 FROM Orders는 오더스 테이블에서

WHERE은 조건인건데 EmployeeID가 3인걸이란 조건을 걸고있네요 그래서 해석해보면

모든 컬럼을 가져와라, 오더스테이블에있는걸, 근데 EmployeeID가 3인것만 이라고 해석이 되네요

3. 원하는 순서로 데이터 가져오기

원하는 순서대로 가져오려면 ORDER BY란 명령어를 사용해야 하는데 이건,

특정 컬럼을 기준으로 데이터를 정렬 해주는 명령어입니다.

구문 기준 기본
ASC 오름차순 ✔️
DESC 내림차순  
SELECT * FROM Customers
ORDER BY ContactName;

해석해보면

SELECT * 모든 컬럼을 FROM Customers 커스토머스 테이블에서 가져오는데, 정렬해줘 ContactName을 오름차순으로.

가됩니다.  (ASC든 DESC든 아무것도 안쓰게되면 기본인 ASC로 정렬해줍니다.)

SELECT * FROM OrderDetails
ORDER BY ProductID ASC, Quantity DESC;

두번재 쿼리문을 해석하면

SELECT * 모든 컬럼을 FROM OrderDetails 오더디테일 테이블에서 가져오는데 정렬해줘,

ProductID를 오름차순으로, Quantity를 내림차순으로,

이렇게 되면 정렬이 ProductID를 오름차순으로 먼저 쭉 나열하고 그 기준에서 Quantity를 내림차순으로 정렬하게됩니다.

4. 원하는 만큼만 데이터 가져오기

LIMIT {가져올 갯수} 또는 LIMIT {건너뛸 갯수}, {가져올 갯수} 를 사용하여, 원하는 위치에서 원하는 만큼만 데이터를 가져올 수 있습니다.

1. SELECT * FROM Customers LIMIT 10;

  • 설명: Customers 테이블에서 최초의 10개의 행을 가져옵니다.
  • 구성 요소:
    • SELECT *: 모든 열을 선택합니다.
    • FROM Customers: 데이터가 검색될 테이블이 Customers임을 지정합니다.
    • LIMIT 10: 위에서부터 순서대로 10개의 행만 반환하도록 제한합니다.

2. SELECT * FROM Customers LIMIT 0, 10;

  • 설명: Customers 테이블에서 첫 번째 행(인덱스 0)부터 시작하여 총 10개의 행을 가져옵니다.
  • 구성 요소:
    • SELECT *: 모든 열을 선택합니다.
    • FROM Customers: 데이터가 검색될 테이블이 Customers임을 지정합니다.
    • LIMIT 0, 10:
      • 0은 **오프셋(offset)**을 의미하며, 첫 번째 행부터 시작합니다.
      • 10은 가져올 행의 개수를 의미하여, 첫 10개의 행을 가져옵니다.

참고: 이 구문은 LIMIT 10과 동일한 결과를 반환합니다.


3. SELECT * FROM Customers LIMIT 30, 10;

  • 설명: Customers 테이블에서 31번째 행부터 시작하여 10개의 행을 가져옵니다.
  • 구성 요소:
    • SELECT *: 모든 열을 선택합니다.
    • FROM Customers: 데이터가 검색될 테이블이 Customers임을 지정합니다.
    • LIMIT 30, 10:
      • 30은 **오프셋(offset)**으로, 처음 30개의 행을 건너뜁니다.
      • 10은 가져올 행의 개수를 의미하여, 31번째부터 총 10개의 행을 가져옵니다.

5. 원하는 별명(Alias)으로 데이터 가져오기

해당 SQL 쿼리는 Customers 테이블에서 특정 열을 선택한 후, 열에 대한 별칭을 부여하여 결과를 반환하는 쿼리입니다. 각 키워드의 역할을 설명하겠습니다:

SQL 쿼리:

SELECT
  CustomerId AS '아이디',
  CustomerName AS '고객명',
  Address AS '주소'
FROM Customers;

설명:

  • SELECT: 특정 열을 선택하기 위해 사용됩니다. 여기서는 CustomerId, CustomerName, Address 열을 선택하고 있습니다.
  • CustomerId AS '아이디':
    • CustomerId 열을 선택하며, **별칭(alias)**으로 '아이디'를 부여합니다. 결과에 나타나는 열 이름을 '아이디'로 표시하게 됩니다.
  • CustomerName AS '고객명':
    • CustomerName 열을 선택하며, **별칭(alias)**으로 '고객명'을 부여합니다. 결과에 나타나는 열 이름을 '고객명'으로 표시하게 됩니다.
  • Address AS '주소':
    • Address 열을 선택하며, **별칭(alias)**으로 '주소'를 부여합니다. 결과에 나타나는 열 이름을 '주소'로 표시하게 됩니다.
  • FROM Customers:
    • 데이터를 검색할 테이블 Customers임을 지정합니다.

결과:

  • 이 쿼리를 실행하면 Customers 테이블에서 CustomerId, CustomerName, Address 세 개의 열만 선택하여 표시하게 되며, 각 열에는 한국어 별칭이 붙게 됩니다.
    • 예를 들어, 출력되는 테이블의 열 이름은 '아이디', '고객명', '주소'가 됩니다.

이렇게 별칭을 사용하면 출력 결과가 더 읽기 쉽고 직관적이게 됩니다. 예를 들어, 사용자에게 데이터를 보여줄 때 더 의미 있는 이름을 제공하기 위해 별칭을 사용하는 경우가 많습니다.

마지막으로 공부한거 다 한번에 다 써보기

SELECT
  CustomerID AS '아이디',
  CustomerName AS '고객명',
  City AS '도시',
  Country AS '국가'
FROM Customers
WHERE
  City = 'London' OR Country = 'Mexico'
ORDER BY CustomerName
LIMIT 0, 5;