카테고리 없음

[혼공12기] 3주차_혼자공부하는SQL

gpfla-0411 2024. 7. 21. 21:20

혼자 공부하는 SQL 

용어노트

# 진도 기본 숙제(필수) 추가 숙제(선택)
1주차
(7/1 ~ 7/7)
Chapter 01 ~ 02 p. 80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기 데이터베이스 개체 3가지 설명하기
2주차
(7/8 ~ 7/14)
Chapter 03 p. 138의 확인 문제 2번 풀고 인증하기 데이터 입력, 삭제하는 기본 형식 작성하기
3주차
(7/15 ~ 7/21)
Chapter 04 p. 195의 확인 문제 4번 풀고 인증하기 p. 183 [좀 더 알아보기] 손코딩 실행하고 결과화면 인증하기
4주차
(7/22 ~ 7/28)
Chapter 05 p. 226의 market_db의 회원 테이블(member) 생성하고, p. 229 데이터 입력한 후 인증하기 p. 271 확인 문제 4번 풀고 인증하기
여름방학
(7/29 ~ 8/4)
럭키비키 즐거운 여름방학이잔앙
5주차
(8/5 ~ 8/11)
Chapter 06 p. 310 인덱스 생성하고 key_name이 PRIMARY로 출력된 결과 화면 캡처하기 인덱스 생성, 제거하는 기본 형식 작성하기
6주차
(8/12 ~ 8/18)
Chapter 07 ~ 08 p. 363 market_db의 고객 테이블(member)에 입력된 회원의 정보가 변경될 때 변경한 사용자, 시간, 변경 전의 데이터 등을 기록하는 트리거 작성하고 인증하기 p. 402 GUI 응용 프로그램 만들고 인증하기



 

p. 195 확인 문제 4번

 

 

Chapter 04. SQL 고급 문법

1. 데이터 형식

*정수형 : 소수점이 없는 숫자. 인원수/가격/수량 

  ㄴ TINYINT : -128 ~ +127 

  ㄴ SMALLINT : -32,768 ~ +32,767 (평균키) 

  ㄴ INT : -21억 ~ +21억 (인원수) 

  ㄴ BIGINT : -900경 ~ + 900경 

  ㄴ UNSIGNED : 값의 범위를 0부터 시작하게 하는 예약어 

*문자형 : 글자 

  ㄴ CHAR : 1~255 (속도는 더 빠름) 

  ㄴ VARCHAR : 1~16383 (가변길이 문자형) 

  ㄴㄴ 제일 앞에 0이 붙어야 하는 숫자를 정수형으로 지정시, 0이 사라지므로 CHAR 지정

*실수형 : 소수점이 있는 숫자 

  ㄴ FLOAT : 소수점 아래 7자리까지 

  ㄴ DOUBLE : 소수점 아래 15자리까지 

*날짜형 : 날짜, 시간 저장 

  ㄴ DATE : YYYY-MM-DD

  ㄴ TIME : HH:MM:SS

  ㄴ DATETIME : YYYY-MM-DD HH:MM:SS

 

2. 변수 

set @변수이름 = 변수의 값;

select @변수이름;

임시 사용 (종료하면 없어짐) 

select 문에서 행의 개수를 제한하는 LIMIT 변수 사용 시 오류 -> PREPARE EXECUTE 사용 

 

3. 데이터 형 변환 

문자형 <-> 정수형 

1)명시적 변환 : 직접 함수 사용 

   ㄴ CAST( avg(price) as 데이터_형식 [길이] )

   ㄴ CONVERT( avg(price), 데이터_형식[길이] )

   ㄴ SIGNED : 부호가 있는 정수 / UNSIGNED : 부호가 없는 정수 (양수만 저장) 

   ㄴ CONCAT() : 문자를 이어주는 역할 CONCAT (100, '200') ; -> 100200 

 

2)암시적 변환 : 자연스럽게 변환 

 

4. 테이블 조인 

*일대다 관계 : PK(기본키) - FK(외래키) 

  ㄴ PK는 고유값, FK는 여러개일 수 있음 

*형식 

select 열 목록 

from 테이블이름1

  join  테이블이름2

  on 조인 조건 (PK열이름)

where 검색조건 

 

여기서, 검색조건을 지정하지 않으면, 테이블 두개 조인한 전체결과 

select *

from 테이블이름1

  join 테이블이름2

  on 조인 조건 (PK열이름)

 

*inner join은 두 테이블 모두에 값이 있을 때 사용 

*중복된 결과값은 1개만 표시 : DISTINCT 

*outer join은 한쪽 테이블에만 값이 있어도 결과가 나옴 

*cross join은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인 (랜덤)