*강경미 | 웹 백엔드 강의를 참조한 글입니다.
1. Intro
1-1. 데이터베이스
- 데이터의 집합(a Set of Data)
- 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용(share) 데이터의 집합
- 효율적으로 저장, 검색, 갱신할 수 있도록 데이터 집합들끼리 연관시키고 조직하여야 함
1-2. 데이터베이스의 특성
- 실시간 접근성 : 사용자의 요구를 즉시 처리할 수 있다
- 계속적인 변화 : 정확한 값을 유지하려고 삽입/삭제/수정 작업 등을 통해 데이터를 갱신할 수 있다
- 동시 공유성 : 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람들이 동일한 데이터에 접근하고 이용할 수 있다
- 내용 참조 : 저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조할 수 있어야 한다
1-3. 데이터베이스 관리 시스템(DBMS ; Database Management System)
: 도서관이 가지고 있는 책을 데이터베이스라고 한다면,
어지러놓은 책들을 관리해주는 사서가 데이터베이스 관리 시스템이다.
- 데이터베이스를 관리하는 소프트웨어
- Oracle, SQL Server, MySQL, DB2 등의 다양한 상용 또는 공개 DBMS가 있다
- 여러 응용 소프트웨어 또는 시스템이 동시에 데이터베이스에 접근하여 사용할 수 있게 한다
- (파일 시스템과 대비하여) 장점 : 데이터 중복이 최소화 / 데이터의 일관성 및 무결성 유지 / 높은 데이터 보안성
- 단점 : 비싼 운영비 / 백업 및 복구에 대한 관리가 복잡 / 부분적 데이터베이스 손실이 전체 시스템을 정지시킴
1-4. DBMS의 필수 기능 3가지
- 정의 기능 : 데이터베이스의 논리적, 물리적 구조를 정의
- 조작 기능 : 데이터를 검색, 삭제, 갱신, 삽입, 삭제하는 기능
- 제어 기능 : 데이터베이스의 내용 정확성과 안전성을 유지하도록 제어하는 기능
2. MySQL 설치 및 실행
2-1. MySQL 사이트로 이동
https://www.mysql.com/downloads/
2-2. 화면 하단의 MySQL Community(GPL) Dowonloads를 클릭
2-3. 왼쪽에서 위에서 네번째 MySQL Community Server를 클릭
2-4. 적절한 버젼을 다운로드
*설치과정에서 password설정하는게 있는데 이걸 잘 기억해둬야한다!!!!
2-5. 환경변수 설정
환경변수 설정을 통해 콘솔창에서 MySQL을 실행할 수 있다.
자세한 설명은 아래 글의 2-5과정과 유사하다.
'시스템 변수 - path - 편집' 를 클릭한다.
'새로 만들기'를 클릭하여 다음의 값을 입력하고, 저장한다.
입력값 : C:\Program Files\MySQL\MySQL Server 8.0\bin
*MySQL 8.0버젼을 다운받았을 시 동일한 입력값 작성 / 이외에는 버젼에 따라 숫자 변경
3. SQL이란?
사람과 사람이 대화하기 위해서 언어가 필요하듯,
DBMS에게 명령을 내릴 때도 특별한 문장이 필요하다.
=> 이 명령이 SQL(쿼리)
- SQL = Structured Query Language (구조화된 쿼리 언어)
- SQL은 하나의 컴퓨터 언어이다
- 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정하기 위해 고안됨
- SQL은 DML, DDL, DCL으로 나뉘어진다
3-1. DML
- Data Manipulation Language
- 데이터를 조작하기 위해 사용
- Insert, Update, Delete, Select 등이 여기에 해당됨
3-2. DDL
- Data Definition Language
- 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용
- Create, Drop, Alter 등이 여기에 해당됨
3-3. DCL
- Data Control Language
- 데이터를 제어 - 권한을 부여/파기, 트랜잭션을 부여/커밋/롤백 등을 수행
- 즉, 데이터의 보안 및 무결성 유지에 관여
- Grant, Revoke 등이 여기에 해당됨
4. SQL 실행해보기
4-1. 명령 프롬프트에 mysql -urrot -p를 입력한다.
4-2. Enter password가 뜨면 비밀번호를 입력한다.
4-3. create database (파일이름); 을 입력하여 데이터베이스를 생성한다.
우리는 connectdb라는 이름으로 진행하겠다.
4-4. 데이터베이스를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성하고 그 계정에게 데이터베이스를 이용할 수 있는 권한을 주어야한다.
사용자 계정이름은 'connectuser',
암호는 'connect123!',
해당 사용자가 사용하는 데이터베이스는 'connectdb'로 계정을 생성하려면 다음과 같이 명령을 수행한다.
create database connectdb;
create user connectuser@localhost identified by 'connect123!';
grant all privileges on connectdb.*to 'connectuser'@'localhost';
flush privileges;
<코드 설명> MySQL 8.0 기준의 코드이다.
create database connectdb;
connectdb라는 이름의 데이터베이스 생성
create user connectuser@localhost identified by 'connect123!';
connectuser라는 이름의 사용자 계정 생성, 암호는 connect123!
grant all privileges on connectdb.*to 'connectuser'@'localhost';
db이름 뒤의 *는 모든 권한을 의미한다. @'localhost'는 해당 컴퓨터에서만 접근 가능하단 의미이다.
grant all privileges on connectdb.*to 'connectuser'@'%';
@'%'는 어떤 클라이언트에서도 접근 가능하단 의미이다.
flush privileges;
DBMS에게 적용을 하라는 의미이다. 반드시 써줘야한다.
🧩 그 밖의 기능
- 내용 조회
SELECT를 사용하여 내용을 조회할 수 있다. select는 검색 키워드로, 대소문자를 구분하지 않는다.
mysql> SELECT version();
mysql> SELECT VERSION();
두 명령문은 동일하다.
- 함수를 사용하여 계산 가능
- 데이터베이스 확인 : show databases;
5. SQL 종료하기
exit 또는 quit를 입력하면 SQL이 종료된다.
BYE~
'back-end > 강경미 | 웹 백엔드' 카테고리의 다른 글
2. spring이란 / IoC 컨테이너, DI 컨테이너 / spring bean / Java Config (0) | 2023.02.25 |
---|