Node.JS 공부하기 - 003

변우영·2024년 9월 4일

NodeJS

목록 보기
3/11

<목표>

  • AWS 관계형 데이터 베이스 셋팅
  • VisualStudioCode SQL

오늘은 AWS RDS라고 하는 관계형 데이터베이스 서버를 셋팅했다


셋팅은 크게 어렵지 않았는데,
우선 https://aws.amazon.com/ko/console/ 사이트에 들어가서 가입을 한다.

  • 로그인 이후 콘솔 홈 화면의 RDS에서 데이테베이스 생성을 클릭한다.
    셋팅은 아래 그림에서 MySQL 선택과 템플릿에 프로덕션에서 프리티어로 변경만 해주고 나머지는 디폴트 값을 사용하였다.


  • 사용하고 있는 Visual Studio Code의 Extension에 MySQL을 검색하고 설치하였다.

  • 설치 이후에는 하단 탭에 MYSQL이 나오게 되는데 +를 눌러준다.
    상단에 입력 할 수 있는 칸이 보이게 된다.

  • AWS에서 RDS에 생성해준 데이터베이스 인스턴트로 들어가면 아래와 같은 탭 화면에 엔드포인트가 보이는데 그것을 복사! 해서 붙여넣어 주면 된다. 포트번호도 설정해준 번호로 맞춰주면 된다.

  • 이후에 잘 생성되었다면 MYSQL이 잘 보이고 파란색 원통 아이콘 우측 클릭을 통해 New Query를 작성한다.


  • 아래와 같이 테이블을 만들어 준 상태이다.
CREATE TABLE Users
(
    userId   int(11)      NOT NULL AUTO_INCREMENT PRIMARY KEY,
    email    varchar(255) NOT NULL,
    password varchar(255) NOT NULL
);

CREATE TABLE Posts
(
    postId  int(11)      NOT NULL AUTO_INCREMENT PRIMARY KEY,
    userId  int(11)      NOT NULL,
    title   varchar(255) NOT NULL,
    content varchar(255) NOT NULL,
    FOREIGN KEY (userId) REFERENCES Users (userId)
);


INSERT INTO Users (userId, email, password)
VALUES (1, 'AAAA', '1234'),
       (2, 'BBBB', '1234');

INSERT INTO Posts (userId, title, content)
VALUES (1, 'AAAA Title1', 'content'),
       (1, 'AAAA Title2', 'content'),
       (2, 'BBBB Title1', 'content'),
       (2, 'BBBB Title2', 'content');

관계형 데이터베이스


  • 관계형 데이터베이스는 관계 라고도 하는 테이블을 사용하여 구조화된 형식으로 데이터를 저장하고 구성하는 데이터베이스 유형

  • 행 ( 레코드 또는 튜플 이라고도 함 )은 개별 데이터 항목.

  • 열 ( 필드 또는 속성 이라고도 함 )은 저장된 데이터의 속성이나 특성.

아래와 같이 데이터들은 테이블에 담겨있다.

관계형 데이터 주요 명령어 종류


    1. DDL (Data Definition Language): 데이터 정의 언어

데이터베이스의 구조를 정의하거나 변경할 때 사용. 테이블, 인덱스, 스키마 등의 데이터베이스 객체를 생성, 변경, 삭제하는 데 사용.

CREATE 데이터베이스, 테이블, 인덱스 등의 객체 생성.

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Email VARCHAR(100)
);

ALTER 기존의 데이터베이스 객체를 수정. 예를 들어, 테이블에 새로운 컬럼을 추가하거나 삭제할 수 있다.

ALTER TABLE Customers ADD PhoneNumber VARCHAR(20);

DROP 데이터베이스 객체를 삭제.

DROP TABLE Customers;

TRUNCATE 테이블의 데이터를 모두 삭제하되, 테이블의 구조는 유지.

TRUNCATE TABLE Customers;
    1. DML (Data Manipulation Language): 데이터 조작 언어

데이터베이스 내의 데이터를 조회하거나 수정할 때 사용. 테이블에 데이터를 삽입하거나 업데이트하고, 삭제하는 등의 작업이 가능.

SELECT 테이블에서 데이터를 조회

SELECT * FROM Customers WHERE LastName = 'Smith';

INSERT 테이블에 새로운 데이터를 삽입

INSERT INTO Customers (CustomerID, FirstName, LastName, Email)
VALUES (1, 'John', 'Doe', 'john@example.com');

UPDATE 기존 데이터를 수정

UPDATE Customers SET Email = 'johndoe@example.com' WHERE CustomerID = 1;

DELETE 테이블에서 데이터를 삭제

DELETE FROM Customers WHERE CustomerID = 1;
    1. DCL (Data Control Language): 데이터 제어 언어

데이터베이스 시스템에서 사용 권한과 보안 설정을 관리하는 명령어.

GRANT 특정 사용자에게 데이터베이스 권한을 부여

GRANT SELECT, INSERT ON Customers TO 'username';

REVOKE 특정 사용자로부터 권한을 회수

REVOKE SELECT ON Customers FROM 'username';
  1. TCL (Transaction Control Language): 트랜잭션 제어 언어

TCL은 데이터베이스 트랜잭션을 제어하는 명령어이다. 트랜잭션은 일련의 SQL 작업을 하나의 작업 단위로 묶어서 처리하며, 데이터 일관성을 보장한다.

COMMIT 트랜잭션에서 발생한 변경 사항을 저장

COMMIT

ROLLBACK 트랜잭션을 취소하고 변경 사항을 원래 상태로 되돌린다

ROLLBACK

SAVEPOINT 트랜잭션 내에 중간 저장 지점을 설정하여, 특정 지점까지만 되돌릴 수 있게 한다

SAVEPOINT savepoint_name;

SET TRANSACTION 트랜잭션의 특성을 설정한다

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
profile
개발자로 한걸음!

0개의 댓글