안녕하세요!
항상 나아가는 개발자 pink_salt 핑솔입니다!
코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다.
이번엔 '처음 시작하는 SQL 프로그래밍'강의를 듣고 공부한 내용을 정리하여 포스팅을 진행하겠습니다.
웹서비스 개발을 진행할 때 필수적인 요소가 바로 데이터베이스 입니다.
왜냐하면 웹서비스에서 가장 중요한 것은 데이터이기 때문입니다.
쇼핑몰에서 좋아요를 누르고, 장바구니에 넣고 등등 모든 활동들이 데이터베이스에 저장되어있는 데이터라고 할 수 있습니다.
그래서 이번엔 데이터베이스와 SQL에 대해서 자세하게 알아보겠습니다!
데이터베이스란 무엇인가?
- 데이터는 다양한 방법으로 관리가 가능합니다.(파일, 엑셀 등)
- 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터의 집합을 말합니다.
- 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높입니다.
데이터베이스는 11번가 쇼핑몰, 네이버 검색엔진, 구글, 안드로이드, 카카오톡 등에서 활용됩니다.
각 사용하는 곳마다 자신들에게 맞는 데이터베이스를 이용합니다.
DBMS?
- Database Management System
- 데이터베이스를 관리하기 위한 프로그램입니다.
- DBMS의 종류 (RDBMS)
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- DB2
- SQLite
- 티베로
SQL이란?
- Structured Query Language
- 데이터베이스에 데이터를 요청하는 언어
- 인간과 데이터베이스간의 언어
ex)
한국어 -> 20살 이상 서울에 거주하는 여성 고객 리스트를 주세요.
SQL -> SELECT * FROM customer WHERE age >= 20 AND city='seoul' AND gender='female'
SQL 문법은 단순하여 배우기 쉽습니다. 그리고 SQL은 ANSI, ISO 표준입니다.
각 DBMS별로 핵심 문법은 유사하지만(80%) 살짝 다른 자기만의 방언(20%)을 가집니다.
TIOBE index에 가면 https://www.tiobe.com/tiobe-index/
index | TIOBE - The Software Quality Company
TIOBE Index for January 2022 January Headline: Python Programming Language of the Year 2021 Python has won the prestigious TIOBE Programming Language of the Year award. Congratulations! This is the second time in a row. The award is given to the programmin
www.tiobe.com
많이 쓰이는 프로그래밍 언어의 순위를 알려줍니다.
SQL이 높은 순위에 있는 것을 확인할 수 있습니다. 빅데이터 등을 다루게 되면서 정말 중요한 언어로 급부상하였습니다.
이제 MySQL에 대해 알아보겠습니다.
MySQL?
- 오픈 소스 RDBMS
- 가장 많이 사용되는 DBMS 중 하나 입니다.
- 페이스북 초기 서비스를 MySQL로 구축하였습니다.
- https://db-engines.com/en/ranking
DB-Engines Ranking
Popularity ranking of database management systems.
db-engines.com
db-engines를 보면 MySQL이 2위를 차지하고 있는 것을 볼 수 있습니다.
요즘에는 Relational 말고 NoSQL이 급부상하고 있습니다. Relational 빼고 다른 것들을 말합니다. 특히 MongoDB가 유명하죠.
MySQL 구조
클라이언트가 어떤 데이터를 저장하거나 조회해달라고 서버에 요청하면 서버가 처리해줍니다.
우리는 클라이언트와 command, GUI 기반으로 상호작용합니다.
보통 MySQL Server는 Cloud같은 곳에 저장되어 있고
Local PC에 MySQL을 설치하여 네트워크로 서버와 연결되게 됩니다.
일단은 위의 그림과 같은 구조로 진행해보도록 하겠습니다.
MySQL 설치
mysql windows installer를 google에 검색하셔서 클릭해줍니다.
설치 전에 8.0.22버전 이하의 것들에서는 에러가 발생하지 않는 것 같은데 그 8.0.23 이상의 버전에서는 오류가 발생하는 것 같습니다.
서버 연결해서 Administration에서 에러가 생겨 서버 status를 볼 수 없습니다.
게시물의 마지막 부분을 한 번 보고 설치를 진행해주세요!
자신에게 맞는 OS를 선택하고 밑의 installer를 다운받게 됩니다.
다운로드 버튼을 누르면 오라클 계정을 만들라는 설명이 나옵니다.
하지만 밑에 No, thanks~~ my download를 누르시면 바로 다운로드가 진행되게 되니 걱정하지 마시고 진행하시면 됩니다.
다운로드가 완료되고 실행하면
일단 default 로 진행하겠습니다.
Check Requirements에서는 그냥 Next로 넘어갔습니다.
이제 본격적인 install 과정인데요.
Execute 버튼을 눌러 모든 모듈들을 설치해줍니다.
모든 모듈에서 complete가 나오게 되면 다 설치가 된 것입니다.
다음으로 넘어가면 Product Configuration 은 Next로 default설정으로 가겠습니다.
port설정도 default로 진행합니다.
이제 MySQL의 Root Password를 설정해야합니다. 이 때 절대 잊지 않을 비밀번호로 설정하셔야합니다.
다시 비밀번호를 찾으려면 다시 삭제하고 설치하는게 빠를 정도니까요!ㅜㅜ
여기서 이름은 이전에 설치한게 있다면 다른 걸로 바꾸시고 아니면 default로 진행하셔도 무방합니다.
여기서는 앞에서와 같이 Execute버튼을 누르고 넘어가시면 됩니다.
그리고 뒤에 나오는 것들은 default로 진행하다가
Connect To Server에서
자신이 설정한 비밀번호를 입력하고 Check를 클릭하면 위의 Status가 초록색으로 바뀌는 것을 볼 수 있습니다.
이 단계를 거치면 Next로 넘어가시면 됩니다.
뒤에 Apply Configuration에서 Execute를 해주시고 넘어가시면 됩니다.
몇 번 넘어가시면
설치가 완료되시고 체크박스는 자신이 원하는 것을 선택하시면 됩니다.
일단은 Workbench를 사용할 것이기 때문에 Workbench만 선택하고 넘어가셔도 됩니다.
그럼 이런 화면이 나타나게 됩니다.
Workbench 활용법
MySQL Workbench 란?
- MySQL을 다루기 위한 도구입니다. (MySQL을 이용하기 위한 GUI 클라이언트 도구)
- 무료 tool입니다.
- SQL을 작성, 실행, 결과 조회가 가능합니다.
- CSV 파일 export, import가 가능합니다.
- 그 외에도 MySQL 관리 기능을 제공합니다.
새로운 connection 만들기
MySQL Connections 옆에 +버튼을 누르면 됩니다.
이런 다이얼로그가 뜨게 되고
일단 이름을 설정합니다. 저는 Local Server로 설정했고요
뒤에는 default로 넘어가고 Password에서는 Store in Vault ...를 클릭해서 자신이 설정한 root 비밀번호를 입력하면 됩니다.
그리고 Test Connection을 클릭해서 완료하면됩니다.
그러면
새로운 Connection이 생긴 것을 볼 수 있습니다.
이 때 이것을 더블 클릭하면 실제 서버와 연결이 되면서 화면이 바뀌게 됩니다.
하지만 Administration의 Server Status를 확인하려고 하니
이런 화면이 나타났습니다.
Could not acquire management access for administration
RuntimeError: Unalbe to execute command chcp.
Please make sure that the C:\Windows\System32 directory is in your PATH environment variable.
에러가 나타났습니다.
내 pc에 설치된 MySQL 설치 경로를 복사합니다. (-> bin까지 들어갑니다.)
그리고 고급 시스템 설정 보기를 검색상자에 검색해서 들어가서 환경 변수를 클릭합니다.
그리고 시스템 환경 변수에서 Path를 찾아 더블클릭합니다.
그리고 아까 복사했던 MySQL 설치 경로를 새로운 변수로 추가해줍니다.
그리고 확인합니다.
하지만 이렇게 도전해도 되지 않는 현상이 발생했습니다.
이 때 발견한 다른 방법은 언어설정을 영어로 바꾸라는 것 같습니다.
아니면 mysql의 버전을 낮추는 것 밖에 답이 없는 것 같습니다.
각자의 방법을 이용해 설치하시면 좋겠습니다!
SQL 명령어를 이용한 데이터 정의에 대해서 다음 게시물에서 알아보겠습니다.
열심히 나아가는 개발자 핑솔이었습니다.
코드프레소 URL: https://www.codepresso.kr/
프리미엄 IT 교육 서비스 - 코드프레소
www.codepresso.kr
'Database > SQL' 카테고리의 다른 글
"조인(Join)" 완벽 이해하기 (0) | 2024.12.26 |
---|---|
데이터베이스 자료형에 대해 알아보자! (0) | 2024.12.18 |
[JPA] flush는 언제 일어날까? (1) | 2024.12.18 |
[DB] PK (Primary Key) ID 길이가 성능에 영향을 미칠까? (1) | 2024.12.11 |
[DB] 트랜잭션, 격리수준에 대해서 알아보자.(+ 면접 준비) (1) | 2024.12.10 |