본문 바로가기

블록체인_9기/💚 Node.js

33강_230518_ Node.js(VScode extension으로 Mysql DB연결)

728x90

 

 

 


extension 준비

 

1. visual studio code에서 extension 탭을 열어 MySQL을 install 한다.

2. Database 탭을 열어 좌측 상단의 ' + ' 버튼을 클릭한다.

  • ' connect ' 탭에서 빨간 별( * )이 있는 항목을 입력한 후 ' + connect ' 버튼을 클릭한다.

 

 

 


확장 프로그램 ' Mysql ' 사용하기

 

확장자 sql 생성

  • 데이터 베이스를 다룰 수 있는 파일이다.
  • sql 명령어를 사용해서 다룬다.
    •  sql명령어
      • 데이터베이스에 구현된 기능을 실행시키기 위해서 사용하는 특정한 언어이다.
      • 데이터를 보관하거나 저장하거나 삭제 또는 수정을 할 수 있다.
      • sql은 데이터를 다루는 사람에게 있어서 가장 기본적인 언어라고 할 수 있다.
  • 데이터베이스
    • 관계형 데이터베이스(RDB)
      • 테이블, 행, 열의 정보를 구조화하는 방식이다.
      • RDB에는 테이블을 조인하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어, 여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있다. 
      • 관계형 데이터베이스 모델 : mysql, oracle, mariaDB 등
    • 비 관계형 데이터베이스(NoSQL)
      • 대부분의 전형적인 데이터베이스 시스템에서 찾을 수 있는 행과 열로 이루어진 테이블 형식 스키마를 사용하지 않는 데이터베이스이다.
      • 비관계형 데이터베이스는 저장되는 데이터 형식의 특정 요구 사항에 맞게 최적화된 스토리지 모델을 사용한다.
        • 예를 들어, 데이터는 단순 키/값 쌍, JSON 문서 또는 모서리와 꼭짓점으로 이루어진 그래프로 저장될 수 있다.
      • 비관계형 데이터베이스 모델: MongoDB 등

 

sql 문

데이터 타입

  • 숫자형, 문자형, 날짜형, 이진데이터 타입이 있다.

숫자형

  • INT: 4byte
    • 범위: 21억

문자형

  • VARCHAR: 255byte
    •  가변 데이터: 우리가 선언한 범위보다 작으면 알아서 해당 데이터의 크기만큼으로 맞춰준다.
  • CHAR: 255byte
    • 고정 데이터: 우리가 선언한 범위를 다 차지한다. 선언한 범위가 작으면 남은 공간은 빈 공간으로 놔둔다.
  • TEXT: 65535byte

날짜형

  • DATE: ' 년 월 일 '을 표시할 수 있다.
  • TIME: 시간을 표시한다.
  • DATETIME: ' 년 월 일 시간 '을 표시한다. 형식은 (YYYY-MM-DD-HH:MM:SS)으로 구성된다.
  • TIMESTAMP: ' 년 월 일 시간 '을 표시한다.(INTEGER) 4byte

이진데이터

  • BLOB: 이미지

KEY

  • PRIMARY KEY: 중복 입력 안되고, 테이블에 하나씩만 사용할 수 있다. NULL값도 안된다.(고유키)
  • UNIQUE: 중복 입력 불가. 키를 여러 개 줄 수 있다. NULL값도 사용이 가능하다.

 

데이터 정의어 (DDL)

CREATE

  • DATABASE, TABLE, SCHEMA,VIEW, INDEX등을 정의한다.
  • 데이터 베이스를 생성
    • create database [데이터베이스 이름]
-- 적용 시키기 위해서는 sql문 위에 ' ▷ Execute '를 클릭한다.
-- 위의 sql문에 세미콜론 (;)이 찍혀야 활성화가 된다.

▷ Execute
CREATE DATABASE testmysql;
  • 테이블을 생성
  • create table[테이블 이름] ([필드명 데이터 타입][필드명 데이터타입])
CREATE TABLE testTable(
    id INT AUTO_INCREMENT PRIMARY KEY,
    tel VARCHAR(20)
);

SHOW

  • 모든 데이터베이스를 확인하는 명령어
    • show databases;
SHOW DATABASES;

  • 테이블을 확인하는 명령어
    • show tables: 모든 테이블을 조회
-- 테이블을 확인하기 위해서는 먼저 USE 명령어로 사용할 데이터베이스를 지정해야한다.

-- 사용할 데이터베이스 지정
USE testsql;

-- 데이터베이스 안에 있는 테이블 확인
SHOW TABLES;

DROP

  • 데이터베이스를 삭제하는 명령어
    • drop database [데이터베이스 이름]
DROP DATABASE testsql;
  • 테이블을 삭제하는 명령어
    • drop table [데이터베이스 이름]
DROP TABLE testTable;

ALTOR

  • 테이블 이름 바꾸기
    • ALTER TABLE [기존 테이블명] RENAME [새로운 테이블 이름]
ALTER TABLE user RENAME users;
  • 컬럼의 이름 바꾸기
    • ALTER TABLE [테이블 이름] CHANGE [기존 컬럼 이름] [새로운 컬럼 이름] type
ALTER TABLE users CHANGE user_name newcal VARCHAR(20);
  • 컬럼의 타입 또는 타입의 크기를 변경한다.
    • ALTER TABLE [테이블 이름] MODIFY [컬럼이름] TYPE
      • 데이터 유형 변경: 값이 없이 비어있는 컬럼만 가능하다.
      • 컬럼 데이터 크기 확대: 가능하다.
      • 컬럼 데이터 크기 축소: 컬럼이 보유한 값의 크기보다 작아질 경우 오류가 발생한다.
ALTER TABLE users MODIFY newcal CHAR(20);
  • 해당 필드를 테이블에서 제거한다.
    • ALTER TABLE [테이블 이름] DROP [필드이름]
  • 해당 테이블의 AUTO_INCREMENT를 초기화 시켜준다.
    • ALTER TABLE [테이블 이름] AUTO_INCREMENT = 0, 1
  • 해당 테이블의 맨 뒤로 필드를 추가한다.
    • ALTER TABLE [테이블 이름] ADD [필드이름] TYPE
  • 해당 테이블 맨 앞으로 필드를 추가한다.
    • ALTER TABLE [테이블 이름] ADD [필드이름] TYPE first
  • 지정한 테이블에 새로운 컬럼을 추가하고 타입을 지정한다.
    • ALTER TABLE [지정한 테이블 이름] ADD CULUMN [추가할 컬럼명] [타입]
ALTER TABLE post ADD COLUMN userPW INT;
  • 다른 테이블의 컬럼을 참조한다.
    • ALTER TABLE [참조 받는 테이블 이름] ADD CONSTRAINT [제약조건 명령어(임의값)] FOREIGN KEY ([참조받는 테이블의 컬럼]) REFERENCES [참조할 테이블 이름] ([참조할 테이블의 컬럼])
ALTER TABLE post ADD CONSTRAINT fk_user FOREIGN KEY (userID) REFERENCES user (id);

 

DESC

  • 테이블의 필드를 한 줄로 확인한다.
    • DESC [테이블 명]
DESC post;

 

데이터 조작어 (DML)

SELECT

  • 테이블 전체 값을 조회
    • SELECT * FROM `[조회할 테이블 이름]`
SELECT * FROM `boarder`;

  • 필드 1, 필드 2에 대한 테이블 전체 조회
    • SELECT 필드1,필드2 FROM [테이블 명]
SELECT id, likes FROM boarder;

  • 필드 1, 필드 2에 대한 테이블에서 원하는 값을 조회 
    • SELECT 필드1,필드2 FROM [테이블 명] WHERE [필드명] = [검색하고 싶은 값]
SELECT id, likes FROM boarder WHERE id = 1;

  • 필드에 해당되는 내용 중 AB~로 시작하는 데이터 조회
    • SELECT * FROM [테이블명] WHERE [필드명] LIKE "%AB"
  • 필드에 해당된는 내용 중 ~AB로 끝나는 데이터 조회
    • SELECT * FORM [테이블명] WHERE [필드명] LIKE "AB%"
  • ORDER BY 필드명 기준으로 DESC (내림차순), ASC(오름차순)으로 정렬
    • SELECT * FROM [테이블 이름] ORDER BY [필드 이름] DESC 또는 ASC
  • 테이블 조회시 참조키를 가지고 관계가 맺어져있는 테이블을 조건에 맞춰 조회
    • SELECT * FROM [참조한 테이블 이름] INNER JOIN [참조할 테이블 이름] ON [참조한 테이블명.컬럼명] = [참조할 테이블명.컬럼명] WHERE [조건을 검색할 테이블명.컬럼명] = [조건내용]
  • 원하는 컬럼의 값을 가져올 수 있다.
    • SELECT user.id, post.title FROM user INNER JOIN post ON user.id = post.userID WHERE user.id = 1

INSERT

  • 테이블에 값을 추가
    • INSERT INTO [테이블 이름] (필드 1, 필드 2) VALUES(필드 1의 값, 필드 2의 값)
    • 여러 개의 값을 한 번에 넣으려면 VALUES 뒤에 값을 컴마( , ) 로 구분하여 넣으면 된다.
      • INSERT INTO [테이블 이름] (필드 1, 필드 2) VALUES(필드 1의 값, 필드 2의 값),(필드 1의 값, 필드 2의 값)

UPDATE

  • 테이블 명에서 필드명 1과 필드명 2를 새로운 값1과 새로운 값2로 바꾼다.
    • UPDATE [테이블 이름] SET [필드명] = "수정할 값" [필드명 2] = "수정할 값2" WHERE 필드 = ""

DELETE

  • 테이블의 필드가 해당 값인 열을 삭제한다.
    • DELETE FROM [테이블 이름] WHERE [필드명] = ""

 

데이터 제어어 (DCL)

이 내용은 추후 확인하기로 한다....

 

 

 

 

더보기

 

728x90