카테고리 없음

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

gpfla-0411 2024. 7. 14. 20:54

혼자 공부하는 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. 138 확인 문제 2번

 

 

 

Chapter 03. SQL 기본 문법

1. select문 

*기능: 구축이 완료된 테이블에서 데이터를 추출하는 기능 (기존의 데이터 변경X) 

*형식: select [열 이름] from [테이블 이름] where [조건식] 

  ㄴ select * from [테이블이름]; -> 테이블 전체 확인  

*사용: use 문을 이용해 먼저 사용할 데이터베이스 지정 (use [테이블 이름])

*사용예: 

select [열 이름]

from [테이블 이름]

where [조건식] -> 가져오고 싶은 조건  열 = '텍스트' 또는 숫자 (숫자는 작은따옴표 불필요) 

group by [열 이름]

having [조건식]

order by [열 이름]

limit [숫자] 

 

2. 관련 연산자 

* (숫자) 작거나 같다 : <= 

* (숫자) 논리연산자 : and / or / between and 

* (텍스트) 지정 : in 

* (텍스트) 일부 : like '...%' (%는 무엇이든 허용) 

* (텍스트) 매치 : _ 

 

3. 서브 쿼리 

* select 안에 또 다른 select 

 

4. select 절의 형식 

* order by : 결과 정렬 (desc : 내림차순 / 기본값 asc : 오름차순) 

  ㄴ where 절 다음으로 order by 절이 나와야 함 (순서 !) 

* limit : 결과 개수 제한 (limit 시작, 개수)

  ㄴ order by와 같이 사용 (정렬 후 시작번부터 몇 번째 개수 까지 보여줌) 

  ㄴ ex. limit 3, 2 (세번째 데이터 부터 2개까지 보여줌) 

* distinct : 중복 데이터 제거 

  ㄴ 중복된 데이터를 1개만 남김 

* group by : 지정한 열의 데이터들을 같은 데이터끼리 묶어서 결과 추출 + having 

  ㄴ 집계함수 (sum, avg, min, max, count, count(distinct))와 함께 사용 

  ㄴ select 그룹으로 묶는 열이름, 집계함수 from 테이블이름 group by 그룹으로 묶는 열이름 

  ㄴ having 함수는 집계함수의 조건을 제한함 

  ㄴ group by 절 다음으로 having 절, 그 다음 order by 나와야 함 (순서 !!) 

 

5. 데이터 변경

* insert : 기존 테이블에 신규 데이터 입력 

  ㄴ insert into 테이블 [열1, 열2...] values [값1, 값2...] -> 다른 테이블의 데이터를 한 번에 입력 

  ㄴ auto_increment : 열 정의 시 1부터 증가하는 값을 입력해줌, primary key로 꼭 지정

      ㄴ 100부터 증가하게 하고싶다면, alter table [테이블이름] auto_increment = 100;

      ㄴ 1000부터 3씩 증가하게 하고싶다면, auto_increment=1000; set @@auto_increment_increment=3;

           ㄴ @@ 시스템변수 -> sql에서 자체적으로 가지고 있는 설정값이 저장된 변수 

  ㄴ desc [테이블이름] -> 테이블 구조 확인 

* update : 기존 테이블에 기존 데이터 변경 

  ㄴ update [테이블이름] set [열1=값1], [열2=값2] ... where 조건; 

  ㄴ 설정 바꿔줘야 함 [edit] - [preference] - [safe updates 체크해제] 

  ㄴ where 조건이 없으면 데이터 전체가 바뀜 

* delete : 기존 테이블에 기존 데이터 삭제 

  ㄴ delete from [테이블이름] where [조건]; 

 

6. 대용량 테이블 삭제 

* drop : 테이블 자체를 삭제

* delete / truncate : 빈테이블을 남김