[Code.presso] 4주차-1. 처음 시작하는 SQL 프로그래밍

sorzzzzy·2022년 1월 31일
0
post-thumbnail

Code.presso Java 웹 개발 트랙 체험단 활동 4주차 첫번째 코스로 수강한 강의는 SQL 프로그래밍 에 관한 내용이다.

강의 제목은 "처음 시작하는 SQL 프로그래밍"으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.

📌 처음 시작하는 SQL 프로그래밍 - 강의 정보

✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.


🏷 MySQL 소개

✔️ 데이터베이스 소개

데이터는 다양한 방법으로 관리할 수 있다.

데이터베이스여러 사람이 공유하여 사용할 목적으로 통합하여 관리되는 데이터의 집합이다.
자료 항복의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높인다.

DBMS란 Database Management System으로, 데이터베이스를 관리하기 위한 프로그램이다.
다양한 종류가 있으며, 관련 내용은 이전에 정리해 둔 글이 있으니 참고하면 좋을 것 같다😃


✔️ SQL, MySQL 소개

1. SQL
SQL(Structed Query Language) 이란 데이터베이스에 데이터를 요청하는 언어로 인간과 데이터베이스간의 언어이다.

SQL은 문법이 단순하여 배우기 쉽다는 장점이 있다.
또한 ANSI, ISO 표준이며, 각 DBMS마다 각자의 방언을 가진다.


2. MySQL

MySQL 이란 오픈소스 RDBMS로 가장 많이 사용되는 DBMS 중 하나이다.

MySQL은 Client, Server 구조를 가지는데, 이때 이 서버에는 실제로 데이터가 저장되는 곳이고, 클라이언트로부터 질의를 받게 된다.
클라이언트는 사용자와 상호작용하는 역할을 한다.


🏷 실습 환경 구성

💡 실습은 모두 Mac 환경에서 진행되었습니다.

✔️ MySQL 설치

이전에 homebrew 를 이용해 MySQL 을 설치했었다.
관련 정보는 MySQL 설치 를 참고하자!


✔️ Workbench 설치

Workbench 설치 과정 또한 Workbench 설치 를 참고하자.


설치가 완료되었다면,

사진과 같이 새로운 Connection을 만들어주자.
이름은 자유롭게 정하고, Store in KeyChain ... 부분에 MySQL root 비밀번호를 입력하고 우측 하단의 OK 버튼을 누르면,

이렇게 성공적으로 Connection이 만들어진다👍🏻


만약 MySQL root 비밀번호를 잊어버렸다면(바로 나) 이 포스팅을 참고하자😅


🏷 SQL 명령어를 이용한 데이터 정의

✔️ 데이터베이스의 구성요소

데이터베이스의 구성요소에는 크게 4가지가 있다.

  • Schema : application 마다 1개
  • Table : application의 세부 기능 마다 정의
  • Column : 각 기능에 필요한 요소들
  • Row : 데이터 1건

엑셀로 비교를 하자면, 엑셀 파일 하나가 schema이고, sheet 하나가 table, 시트 안 행이 column, 각각의 열이 row가 된다.


✔️ 데이터베이스 Schema 생성

이전에 Workbench에서 새로운 Collection까지 생성을 했다.
이와 같이 Schema 부분을 우클릭하여 Create Schema 를 통해 새로운 Schema를 생성해보자.

basic 이라는 Schema를 생성했고, 타입은 제일 많이 사용하는 utf8, utf8_general_ci 로 지정했다.

+) basic 우클릭 후 Set as Default Schema 를 누르면 기본 스키마로 설정할 수도 있다.


✔️ 데이터베이스 Table 생성

Schema를 생성했으니 이제 Table을 생성해보자!

Table을 생성하는 SQL 문이다.
이와 같이 생성하고자 하는 테이블 이름을 명시하고, 여러개의 컬럼을 타입과 옵션을 주어 추가한다.

우측에 Tables 항목을 우클릭하면 위와 같은 Create Table 창이 나온다.
테이블의 이름과, 각각 컬럼의 정보를 알맞게 넣어준다.

이렇게 하면 테이블을 기준으로 SQL문이 생성이 된다.
내가 설정한 대로 알맞게 작성이 됐는지 확인하고 최종적으로 Apply 버튼을 누르면 Table이 생성된다!


✔️ Table 생성 시 옵션 정보들

Table을 생성할 때는 여러가지 옵션을 줄 수 있다.

  • PK : 테이블 당 1개만 존재 가능, Unique한 값 (Not Null 필수)
  • NN : Not Null, 데이터가 반드시 저장되어야 함
  • UQ : Unique한 값 (Null 가능)
  • UN : Unsigned
  • AI : Auto Increment
  • Default : 디폴트 값

✔️ Insert 명령어를 이용한 데이터 추가

데이터를 추가할 때, INSERT INTO 라는 명령어를 사용하는데, 이에 관해 더 자세히 알아보자!

INSERT INTO 는 SQL Query 문 중 하나로, 테이블에 새로운 row를 추가하는 것이다.

INSERT INTO 명령어 뒤로, 테이블 이름과 컬럼명들을 명시해야 한다.
그리고 VALUES 뒤에는 실제로 추가할 데이터를 넣어주면 된다.
이렇게 하면 컬럼과 값이 매핑이 된다!

만약 모든 컬럼에 데이터를 모두 넣고 싶을 때에는, 이와 같이 컬럼을 명시하지 않아도 된다.

📌 경우에 따라서는 스키마이름.테이블이름 으로 스키마, 테이블명을 같이 명시해주어야 할 때도 있다.


🏷 SQL 명령어를 이용한 데이터의 조회

✔️ SELECT 명령어를 이용한 데이터의 조회

SELECT 문을 이용하여 테이블의 데이터를 조회할 수 있다.
이때 column1, column2, ... 에는 조회를 원하는 컬럼명을 기재한다.


예제1
🤔 : Customers 테이블의 cust_id, cust_name 데이터를 조회해봐!

SELECT cust_id, cust_name
FROM Customers;

예제2
🤔 : Vendors 테이블의 vend_id, vend_address, vend_state 데이터를 조회해봐!

SELECT vend_id, vend_address, vend_state
FROM Vendors;

만약 전체 컬럼의 데이터를 조회하고 싶다면, * 을 사용하면 된다.

예제3
🤔 : Customers 테이블의 전체 컬럼 데이터를 조회해봐!

SELECT *
FROM Customers;

✔️ WHERE 절을 이용한 데이터 필터링

WHERE 절을 이용해 원하는 조건으로 데이터를 필터링 할 수 있다.
WHERE 절 다음으로 원하는 조건을 명시하면 된다.
+) WHERE 절은 SELECT 문 이외에 UPDATE, DELETE 문에서도 사용 가능하다.


예제1
🤔 : Customers 테이블의 cust_state 가 'MI' 인 데이터를 조회해봐!

SELECT *
FROM Customers
WHERE cust_state = 'MI';

예제2
🤔 : Orders 테이블의 order_num 이 20005인 데이터를 조회해봐!

SELECT *
FROM Orders
WHERE order_num = 20005;

✔️ 비교 연산자를 이용한 데이터 필터링

WHERE 절에 비교 연산자를 사용함으로써 더 세부적인 필터링이 가능하다.

비교 연산자(Comparison Operator)

  • 같음 : =
  • 같지 않음 : <>
  • 큼 : >
  • 작음 : <
  • 크거나 같음 : >=
  • 작거나 같음 : <=

예제1
🤔 : Customers 테이블의 cust_state 가 'MI' 가 아닌 데이터를 조회해봐!

SELECT *
FROM Customers
WHERE cust_state <> 'MI';

예제2
🤔 : Orders 테이블의 order_num 이 20007보다 큰 데이터를 조회해봐!

SELECT *
FROM Orders
WHERE order_num > 20007;

✔️ AND 연산자를 이용한 데이터 필터링

조건의 결합에 대해서도 알아보자!

WHERE 문에서는 하나 이상의 조건들을 결합하여 필터링 할 수도 있다.

AND 연산자는 주어진 모든 조건을 모두 만족시키는 데이터만 조회한다.


예제1
🤔 : 이름이 'Fund4All' 이면서 IN 주에 거주하는 고객을 조회해봐!

SELECT *
FROM Customers
WHERE cust_name = 'Fun4All' AND cust_state = 'IN';

예제2
🤔 : 미국의 뉴욕주에 있는 벤더를 조회해봐!

SELECT *
FROM Vendors
WHERE vend_country = 'USA' AND vend_state = 'NY';

➡️ AND 조건을 더 많이 붙이면 붙일수록, 데이터가 줄어드는 경향이 있다!


✔️ OR 연산자를 이용한 데이터 필터링

OR 연산자는 주어진 조건 중 하나 이상 만족시키는 데이터를 조회한다.


예제1
🤔 : 'MI' 주에 거주하거나 'OH' 주에 거주하는 고객을 조회해봐!

SELECT *
FROM shop.Customers
WHERE cust_state = 'MI' OR cust_state = 'OH';

예제2
🤔 : 미국에 있거나 프랑스에 있는 벤더를 조회해봐!

SELECT *
FROM shop.Vendors
WHERE vend_country = 'USA' OR vend_country = 'France';

이렇게 MySQL 기초, SQL 명령어를 이용한 데이터 정의/조회에 대해 학습해보았다!

코드프레소 홈페이지(https://www.codepresso.kr/)에는 오늘 포스팅한 SQL 프로그래밍 관련 강의뿐만 아니라 다양한 강의들이 개설되어 있으니 모두 한번 씩 살펴보고 수강해보면 좋을 것 같다😃

profile
Backend Developer

0개의 댓글