AI SCHOOL/SQL

[SQL] SQL과 데이터베이스 / select, from / as, limit, distinct

moru_xz 2023. 1. 13. 13:40

데이터란?

- 어떠한 정보

- 컴퓨터에 저장되어 처리될 수 있는 형태로 표현

- 컴퓨터 안에 기록된 문자, 숫자 

 

데이터 베이스

데이터의 집합 -> 데이터베이스

 

DBMS

- 데이터베이스 관리 시스템

- 데이터베이스를 효율적으로 관리하는 소프트웨어

 

Relational Model(관계형 모델)

데이터를 표 형태로 구조적으로 관리하는 모델

관계형 모델을 기반이 데이터베이스를 관계형 데이터 베이스(RDB)라고 함

RDB기반의 데이터베이스관리 시스템이 RDBMS

 

RDBMS 소프트웨어

 Oracle, DB2, SQL Server PostgreSQL, MySQL, SQLite 등

 

SQL

SQL은 이러한 RDBMS(관계형 데이터베이스 관리시스템)의 데이터를 관리하기 위해 설계된 프로그래밍 언어

SQL을 이용하여 데이터베이스 제어(DCL), 데이터 정의(DDL), 데이터 조작(DML)을 할 수 있음

SELECT는 DML 혹은 DQL로 부른다

[학생], [수강신청과목]테이블

학번, 이름, 주소 등의 항목

하나하나의 행은 튜플(레코드)

학번이 기본키 -> 기본키로 연결됨(기본키는 고유의 값만 하나만 있는)

[수강신청과목]에서 학번은 외부키가 되는 거

 

 

 

 

 

 

 

SQL 연습문제 1-1
회원(users) 테이블의 모든 데이터를 조회하세요.

* 은 모든 데이터기 때문에 

 

SQL 연습문제 1-2 상품정보(products) 테이블의 모든 데이터를 조회하세요.

 

SQL 연습문제 1-3
주문정보(orders) 테이블의 모든 데이터를 조회하세요.

SQL 연습문제 1-4
회원(users) 테이블의 이메일(email) 정보를 조회하세요.

 

 SQL 연습문제 1-5
회원(users) 테이블의 이름(first_name), 성(lastname), 이메일(email), 국가 정보(country)를 조회하세요.

여러개 불러올 때 , 

 

SQL 연습문제 1-6
상품정보(products) 테이블의 id, 카테고리(category), 이름(name), 판매가격(retail_price), 비용(cost)을 조회하세요.

 

SQL 연습문제 1-7

상품정보(products) 테이블의 id, 카테고리(category), 이름(name), 판매가격(retail_price), 비용(cost), 판매이익(판매가격 - 비용)을 조회하세요.

SQL 연습문제 1-8

회원(users) 테이블의 이름(first_name), 나이(age), 출생연도(나이 데이터로 계산, 만 나이로 기준) 데이터를 조회해보세요.

 

 

필드명 바꾸기

 

 

데이터 몇개만

 

 

중복제거

 

 

# 1) 별칭 -> as
# 2) 갯수 제한 -> limit 
# 3) 중복제거 -> dinstinct

SQL 연습문제 2-1

상품정보(products) 테이블에서 5개 레코드만 조회하세요.

 

SQL 연습문제 2-2

회원(users) 테이블에서 이메일 주소(email) 20개를 조회하세요.

 

SQL 연습문제 2-3

주문정보(orders) 테이블에서 상태정보(status)를 중복제거하여 아래와 같이 결과가 나오도록 조회하세요.

결과 예시

SQL 연습문제 2-4

상품정보(products) 테이블에서 카테고리(category)를 중복제거하여 아래와 같이 조회하세요.

SQL 연습문제 2-5

상품정보(products) 테이블에서 카테고리(category), 브랜드(brand)를 중복제거하여 30개 조회하세요.

각 결과 컬럼의 이름은 다음과 같이 지정하세요.

  • 카테고리 → product_category
  • 브랜트 → product_brand

 

SQL 연습문제 2-6

상품정보(products) 테이블에서 id, 카테고리(category), 이름(name), 판매가격(retail_price), 비용(cost), 판매이익(판매가격 - 비용), 수익율을 조회하세요.

비용 1000원, 판매가 1200원 일 경우

수익율은 (1,200-1,000)/1,000*100 = 20% 입니다.

수익율 : (판매가 - 비용) / 비용 x 100

각 컬럼의 이름은 다음과 같이 표현합니다.

  • id → product_id
  • 카테고리 → product_category
  • 상품명 → product_name
  • 판매가격 → product_price
  • 비용 → product_cost
  • 판매이익 → product_profit
  • 수익율 → product_profit_rate
select 
id as product_id, 
category as product_category, 
name as product_name, 
retail_price as product_price, 
cost as product_cost, 
retail_price - cost as product_profit,
((retail_price - cost) / cost) * 100 as product_profit_rate
from `thelook_ecommerce.products`

((retail_price - cost) / cost) * 100 as product_profit_rate 
를 (product_profit) 할 수는 없음 -> 나중에 새로운 방법 배울거ㅣㅁ 

 

 

 

https://sqlschool.co.kr/

 

SQooL

SQL SELECT GROUP BY ORDER BY UPDATE INSERT INTO WHERE DELETE INNER JOIN INSERT INTO SELECT MORE --- SQL 문 선택 --- LIMIT AND OR NOT IS NULL IS NOT NULL IN LIKE BETWEEN COUNT SUM MIN MAX AVG AS HAVING CASE DISTINCT LEFT JOIN RIGHT JOIN FULL OUTER JOIN U

sqlschool.co.kr

https://www.w3schools.com/sql/default.asp

 

SQL Tutorial

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com