🐹MySQL
MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로 데이터베이스를 구성하고 관리하는 소프트 웨어이라고 생각하면 된다. 데이터베이스는 데이터를 체계적으로 저장하고 검색할 수 있는 구조를 제공하며, MySQL은 *SQL(Structured Query Language)을 사용하여 데이터를 조작 한다. 이는 많은 유명 웹 사이트, 애플리케이션 및 상용 제품을 위한 기본 관계형 데이터 저장소 역할을 한다.
* SQL은 데이터를 읽고, 수정하고, 삭제하는 데 사용하는 언어이다.
MySQL 기본 개념
- 데이터베이스(Database): 데이터를 체계적으로 저장하는 공간. 여러 개의 테이블을 포함할 수 있다.
- 테이블(Table): 데이터베이스 내에서 데이터를 저장하는 기본 단위. 행(row)과 열(column)로 구성.
- 행(Row): 테이블의 한 레코드를 나타냄.
- 열(Column): 테이블의 속성을 정의하며, 각 열은 데이터의 유형을 지정.
기본 SQL 문법
- 데이터베이스 생성
CREATE DATABASE database_name;
- 데이터베이스 삭제
DROP DATABASE database_name;
- 데이터베이스 선택
USE database_name;
- 테이블 생성
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
...
);
- 테이블 삭제
DROP TABLE table_name;
- 데이터 삽입
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
- 데이터 조회
SELECT column1, column2, ...
FROM table_name
WHERE condition;
- 데이터 수정
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
- 데이터 삭제
DELETE FROM table_name
WHERE condition;
- 테이블 열 추가
ALTER TABLE table_name ADD column_name datatype;
- 열 삭제
ALTER TABLE table_name DROP COLUMN column_name;
- 열 수정
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
- 인덱스 생성
CREATE INDEX index_name ON table_name (column_name);
- 제약조건 추가
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name);
쿼리 조건문 및 조인
- 조건문
- WHERE` 절을 사용하여 조건을 지정
- 논리 연산자: `AND`, `OR`, `NOT`
SELECT * FROM users WHERE name = 'Alice' AND email LIKE '%example.com%';
- 오름차순 정렬
SELECT * FROM table_name ORDER BY column_name ASC;
- 내림차순 정렬
SELECT * FROM table_name ORDER BY column_name DESC;
- 조인
--내부 조인(INNER JOIN)
SELECT columns
FROM table1
INNER JOIN table2 ON table1.common_column = table2.common_column;
--왼쪽 외부 조인(LEFT JOIN)
SELECT columns
FROM table1
LEFT JOIN table2 ON table1.common_column = table2.common_column;
--오른쪽 외부 조인(RIGHT JOIN)
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.common_column = table2.common_column;
--전체 외부 조인(FULL JOIN)
--MySQL에서는 직접적인 FULL JOIN을 지원하지 않지만, LEFT JOIN과 RIGHT JOIN을 UNION으로 결합할 수 있음
SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.id
UNION
SELECT * FROM table1
RIGHT JOIN table2 ON table1.id = table2.id;
그외
- **서브쿼리**:
```sql
SELECT * FROM table_name WHERE column_name IN (SELECT column_name FROM another_table WHERE condition);
```
- **집계 함수**:
- `COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`
예:
```sql
SELECT COUNT(*) FROM users;
SELECT AVG(salary) FROM employees;
```
- **GROUP BY**:
- 데이터를 그룹화하여 집계함수를 적용합니다.
```sql
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name;
```
- **HAVING**:
- `GROUP BY` 결과에 조건을 추가합니다.
```sql
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > 1;
```
### 4. 트랜잭션 관리
- **트랜잭션 시작**:
```sql
START TRANSACTION;
```
- **트랜잭션 커밋**:
```sql
COMMIT;
```
- **트랜잭션 롤백**:
```sql
ROLLBACK;
```
### 5. 사용자 및 권한 관리
- **사용자 생성**:
```sql
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
```
- **사용자 권한 부여**:
```sql
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
```
- **권한 적용**:
```sql
FLUSH PRIVILEGES;
```
- **사용자 삭제**:
```sql
DROP USER 'username'@'localhost';
```
### 6. MySQL 서버 관리
- **서버 상태 확인**:
```sql
SHOW STATUS;
```
- **서버 변수 확인**:
```sql
SHOW VARIABLES;
```
- **테이블 구조 확인**:
```sql
DESCRIBE table_name;
```
실습해보기
1. Azure에서 MySQL Database만들기
2. MySQL Workbench설치
MySQL Workbenbch는 MySQL 데이터베이스 관리와 설계를 위한 통합 개발 환경(IDE)이다. MySQL 데이터베이스를 시각적으로 설계하고 관리할 수 있는 도구로, 데이터베이스의 구조를 설계하고 SQL 쿼리를 작성하며, 데이터베이스의 성능을 모니터링하는 등 데이터베이스 관리의 다양한 작업을 지원해준다.
https://dev.mysql.com/downloads/workbench/
MySQL :: Download MySQL Workbench
Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M
dev.mysql.com
❗설치시 c++에러가 뜨면 설치해야한다
https://learn.microsoft.com/ko-kr/cpp/windows/latest-supported-vc-redist?view=msvc-170
지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드
이 문서에는 최신 버전의 Visual C++ 재배포 가능 패키지에 대한 다운로드 링크가 나열되어 있습니다.
learn.microsoft.com
다운로드가 완료되면 Azure에서 만들었던 서버이름을 넣는다.
3. 실습을 위한 sample database 다운받기
https://www.mysqltutorial.org/getting-started-with-mysql/mysql-sample-database/
MySQL Sample Database
This page provides you with a MySQL sample database that helps you to practice with MySQL effectively and quickly.
www.mysqltutorial.org
다운받은 sample database를 드랍아웃하여 Workbench로 옮기고 실행시킨다.
참고
https://learn.microsoft.com/ko-kr/azure/mysql/flexible-server/quickstart-create-server-portal
빠른 시작: Azure Portal을 사용하여 유연한 서버 만들기 - Azure Database for MySQL - Flexible Server
이 빠른 시작에서는 Azure Portal을 사용하여 Azure Database for MySQL - 유연한 서버 인스턴스에 데이터베이스를 배포하는 방법을 알아봅니다.
learn.microsoft.com
https://theheydaze.tistory.com/543
02. MySQL - MySQL Tutorial for Beginners [Full Course] 내용 정리
OS Windows 10 PRO 64bit 버전 20H2 (OS 빌드 19042.867) MySQL 8.0.23 Community Server 영상 (3시간 10분) 시작 종류 관계형 데이터베이스 구조 비관계형 데이터베이스 구조 데이터 베이스 선택 USE 데이터베이스명 테
theheydaze.tistory.com
'SKT FLY AI > DevOps' 카테고리의 다른 글
DevOps - 클라우드 컴퓨팅 / Azure 이론 (0) | 2024.07.18 |
---|---|
DevOps - Docker 실습 (0) | 2024.07.15 |
DevOps - Git(2) reset&revert / branch merge& rebase (0) | 2024.07.14 |
DevOps - Jenkins(1) 설치 (0) | 2024.07.08 |
DevOps - Github Actions (0) | 2024.07.05 |