본문 바로가기

sesac

SeSAC 전z전능 분석가 성동2기 데이터 분석가 | SQL 교육(1)_SQL 설치 및 조건 찾기 (MY SQL, SQL 불러오기)

무엇인가 새로 배울 때 가장 식은땀 나는 순간은

나만 설치가 안될 때 라는 것을 알게 됐다

삭제 및 재설치가 쉽게 되지 않아 멘토님과 살짝 시간을 보내야 했는데 멘토님의 당황하시던 모습이 눈에 선하다...

 

알고보니 저장하는 경로가 한글로 되어 있어서 MYSQL설치 도중 에러가 났던 것...

 

SQL 기초 이해-1

데이터 베이스란?

데이터 베이스

데이터 베이스는 조직체의 응용시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임이다. 데이터 베이스의 구조는 사용되는 데이터 모델에 의해 결정된다.

스키마

전체적인 데이터 베이스 구조를 뜻함

데이터베이스의 모든 가능한 상태를 미리정의

내포 (intension)라고 부름

데이터베이스 데이터 구조

  • 릴레이션 : 테이블
  • 튜플 : 행, row, 레코드
  • 애트리뷰트 : 열, 칼럼

차수와 카디날리티

  • 차수: 한 릴레이션(테이블)에 들어 있는 애트리뷰트들의 수
  • 카디날리디: 릴레이션의 튜플(행) 수
  • 릴레이션의 차수는 자주 바뀌지 않음
  • 릴레이션의 카디날리티는 시간이 지남에 따라 계속해서 변함

Null 값

  • ‘알려지지 않음’ 또는 ‘적용할 수 없음’을 나타내기 위한 값
  • 예: 사원 릴레이션에 새로운 사원에 관한 튜플을 입력하는데, 신입 사원의 부서번호가 결정되지 않았을 수 있음
  • Null 값은 숫자 도메인의 0이나 문자열 도메인의 공백 문자 또는 공백 문자열과 다름

기본키와 외래키

기본키

테이블의 각 레코드를 고유하게 식별

외래키

다른 테이블의 기본키를 참조하는 컬럼

테이블 간의 관계를 정의함

기본키

한 릴레이션에 후보 키가 두 개 이상 있으면 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정함

  • 예: 신용카드 회사의 고객 릴레이션에서 신용카드번호와 주민등록번호가 후보 키가 될 수 있음.

이 중에서 신용카드 번호를 기본 키로 선정

  • 자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있음

기본키의 특징: 고유성, NULL값 없음

기본키 속성의 고려사항

  • 고유한 값을 가질 것인가?
  • 널 값을 갖지 않을 것인가
  • 변경될 가능성이 낮은지
  • 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
  • 복한 기본 키를 가능하면 피할 것

외래키

  • 어떤 릴레이션의 기본 키를 참조하는 애트리뷰트
  • 관계 데이터 베이스에서 릴레이션 간 관계를 나타내기 위해서 사용됨
  • 외래 키 애트리뷰트는 찹조되는 릴레이션의 기본 키와 동일한 애트리뷰트(column)을 가져야 함

CRUD

Create, Read, Update, Delete의 약자

  • 데이터나 테이블을 생성하고, 읽고, 수정하고, 삭제하는 것을 이야기 함
  • 데이터를 다루는 기본기

테이블 검색 (SELECT 문)

SELECT * FROM 테이블

설정하는 법

SELECT문

  • 모든 SQL 문장은 세미콜론(;)으로 종료돼야 함
  • SELECT FROM 은 필수 입력
  • SQL은 대소문자 구분하지 않음, 문자 상수는 구분함
  • SQL은 키워드 (SELECT, FROM, WHERE)는 주로 대문자를 사용하고, 테이블명, 칼럼 이름은 소문자로 작성하는 것을 권장함
💡
SELECT :추출하고자 하는 칼럼 나열

DISTINCT: 중복 제거, 같은 값이면 하나만 출력

FROM:질의에서 필요로 하는 테이블 (뷰, 가상테이블 등)

WHERE: 데이터 필터링, 행을 제한하거나 조인조건을 기술한다.

WHERE 절을 사용하지 않으면 FROM 절에 명시된 테이블의 모든 ROW를 조회한다.

GROUP BY : 그룹핑 칼럼을 기준으로 한 그룹으로 묶어서 합계, 평균, 최대, 최소 COUNT등에 사용한다

HAVING: 그룹핑 기준 칼럼이나 그룹함수에 조건을 줄 떄 사용한다.

ORDER BY: SELECT에서 추출하는 데이터의 정렬 (기본은 asc, 역순은 desc)

나타나는 칼럼의 순서를 기준으로 정렬하는 것도 가능.

ORDER BY를 제외한 쿼리를 먼저 실행하고,

ORDER BY의 조건에 따라 레코드를 정렬함

Type = 자료형

  • Integer형: 정수형
  • Char형: 고정길이 문자열형
  • VarChar형: 가변 길이 문자형
  • Date형: 날짜값을 저장하는 자료형
  • TIME형: 시간을 저장할 수 있는 자료형

WHERE - 행 지정하기

  • 필요한 데이터만 검색하기 위해서 사용하는 WHERE절
  • SYNTAX
  • WHERE은 생략 가능
  • SQL에서는 구의 순서가 정해져 있어서 바꿔적을 수 없음 (S -W -F 지키삼)
  • Sample21테이블에서 no가 2인 행 출력하기
  •  select no, name FROM sample21 where no=2;]

조건식

  • 조건식 “no=2” 의 경우는, no 열 값이 2일 경우 참이 되는 조건
  • 서로 다른 경우에는 “<>” 사용
  • 문자열은 작은 따옴표나 큰 따옴표로 감싸기
👉
수치형 상수: 1 100 -30
문자열형 상수: “ABC” ‘박준용’
날짜시간형 상수: ‘2024-07-05’ “2024-07-05 18:00:00”
  • NULL값 검색하는 경우 (=NULL, IS NULL)
  • SELECT 열1, 열2, FROM 테이블 명 WHERE 열명=NULL;
  • SELECT 열1, 열2, FROM 테이블 명 WHERE 열명 IS NULL;