Day 6 목표: GCP VM 설정 및 MariaDB 설치 & SQL 기본 문법 정리
1. GCP & VM 설정 과정
- GCP VM 설정 & SSH 연결
- : GCP(Google Cloud Platform)에서 VM 인스턴스 생성 후, SSH를 이용하여 원격 접속하는 과정
1️⃣ GCP에서 VM 인스턴스 생성
2️⃣ 운영체제(OS) 선택 → Ubuntu 사용
3️⃣ SSH 키 생성 (Puttygen 사용, Windows 환경 기준)
4️⃣ GCP에서 SSH 키 등록
5️⃣ FileZilla를 사용하여 .ppk 키로 SSH 접속 확인 (파일 전송 가능)
2. 리눅스 기본 명령어
VM에 접속한 후, 파일 및 디렉토리 관리, 권한 설정을 위한 주요 리눅스 명령어
1) 기본 디렉토리 이동 및 파일 조회
명령어 설명
cd / | 루트 디렉토리로 이동 |
cd var | /var 디렉토리로 이동 |
cd .. | 상위 디렉토리로 이동 |
pwd | 현재 작업 디렉토리 확인 |
ls | 현재 디렉토리의 파일 목록 출력 |
ls -li | 파일 목록 + 상세 정보(권한 포함) 조회 |
ls -al | 숨김 파일까지 포함하여 목록 출력 |
ll | ls -li를 짧게 입력하는 명령어 |
2) 디렉토리 생성 및 삭제
명령어 설명
mkdir 디렉토리명 | 새 디렉토리 생성 |
sudo mkdir 디렉토리명 | 관리자 권한으로 디렉토리 생성 |
sudo rm -rf 디렉토리명 | 디렉토리 및 내부 파일 강제 삭제 |
3) 파일 및 디렉토리 권한 설정
리눅스의 권한(RWX) 개념
- r(읽기), w(쓰기), x(실행) → 각각 4, 2, 1 값 부여
- 777 → 모든 권한 부여 (rwx를 모두 허용)
📌 권한 변경 예제
sudo chmod -R 777 gm-lab1 # gm-lab1 디렉토리 및 하위 폴더 포함 모든 권한 부여
✔ -R 옵션: 하위 디렉토리까지 적용 (없으면 현재 디렉토리만 변경)
3. MariaDB 설치 및 기본 설정
MariaDB(오픈소스 데이터베이스)를 설치하고 계정, 데이터베이스, 테이블을 생성하는 과정
1) MariaDB 설치 및 실행
sudo apt update
sudo apt install mariadb-server -y
sudo systemctl start mariadb # MariaDB 시작
sudo systemctl enable mariadb # 부팅 시 자동 실행
sudo mysql_secure_installation # 보안 설정 (root 비밀번호 설정)
sudo mysql -u root
2) MariaDB 기본 명령어
명령어 설명
sudo mysql -u root | Ubuntu에서 root 계정으로 MariaDB 접속 |
SHOW DATABASES; | 데이터베이스 목록 조회 |
SHOW TABLES; | 현재 데이터베이스의 테이블 목록 확인 |
USE mudb; | 특정 데이터베이스 사용 |
CREATE DATABASE mydb; | 데이터베이스 생성 |
DROP DATABASE mydb; | 데이터베이스 삭제 |
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123'; | 사용자 계정 생성 |
DROP USER 'user1'@'localhost'; | 사용자 계정 삭제 |
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'newpassword123'; | 특정 사용자의 비밀번호 변경 |
SET PASSWORD = PASSWORD('newpassword123'); | 로그인한 사용자의 비밀번호 변경 |
GRANT ALL PRIVILEGES ON mydb.* TO 'user1'@'localhost'; | 특정 데이터베이스의 모든 권한 부여 |
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'user1'@'localhost'; | 특정 권한만 부여 |
REVOKE INSERT, UPDATE ON mydb.* FROM 'user1'@'localhost'; | 특정 권한 회수 |
FLUSH PRIVILEGES; | 권한 변경 사항 즉시 적용 |
SELECT User, Host FROM mysql.user; | 사용자 목록 조회 |
4. SQL 기본 문법
- DDL (Data Definition Language, 데이터 정의 언어)예) CREATE, ALTER, DROP, TRUNCATE
- 데이터베이스, 테이블 등의 구조를 정의하는 명령어
- DML (Data Manipulation Language, 데이터 조작 언어)예) SELECT, INSERT, UPDATE, DELETE
- 데이터를 조회, 삽입, 수정, 삭제하는 명령어
- DCL (Data Control Language, 데이터 제어 언어)예) GRANT, REVOKE
- 데이터 접근 권한을 제어하는 명령어
- TCL (Transaction Control Language, 트랜잭션 제어 언어)예) COMMIT, ROLLBACK, SAVEPOINT
- 데이터베이스 내의 트랜잭션을 제어하는 명령어
- SQL 예약어(Reserved Word)이미 SQL에서 정해진 단어이므로, 테이블명이나 컬럼명으로 사용할 수 없음.
- 예제)
- SQL에서 특정한 기능을 수행하는 키워드
- SELECT, INSERT, UPDATE, DELETE → 데이터 조작 관련
- CREATE, ALTER, DROP → 테이블 구조 변경
- WHERE, ORDER BY, GROUP BY → 쿼리 조건 지정
- CHANGE → 컬럼 변경 (MySQL에서 사용)
1. 테이블 생성 (CREATE TABLE)
CREATE TABLE ad_campaigns (
id INT PRIMARY KEY AUTO_INCREMENT,
campaign_name VARCHAR(255),
platform VARCHAR(50),
impressions INT,
clicks INT,
conversions INT,
cost DECIMAL(10,2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
✔ PRIMARY KEY → 고유한 값 설정
✔ AUTO_INCREMENT → 값 자동 증가
✔ NOT NULL → 값이 반드시 존재해야 함
✔ UNIQUE → 중복 허용 안 됨
✔ DEFAULT CURRENT_TIMESTAMP → 생성 시간 자동 입력
2. 데이터 입력 (INSERT)
INSERT INTO customers (name, email)
VALUES ('철수', 'chulsoo@example.com');
✔ 컬럼에 DEFAULT 값이 설정되어 있으면, 해당 컬럼은 생략 가능
3. 데이터 조회 (SELECT)
SELECT * FROM customers; -- 모든 데이터 조회
SELECT name, email FROM customers WHERE customer_id = 1; -- 특정 고객 정보 조회
✔ * → 모든 컬럼 조회
✔ WHERE → 특정 조건에 맞는 데이터만 필터링
4. 데이터 수정 (UPDATE)
UPDATE customers
SET email = 'new_email@example.com'
WHERE customer_id = 1;
✔ SET을 사용하여 특정 컬럼 값 수정
✔ WHERE을 사용하여 수정할 행 지정 (없으면 전체 수정됨)
5. 데이터 삭제 (DELETE)
DELETE FROM customers WHERE customer_id = 1;
✔ 특정 조건을 만족하는 데이터만 삭제 (WHERE 필수!)
DROP TABLE, TRUNCATE TABLE, DELETE FROM 차이점
명령어 삭제 대상 테이블 유지 여부 AUTO_INCREMENT 초기화
DROP TABLE | 테이블 + 데이터 삭제 | ❌ 삭제됨 | ❌ |
TRUNCATE TABLE | 모든 데이터 삭제 | ✅ 유지됨 | ✅ 초기화됨 (MySQL) |
DELETE FROM | 특정 데이터 삭제 (WHERE 가능) | ✅ 유지됨 | ❌ |
6. NOT NULL을 사용하는 이유
NOT NULL 제약 조건은 필수 입력값을 보장하기 위해 사용됨.
값이 NULL이면 중요한 데이터가 빠질 수 있기 때문에 방지함.
예제
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL, -- 이름은 반드시 입력해야 함
email VARCHAR(255) UNIQUE NOT NULL -- 이메일은 중복 불가 + 필수 입력
);
✔ NOT NULL을 사용하지 않으면 NULL 값이 들어갈 수도 있음
✔ NOT NULL을 사용하면 데이터가 없을 경우 입력할 때 오류 발생
📌 오류 예제 (NOT NULL 위반)
INSERT INTO users (user_id, email) VALUES (1, 'test@example.com');
❌ 오류 발생: name 컬럼은 NOT NULL이므로 반드시 입력해야 함!
'STUDY' 카테고리의 다른 글
[멋쟁이사자처럼부트캠프_그로스마케팅] Day 8 SQL 기본키, 외래키, JOIN, UNION, ALTER, CONSTRAINTS (4) | 2025.02.14 |
---|---|
[멋쟁이사자처럼부트캠프_그로스마케팅] Day7 GCP VM 설정 및 MariaDB 설치 & SQL 기본 문법 (1) | 2025.02.13 |
[멋쟁이사자처럼부트캠프_그로스마케팅] Day5 Pandas-2 (0) | 2025.02.13 |
[멋쟁이사자처럼부트캠프_그로스마케팅] Day4 Pandas-1 (5) | 2025.02.10 |
[멋쟁이사자처럼부트캠프_그로스마케팅] Day3 Python (6) | 2025.02.08 |