코드프레소 Java 웹 개발 체험단 활동 중 이번엔 '처음 시작하는 SQL 프로그래밍' 강의를 수강했다.
데이터 CRUD 조작과 트랜잭션 커밋에 개념을 알아야 웹 어플리케이션에서 데이터를 가공하고 사용할 수 있다.
이번엔 MySQL 초기 환경 구축과 간단한 실습에 대해 포스팅하려 한다.
데이터베이스 (Database)란?
- 데이터는 다양한 방법으로 관리 가능 (파일, 엑셀 등)
- 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터의 집합
- 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로서 자료 검색과 갱신의 효율을 높인다.
DBMS (Database Management System)
- 데이터베이스를 관리하기 위한 프로그램
- DBMS의 종류 (RDBMS) : MySQL, Oracle, PostgreSQL, H2, DB2... 등등
SQL (Structured Query Language) 이란?
- 데이터베이스에 데이터를 요청하는 언어
- 인간과 데이터베이스 간의 언어
- ex) SELECT * FROM customer WHERE age >= 20 AND city='seoul' AND gender='female'
이번 DB 실습은 MySQL로 할 것이며, 실습환경 구축에 대해 알아보자.
MySQL이란?
- 오픈 소스 RDBMS
- 많이 사용되는 DBMS 중 하나
- 페이스북 초기 서비스 MySQL로 구축
https://dev.mysql.com/downloads/installer/
MySQL :: Download MySQL Installer
Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.28 2.3M (mysql-installer-web-community-8.0.28.0.msi) MD5: 514567a7503999d271a20b86057f15d0 | Signatu
dev.mysql.com
해당 링크에 접속하면 window 버전 mysql installer를 설치할 수 있다.
아래 용량이 400MB이상인 버전을 설치하면
아래 No thanks, just start my download. 를 클릭하여 설치할 수 있다.
크게 어려울 것 없으니 일단 Developer Default로 Next를 클릭
MySQL 버전를 확인하고 그대로 Next 진행
모든 부분이 Check되면 Next 진행
똑같이 Next
Default 설정대로 Next
여기서는 MySQL의 root 패스워드를 설정해야 한다.
적당히 본인이 잃어버리지 않을 패스워드를 정한다.
그대로 Next
아까 설정한 패스워드를 작성하고 Check 버튼을 눌러 진행
모두 그대로 Next와 Finish를 클릭하여 진행하면 MySQL의 클라이언트/서버가 설치되었다.
MySQL Workbench
- MySQL을 다루기 위한 도구
- SQL 작성/ 실행/ 결과 조회 가능
- CSV 파일 import, export 가능
- 그 외 MySQL 관리 기능 제공
MySQL Workbench를 첫 실행하면 이와 같은 화면이 보일 것이다. (본인은 기존에 사용한 프로젝트가 있어서 여러 개 있다.)
색칠한 +를 클릭하여 새로운 Connection을 생성해보자.
Test를 위해 서버명은 임의로 본인이 생각한 이름을 작성하고 Test Connection버튼을 눌러
본인이 설정한 root 패스워드를 작성하여 오른쪽과 같은 화면이 출력되면 연결이 잘 된 것이다.
WorkBench 화면에 Local Server Connection이 생성된 것을 확인할 수 있다.
클릭하여 접속을 하면
위와 같은 화면이 보일 것이다.
데이터베이스의 주요 구성요소
- Schema - application 마다 1개
- Table - 각 application의 세부 기능마다 정의
- Column - 각 기능에 필요한 요소들
- Row - 데이터 1건 (Record)
주요 데이터 타입
- 데이터 타입 - 컬럼에 어떠한 형태의 자료를 저장할 지를 미리 결정한 것
- 숫자 - 정수형, 실수형
- 문자 - 고정 문자형, 변동 문자형
- 날짜/시간 - 날짜형, 시간형, 날짜 시간형
Schema 생성
- 테이블 생성 전 Schema 생성이 선행 되어야 한다.
- workbench에서 Schema 생성 실습
- Create new schema -> schema 이름 및 문자셋 관련 설정
- basic schema 생성
빈 여백에 우클릭하여 Create Schema를 클릭하여 새로운 Schema를 생성할 것이다.
위와 같이 Charset/Collation 설정하고 이름은 적당하게 설정하면 된다.
생성하면 왼쪽 Schema 목록에 생성된 것을 확인할 수 있다.
Table을 우클릭하여 Create Table을 클릭한다.
테이블 명은 테스트를 위해 users라고 지어준다.
이와 같이 데이터 컬럼을 설정해주고 Apply 버튼을 클릭
그럼 DB create 문이 생성되어 적용하는지 여부를 묻는다.
수정사항은 없으니 바로 Apply 하도록 한다.
생성하면 이와 같이 테이블 아래 컬럼 리스트를 확인하면 생성했었던 데이터 컬럼이 정해진다.
users 테이블을 우클릭하며 Select Rows를 클릭한다.
그러면 오른쪽처럼 SELECT SQL문이 자동으로 설정되어 나온다.
SQL문을 실행하면 아래 화면에 데이터 리스트가 출력될 것이다.
테이블 생성
- PK: 테이블당 1개만 존재 가능, Unique한 값 (Not Null 필수)
- NN: Not Null, 데이터가 반드시 저장되어야 한다.
- UQ: Unique한 값 (Null 가능)
- UN: Unsigned
- AI: Auto Increment
- Default: 디폴트 값
이번엔 예제로 데이터 생성 실습을 해볼 것이다.
위 과정을 걸쳐 zip파일을 압축 해제하면 txt파일 2개가 보일 것이다.
create는 테이블 생성으로 외래키, 기본키 설정하여 생성한다.
populate는 insert 문으로 데이터를 생성한다.
2개의 파일을 복붙하여 Workbench에 작성한다.
이와 같이 두 개의 SQL 쿼리 파일에 작성하고 번개 모양의 아이콘이 있다.
번개 모양 아이콘은 SQL 실행버튼으로 실행해보자.
테이블, 데이터 생성이 올바르게 되었다고 출력문이 나올 것이다.
만약 populate를 다시 실행하면,
이와 같이 중복키로 인해 실행이 안되는 것을 확인할 수 있다.
그리고 스키마를 오른쪽 소용돌이 버튼(refresh)을 클릭하면 테이블들이 정상적으로 생성된 것을 확인할 수 있다.
즉, create 쿼리문으로 Table 생성과 기본키, 외래키 제약조건에 맞춰서 생성된 것이다.
나중에 SELETE 문을 사용하면 populate 내용에 INSERT된 값을 조회할 수 있다. 조회를 한다는 것은 Spring에서 GET HTTP 메소드를 사용하여 코드를 짤 예정인 것이다.
코드프레소 URL: https://www.codepresso.kr/
프리미엄 IT 교육 서비스 - 코드프레소
www.codepresso.kr
'데이터베이스' 카테고리의 다른 글
[Database] Master, Slave DB (2) | 2022.06.14 |
---|