[4기] 백엔드 개발자 부트캠프 "오르미" ~ing/[4기] 백엔드 개발자 부트캠프 오르미 수업 복습

[4기] 51일차 SQL( 데이터베이스 및 SQL 실습환경 셋팅 )

sohee99 2024. 2. 21. 17:51

오늘의 학습 SQL!

 

( 스레드에 대해 조금 배웠답니당 ) 

 

드디어 자바 수업이 끝이나고 SQL로 넘어왔습니다!!!

 

약 2달 정도 된거같은데 까먹지 않게 

 

많이 복습해야할거같아요!!!! 아직 익숙치 않은 부분도 있어서 

 

자바는 꾸준히 공부하는걸로!!!!!!!!!!!!!!!!!!!!!!!!

 

 

드디어? ㅋㅋㅋㅋㅋ 자바를 벗어난 SQL

 

SQL 자격증때문에 혼자 공부하고있었는데

 

은근 이론만 하니깐 이해하기 어려운부분도 있더라구요..

 

이번 수업이 딱 겹쳐서 SQL을 직접 실습해보면서 

 

공부할 수 있어 좀 더 이해가 쉬울 거 같습니당 ㅎㅎㅎ

 

그럼 SQL 본격적으로 들어가기전 데이터 베이스에 대해 공부하였어욥!!

 

 

데이터 베이스 

 

- 여러 사람들이 공유할 목적으로 통합하여 관리하는 데이터의 집합 

 

웹사이트만 보더라도 많은 정보와 데이터들이 담겨 있는데 이런 데이터들을 통합해 관리하는 것이 데이터 베이스겠졍?

 

쉽게는 데이터의 창고 역할 !

 

DBMS란?

- DBMS란 DataBase Management System의 약자로 데이터베이스를 관리하는 시스템

 

출처 - 이스트 소프트 조성연

 

그림으로 보면 데이터 베이스라는 창고가 존재하고 DBMS라는 트럭의 도움을 받아

데이터를 옮기고 관리하는 역할 

 

SQL이란?

- Structured Query Language의 약자/  데이터베이스에서 데이터를 추가, 조회, 수정, 삭제하는데 특화된 언어

 

CRUD라고 불린다. Create 추가 Read 조회 Update 수정 Delete 삭제 

 

데이터를 정의 조작 제어 하는 목적에 따라 3가지로 구분된다.

 

속성
설명
주요 명령어
DDL
데이터베이스나 테이블 등을 생성, 삭제하거나
그 구조를 변경하기 위한 명령어
CREATE, ALTER, DROP
DML
데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어
INSERT, UPDATE, DELETE, SELECT 등
DCL
데이터베이스에 저장된 데이터를 관리하기 위하여 데이터의 보안성 및 무결성 등을
제어하기 위한 명령어
GRANT, REVOKE 등

 

 

RDBMS란?

Relational Database Management System의 약자

 

DBMS 앞에 관계형 Relational 단어가 추가 되었다.

 

관계형 데이터 베이스

 

- 데이터를 2차원의 테이블 구조로 저장한다. 

- 사람이 쉽게 읽을 수 있는 형태로 데이터를 다루어 관리가 쉽다는 장점 

 
고객 ID 이름 주소 연락처
1
동해물
서울
010-1234-5678
2
백두산
부산
010-0000-0000

 

행은 각 고객 열은 고객의 속성을 나타낸다. 

 

테이블 간의 관계를 정의하여 데이터 사이의 연관성을 표현합니다.

테이블 간의 관계는 아래의 종류

 

1. 1:1 관계: 한 개의 행이 다른 한 개의 행에 대응

2. 1:N 관계: 한 개의 행이 다른 여러 개의 행에 대응

3. N:M 관계: 여러 개의 행이 다른 여러 개의 행에 대응

 

 

동해물이라는 이름이 어떤 물건을 주문 한 예시를 보면 

 

동해물이라는 사람이 여러개의 주문을 시키는 것을 1 : N 관계라고 한다. 

 

 

꼭 알아야할 데이터베이스 용어

 

테이블 - 데이터베이스에서 데이터를 구성하기 위한 가장 기본적인 단위 

행과 열로 구분된다.

 

 

- 테이블의 구성요소 중 하나로 테이블의 가로로 배열된 데이터의 집합

반드시 고유한 식별자인 기본키를 가진다. 행을 레코드라고 부른다.

 

 

- 테이블의 구성요소중 하나 행에 저장되는 유형의 데이터 

데이터에 대한 무결성 보장

 

기본키 - 행을 구분할 수 있는 식별자 

테이블에서 유일해야하며 중복 값을 가질 수 없다. 

기본키의 값은 수정되서는 안되며 유효한 값이어야 한다. Null이 될 수 없다.

 

쿼리 - 데이터베이스에서 데이터를 조회하거나 삭제, 생성, 수정 같은 처리를 하기 위해 사용하는 명령문

SQL 데이터 베이스 전용 언어 사용 작성

 

Student라는 테이블 생성

 

CREATE TABLE students (
  name VARCHAR(255) NOT NULL,
  age INT NOT NULL,
  address VARCHAR(255) NOT NULL
);

 

- name age address라는 컬럼이 오는 테이블 

 

 

 INSERT 를 사용하여 실습용 데이터 쌓아보기

 

INSERT INTO students (name, age, address) VALUES
('이황', 28, '경상북도'),
('정약용', 29, '경기도'),
('김정호', 30, '전라북도'),
('박지원', 31, '전라북도'),
('김홍도', 32, '경기도'),
('신윤복', 33, '서울특별시'),
('김광균', 34, '서울특별시'),
('한용운', 35, '경상남도'),
('박두진', 36, '경기도');

 

 

 

동일하게 classes 테이블 생성 및 데이터 삽입 

 

 

DML이란?

 

- Data Manipulation Langeuage 약자

데이터 베이스에서 데이터를 조작하는데 사용

SELECT
데이터 조회에 사용
INSERT
데이터 삽입에 사용
UPDATE
데이터 수정에 사용
DELETE
데이터 삭제에 사용

 

 

조회 

 

SELECT
조회할 열을 지정
FROM
조회할 테이블을 지정
WHERE
조회할 데이터를 필터링

 

1. 모든 열을 조회

 

SELECT *
FROM students

 

 

모든 열 조회 가능!

 

2. 특정 열 조회 

 

SELECT name, age
FROM students

 

 

 

3. 별칭을 사용하여 열 이름 변경

 

SELECT name AS col1, age AS col2
FROM students

 

이렇게 학생 이름과 나이에 해당하는 열을 col1,2로 변경

 

4. 조건을 사용하여 데이터 필터

 

SELECT *
FROM students
WHERE age >= 30

 

 

WHERE을 통해 조건을 나이 30살 이상 학생만 조회할 수 있게 데이터 필터를 사용하여 조회 

 

 

5. 중복된 행 제거

 

SELECT DISTINCT address
FROM students

 

 

이렇게 DISTINCT를 사용하여 조회결과에서 중복된 행이 있을 경우 없애고 조회 가능하다.

 

 

이렇게 오늘은 기본적인 데이터베이스 와 SQL에 대해 배웠는데욥!!!

 

 

(사실 관리형 데이터베이스까지만 배웠는데 

 

제가 SQL 프로그램이 안깔려서 인텔리제이에서 연습해보다가 

 

조회까지 다 예습해버렸지뭐예욥 ㅎㅎㅎㅋㅋㅋㅋㅋㅎㅎㅎㅋㅋㅋㅋ 한번해보기도 해보고싶었구영 ㅎㅎ

 

헷 )

 

 

SQL 자격증 공부로 이론만하다가

 

이렇게 테이블 만들어보니 색다르네요?? 은근 재밌넹ㅋㅋㅋㅋㅋㅋㅎ

 

역시 이론과 실습은 같이해야 하는거같네용ㅎㅎㅎㅋㅋㅋ

 

 

복습겸 SQL 자격증 공부하러 가야겠네요 ㅠㅠㅠㅠ 

 

오늘 공부도 파이팅했구요!!

 

내일도 파이팅!!!!!!!!!!!