mysql -u root -p
입력 후 설치시 설정한 비밀번호 입력데이터베이스 생성:
CREATE DATABASE 데이터베이스이름
데이터베이스 삭제 :DROP DATABASE 데이터베이스이름
데이터베이스의 문자 집합이나 콜레이션을 변경:
ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름
ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름
데이터베이스 선택:USE 데이터베이스이름
테이블 생성:CREATE TABLE 테이블 이름(필드이름1 필드타입1, 필드이름2 필드타입2)
테이블 조회:SELECT*FROM 테이블명
테이블에 필드 추가:ALTER TABLE 테이블이름 ADD 필드이름 필드 타입
테이블 삭제:DROP TABLE 테이블이름
테이블에 레코드 추가:
INSERT INTO 테이블이름(필드이름1, 필드이름2,...)VALUES (데이터값1, 데이터값2, ...)
레코드 내용 수정:
UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2,.. WHERE 필드이름=데이터값
레코드 삭제:DELETE FROM 테이블이름 WHERE 필드이름=데이터값
테이블 조회:SELECT 필드이름 FROM 테이블이름 [WHERE 조건]
1) 먼저 ORM이 무엇일까?
2) 사용하는 이유
yarn add @nestjs/typeorm typeorm@0.2 mysql2
설치[Entity 예제]
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Board {
@PrimaryGeneratedColumn('increment') // 자동으로 1씩증가
number: number;
@Column()
writer: string;
@Column()
title: string;
@Column()
contents: string;
}
[app.module.ts 파일 예제]
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'root',
database: 'test',
entities: [],
synchronize: true,
}),
],
})
export class AppModule {}
데이터 전송 객체
(=네트워크 간에 데이터를 어떤 식으로 보낼지를 정의한 객체)getter/setter
메소드만 가진 클래스[DTO 예제]
import { Field, InputType } from '@nestjs/graphql';
@InputType()
export class CreateBoardInput {
@Field(() => String)
writer: string;
@Field(() => String)
title: string;
@Field(() => String)
contents: string;
}