728x90

MYSQL 11

[Node.js] #8 몽고디비 몽고DB

1. NoSQL vs SQL SQL(MySQL) NoSQL(몽고디비) - 규칙에 맞는 데이터 입력 - 테이블 간 JOIN 지원 - 안정성, 일관성 - 용어(테이블, 로우, 컬럼) - 자유로운 데이터 입력 - 컬렉션 간 JOIN 미지원 - 확장성, 가용성 - 용어(컬렉션, 다큐먼트, 필드) [CRUD] mongo use nodejs; [Create] db.users.save({ name: '로춘남', age: 30, married: false, comment: '안녕하세요.', createdAt: new Date() }); [Read] //모두 조회 db.user.find({}); //특정 필드 조회 db.user.find({}, { _id: 0, name: 1, married: 1 }); [Update]..

node.js 2021.11.19

[Node.js] #7 시퀄라이즈(Sequelize)

※ 시퀄라이즈(Sequelize)를 사용하기전에 데이터베이스 MySQL이 설치가 되어 있어야 합니다. 시퀄라이즈는 ORM(Object-relational Mapping)으로 분류. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구. MySQL뿐만 아니라 MariaDB, PostgreSQL, SQLite, MSSQL 등 다른 데이터베이스와도 함께 쓸 수 있다. 왜 시퀄라이즈를 써야하는가? → 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문. 따라서 SQL언어를 직접 사용하지 않아도 자바스크립트만으로 MySQL을 조작 할 수가 있다. [시퀄라이즈에 필요한 패키지 설치] npm i express morgan nunjucks sequelize sequelize-cli mysql2 npm i..

node.js 2021.11.18

[MySQL] Varchar 형태 Date로 변환

데이터베이스를 이용하다가 날짜의 형태를 String으로 저장한적이 있었다. 범위가 길어지다보니 String보다 Date 타입으로 변환해서 사용하는게 좋을것 같아서 Varchar형에서 Date로 변환하는법을 알아보고자 한다. 생각보다 아주 간단하다. UPDATE table_name SET table_col = STR_TO_DATE(table_col, '%Y-%m-%d') 형태로 해결하면 된다. STR_TO_DATE를 사용하면 된다는 말씀! 여기서 date 필드값을 다르게 변경해줘야 할때가 있는데 예 시 적 용 2021-09-21 %Y-%m-%d 21-9-21 %y-%m-%d Sep 21 2021 %M %d, %Y 해당 테이블을 참고해서 적용하면 된다. 보통은 %Y-%m-%d를 많이 사용하는듯!

Database 2021.09.29

[MyBatis] 동적 쿼리 LIKE문 적용하기

MyBatis로 동적 쿼리를 적용해보기, 검색해보니 DB마다 쿼리가 조금씩 다르다고함. LIKE문은 보통 Select * from test where num like 'ABC%' 식으로 특정문자를 가지고 있는 형태를 추출하고자 사용하는 경우가 많음. 일단 MyBatis에서 종류별에 대해 차이를 잠깐 보자면 1) MySQL or MariaDB select * from table_name where column_name like cancat('%', #{keyword}, '%') 2) Oracle select * from table_name where column_name like '%'||#keyword#||'%' 식으로 적용 할 수 있다고한다. 그외 MS-SQL나 PostgreSQL에서도 방법은 다를것이..

[DB] mysql Access dinied for user "@" (using password:YES)

DB를 Connect하는 경우 나타날 수있는 Error. 로그인이 불가하다는 내용인데, 검색해보니 주요 문제는 다음과 같다고한다. 1. 외부접속을 열어주지 않은 경우 2. 비밀번호를 설정하지 않은 경우 3. 비밀번호를 제대로 설정하지 않은 경우 비밀번호 같은 경우에는 초기에 대부분은 설정을 해주기 때문에 보통은 외부접속을 허용하지 않아서 발생되는 오류인것로 생각된다. 외부접속을 허용해주기 위해선 grant all privileges on *.* to '계정명'@'%'; 를 설정해주면 된다. % 의 경우에는 들어오는 모든 아이피를 수신하는것이기때문에 특정 아이피를 지정하기 위해선 이부분을 입력해주면 된다.

Database 2021.07.27

[MariaDB] 시퀀스 초기화 및 재정렬

개발을 하다보면 DB에 연동을 하게되고, 흔히 말하는 CRUD를 구현하게 된다. 예를들어 게시판 기능을 만들경우 게시판 번호의 기능을 추가하면 저절로 Count가 되는것이 있는법. 그래서 Test 중에 이것저것 넣다보면 게시판 번호의 시퀀스의 값이 점점 쌓이고 쌓여 꽤나 많게된다. 그동안 쌓여온것을 모두 DELETE해도 1부터 시작되는것이 아니라 지원값의 그 다음 숫자부터 적용이 되서 그래서 간간히 SQL를 통해 정리해주는 작업을 한 번정도 하는것 같아서 간단히 메모. SET @CNT = 0; UPDATE 테이블명 SET 테이블명.컬럼이름 = @CNT:=CNT+1; 이렇게하면 MariaDB & MySQL에 적용된 AUTO_INCREMENT가 적용된 컬럼값을 재정렬 할 수 있게된다. 데이트를 정리하기전에 ..

Database 2021.05.28

[MariaDB] Data too long for column 에러

csv파일을 MariaDB에 넣으려고하는데 오류가 생겼다.. 1406, "Data too long for column '컬럼명' at row 1") 그래..대략 길이가 길어서 안되는가보다 싶어서 varchar의 값을 늘려줬는데 그래도 안되더라 오잉 뭐지? 검색을 해보니 MariaDB 혹은 MySQL의 환경설정값의 문제라고 했다. -- 먼저 현재 나의 DB를 확인해볼 필요가 있었다.-- MariaDB [(none)]> select @@global.sql_mode; +-------------------------------------------------------------------------------------------+ | @@global.sql_mode | +--------------------..

오류 모음집 2021.01.22

오라클의 제약 조건

오라클을 이용하다보면 여러가지 제약조건을들 볼 수 있다. 간단하게 참고 할 수 있도록 메모 1. PRIMARY KEY(PK) - 해당 컬럼은 반드시 존재해야하며, 유일해야함 - 테이블에 대한 기본키 생성 - 기본키는 반드시 테이블당 하나만 존재해야함. 하나의 컬럼으로만 구성되는것은 아님 - NULL값이 입력 될 수도 있음 - UNIQUE INDEX가 자동으로 생성됨 - NOT NULL과 UNIQUE 제약조건을 결합한 형태 2. FOREIGN KEY(FK) - 해당 컬럼 값은 참조되는 테이블의 컬럼 값 중 하나와 일치하거나 NULL을 가짐 - 두 테이블의 데이터간 연결을 설정하고 강제적으로 적용을 시킴 - 참조하고자하는 컬럼이 PK 혹은 UK가 잡혀 있어야 사용가능 - 부모 테이블을 삭제하기 위해선 자식 ..

[SQL] SQL 오류 1005 errno : 150 Foreign key constraint is incorrectly formed

MariaDB 작업을 위해 HeidiSQL을 쓰다가 오류가 났다. SQL 오류 (1005) : Can't create table XXXXXX (errno: 150 "Foreign key constraint is incorrectly formed") 라고 한다. 인터넷 검색을 해보니 1005 에러가 나는 경우는 여러가지가 있다. 1. 데이트 타입이 같은건지? 2. NOT NULL 혹은 NULL 여부가 동일한지? 3. 참조받는 데이터가 unique Key 인지 Primary Key 인지 4. 참조 받는 테이블간 charset이 같은건지? 로 볼 수 있었다. 그래서 하나씩 하나씩 순차적으로 확인해보았음. 데이터 타입 이상무 NOT 조건 이상무. 내가 해당되는 참조받는 데이터의 Key 였다. Primary Ke..

오류 모음집 2020.12.03
728x90