본문 바로가기

Database

(18)
MySQL 설치법 2 MySQL을 쓰다 보면 종종 문제가 생기나 보다. 갑자기 로컬에서 연결이 안 돼 오랫동안 애먹었다. 결국 해결 방법은 재설치였다. MySQL을 설치하는 방법이 너무 많아서인지 어떤 방법을 썼을 때에는 문제가 여전히 해결되지 않기도 했는데 성공했던 이 방법을 정리해서 기록해 두려고 한다. Homebrew service를 이용해서 설치하기 1. Homebrew를 설치하려면 터미널에서 다음을 입력한다. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2. Homebrew를 이용해서 MySQL을 설치한다. brew install mysql (지우는 명령어 : brew remove my..
시퀄라이즈 관계 설정과 join해서 불러오는 방법 (Associations, Eager Loading) 시퀄라이즈에서 일대일, 일대다, 다대다 관계를 설정하는 방법을 다룬다. const A = sequelize.define('A', /* ... */); const B = sequelize.define('B', /* ... */); A.hasOne(B); B.belongsTo(A); 위 두 메소드를 호출하면 시퀄라이즈는 자동으로 적당한 테이블에 foreign 칼럼을 생성해준다. '다' 관계를 설정해주는 아래의 메소드들도 있다. A.hasMany(B); A.belongsToMany(B, { through: 'C' }); // A와 B의 다대다 관계 설정을 위해 C 테이블을 자동으로 생성해주기까지 한다. 1. 일대일 관계 설정은 보통 패어로 이뤄진다. 그래야 각 테이블에 해당하는 두 인스턴스가 서로의 관계를 알..
시퀄라이즈 모델 (Model Basics) 시퀄라이즈에서 모델이라는 개념이 생소하다. 데이터베이스의 테이블을 객체화 시킨 거라고 생각하면 쉽다. 모델을 생성하려면 다음을 입력한다. const { Sequelize, DataTypes } = require('sequelize'); const sequelize = new Sequelize(/* ... */); const User = sequelize.define('User', { name: { type: DataTypes.STRING, allowNull: false }, email: { type: DataTypes.STRING } }, { // Other model options go here }); 여기서 생성한 User를 가지고 테이블을 다룰 수 있다. 다만 User 자체가 데이터베이스의 테이블은..
시퀄라이즈 시작 (Getting Started) 처음 접하기에 까다로운 시퀄라이즈를 한 번 정리해보겠다. 매뉴얼에서 필요하다고 생각하는 부분만 다룰 테니 나머지는 아래 링크를 따라가면 되겠다. https://sequelize.org/master/manual/getting-started.html 1. 시퀄라이즈를 설치한다. npm install --save sequelize 2. MySQL을 설치한다. 다른 데이터베이스는 매뉴얼을 참고하자. npm install --save mysql2 3. 데이터베이스를 연결한다. const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' }); 4. 연결이 잘 됐는지를 확인할 수 있다. ..
SQLite 기본 사용법 터미널에서 다음을 입력하면 sqlite 데이터 베이스를 열 수 있다. sqlite3 파일이름.sqlite 만약 파일이름이 존재하지 않는다면 자동으로 파일을 생성해준다. 파일을 실행하면 sqlite> 모양이 나타나고 SQL 쿼리문을 작성할 수 있다. create 쿼리문으로 테이블을 만들어주면 처음에 입력했던 이름의 파일이 생성되는 것을 볼 수 있다. 일반적인 쿼리문 말고 어떤 옵션을 적용할 때 점으로 시작하는 명령어를 사용할 수 있다. dot-commands라고 한다. 많이 쓰는 닷컴맨드는 다음과 같다. .tables // 어떤 테이블이 있는지 보여준다. .schema 테이블이름 // 테이블의 구조를 보여준다. .quit // 프로그램을 종료한다. 다른 데이터베이스에 비해 가벼워서 모바일 같은 환경에 종종..
node.js의 mysql 모듈 사용 방법 클라이언트에 응답하는 데에 필요한 기본적인 예제만 다뤘다. 1. 데이터베이스 연결 var mysql = require('mysql'); var con = mysql.createConnection({ host: 'localhost', user: 'root', password: '1234', database: 'shop' }); con.connect(err => { if (err) throw err; console.log("데이터베이스가 연결 됐습니다."); }); 2. 쿼리 실행 var queryString = 'SELECT * FROM `books` WHERE `author` = "socratone"' connection.query(queryString, function (error, results, f..
MySQL Constraints - 테이블의 데이터 규정 CREATE TABLE name ( column1 varchar(255) NOT NULL, -- 빈 값을 넣을 수 없다. column2 varchar(255) UNIQUE, -- 같은 값을 넣을 수 없다. column3 int PRIMARY KEY, -- 프라이머리 키를 넣는 칼럼으로 지정한다. column4 int FOREIGN KEY, -- 포런 키를 넣는 칼럼으로 지정한다. column5 varchar(255) DEFAULT 'default', -- 기본값을 'default'로 한다. column6 int AUTO_INCREMENT -- 기본적으로 1부터 시작해서 입력이 있을 때마다 1씩 더한 값을 넣어준다. );
MySQL 데이터 베이스, 테이블 생성과 삭제 1. 데이터 베이스 생성, 삭제 CREATE DATABASE a; -- a라는 데이터 베이스를 만든다. SHOW DATABASES; -- 데이터 베이스 리스트를 보여준다. DROP DATABASE a; -- a라는 데이터 베이스를 지운다. USE a; -- 사용하는 데이터 베이스를 a로 바꾼다. 2. 테이블 생성, 삭제 CREATE TABLE b ( -- b라는 테이블을 만든다. id int, -- 첫 번째 칼럼을 id라 하고 int형을 저장한다. name varchar(255) -- 두 번째 칼럼을 name이라 하고 varchar형을 저장한다. ); SHOW TABLES; -- a 데이터 베이스 안에 있는 테이블 리스트를 보여준다. DESCRIBE b; -- b 테이블의 칼럼을 보여준다. DROP TA..