본문 바로가기
반응형

DataBase/MySQL, MariaDB12

[AWS] ubuntu에서 MariaDB 설치 및 기본 설정하기 설정하는 김에 나중에 미래의 내가 참고하려고 쓰는 내용들 기본적으로 AWS는 프리티어로 제공하는 EC2를 가져다 쓰고 있으며, OS는 Ubuntu를 선택했고 기본적인 인스턴스를 생성한 뒤의 단계부터 진행하도록 한다. [참고정보] Ubuntu version 18.04.5 LTS ubuntu 버전 확인 방법 cat /etc/issue 1. DB 설치 전 timezone 설정 확인 및 변경 MariaDB를 설치하기 전 기본적으로 시스템 내에 설정된 timezone을 확인하자. 기본적으로 date 명령어를 치면 시간과 함께 뒤쪽에 설정된 timezone 정보가 나오게 되는데 UTC로 뜨게 되면 미국 시간 기준으로 설정되어있는 상태이다. 아래 명령어를 통해 timezone을 원하는 대상 (Asia/Seoul) 으.. 2021. 5. 14.
INSERT 시 Duplicate entry 에러가 발생한다면? : INSERT INTO ON DUPLICATE KEY UPDATE 블로그 통계에서 제일 조회수가 많은 것들은 모두 가장 기본적인 부분이다. 그래서 오늘은 기초적이면서도 헷갈리는 내용에 대해서 작성해볼까 하는데 바로 INSERT / UPDATE와 관련된 내용이다. 분명 언젠가 INSERT와 관련된 내용을 포스팅했던 기억이 나는데, 아니나 다를까 찾아보니 INSERT 구문에 대해 mysql document를 보면서 정리해놓은 내용이 있더라... 포스팅에 부지런했던 나의 과거 ^_ㅜ 2011/07/07 - [DataBase/MySQL] - DML(Data Manipulation Language) - INSERT 사용에 대해서 DML(Data Manipulation Language) - INSERT 사용에 대해서 데이터베이스를 사용할 때 가장 많이 사용하게 되는 DML 문에 .. 2019. 5. 24.
Commons DBCP 설정값 알아보기 SpringFramework에서 Mysql-connector를 사용하여 DB를 연결하고 있다. apache.commons.dbcp.BasicDataSource Bean을 만들어서 설정값을 지정하는 데 각각의 설정값의 의미를 알아두면 좋을 듯 하여 정리한다. 아.. 물론 문제가 있어서 공부하다보니 정리하게 되었다고 한다. ^_ㅠ Commons DBCP 설정값 알아보기 우선 현재 사용하고있는 Commons DBCP는, DB 연결을 위해 apache에서 제공하는 프로젝트의 한 종류다. DB 연결에 사용되는 Connection Pool을 만들어 관리 및 공유할 수 있게 해주는 역할을 한다. Common DBCP 1.x 관련 설정 값은 아래와 같다. Property Name Value 비고 (Default) dr.. 2018. 8. 6.
DB 전체에서 특정 필드를 찾아야 할 때 필드 길이를 전체적으로 수정할 일이 생겼다. 인터페이스하는 쪽에서는 정보 주체가 전달하는 대로 데이터 타입을 맞춰야하므로 전체적인 수정이 필요해졌다... ㅠ_ㅠ 어디서부터 어떻게 손을 대야 하나 고민이 되니까 전체 DB에서 특정 필드를 찾기 위한 쿼리를 날려보도록 하자. 원래 귀찮은 사람이 조금이라도 일을 덜하기 위해서 방법을 찾는다고 하던데 딱 그 격이다. SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '원하는 DB 스키마 입력' AND COLUMN_NAME LIKE '%원하는 검색어 입력%' 나의 경우는 이름 필드가 변경될거라 NAME을 기준으로 검색.. 2017. 11. 29.
SELECT JOIN 문을 이용한 UPDATE QUERY 기존 테이블에 신규 필드가 추가되면서 해당 필드에 특정 값을 입력해줘야 하는 일이 생겼다. 그 값이라는 것 마저도 기존 데이터를 이용해서 할 수 있는 확정된 기준이 없고 요청자가 row 별로 원하는 데이터를 엑셀로 넘겨줘서 이를 이용해야 했다. 엑셀 데이터를 입력하는 일 마저도 난감했지만 여차저차 프로그램을 짜고 임시테이블에 데이터를 밀어넣어서, 이 임시 테이블을 맵핑해서 원하는 테이블의 필드값을 update 해야 했다. 이에 사용했던 쿼리문을 정리해보고자 한다. SELECT JOIN 문을 이용한 UPDATE QUERY dev.mysql.com 에서 제공하는 UPDATE Syntax 를 간략하게 표현하면 우리가 자주 사용하는 일반적인 UPDATE Query 문이 나온다. UPDATE table_refer.. 2017. 3. 30.
DML(Data Manipulation Language) - INSERT 사용에 대해서 데이터베이스를 사용할 때 가장 많이 사용하게 되는 DML 문에 대해서 하나씩 정리해보려고 합니다. 우선 가장 기본적으로 테이블에 데이터가 있어야 뭐든 가능하므로 데이터를 입력하는 INSERT 구문에 대해서 알아봅시다! •INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [IGNORE] [INTO] tbl_name [(col_name, …)] VALUES ({expr | DEFAULT}, …), (…),… [ ON DUPLICATE KEY UPDATE col_name = expr, …. ] •INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [IGNORE] [INTO] tbl_name SET col_name={expr | DEFAU.. 2011. 7. 7.
MySQL Storage Engine의 양대산맥! MyISAM vs InnoDB MySQL의 Storage Engine에는 위에 보시는 그림처럼 여러가지가 존재합니다. 그 중 제일 많이 사용하는 두 가지가 바로, MyISAM과 InnoDB인데요~ 오늘은 이 두 가지를 비교 분석하는 포스팅을 해볼까 합니다. 먼저 MyISAM과 InnoDB가 무엇인지와 각각의 특징을 알아봅시다. 1. MyISAM MyISAM은 ISAM(Indexed Sequential Access Method) 의 단점을 보완하기 위해 나온 업그레이드 버젼으로, 이 엔진은 비-트랜젝션-세이프(non-transactional-safe) 테이블을 관리합니다. MyISAM은 후에 소개하는 InnoDB에 비하여 별다른 기능이 없으므로 데이터 모델 디자인이 단순하다는 것이 장점입니다. 따라서 전체적으로 속도가 InnoDB 보다.. 2011. 3. 31.
WHERE 절의 IN 사용법! WHERE 절은 아주 유용한 절입니다. 그만큼 알아둘 내용도 매우매우 많죠. 이번에는 IN 의 사용법에 대해 알아봅시다. WHERE 절의 IN 사용법! 1) WHERE 일치하길 원하는 컬럼명 IN (조건1, 조건2, 조건3 ....) WHERE 뒤에 써준 컬럼과 IN 뒤로 나열한 조건들 중 일치하는 row를 가져오게 됩니다. 여기서 나열한 조건들은 OR조건으로 검색하게 됩니다. 조건1 이거나, 조건2 이거나, 조건3 이거나 .... 조건에 일치하는 모든 내용을 가져오게 되죠. 2) WHERE 일치하지 않길 원하는 컬럼명 NOT IN (조건1, 조건2, 조건3 .....) WHERE 다음에 써주는 컬럼명이 일치하지 않길 원하는 컬럼명 인 것을 보시면 아시겠죠! 이번 내용은 앞의 1번 내용과 반대되는 내용이.. 2011. 2. 8.
Select와 동시에 Delete 하기. 예전 마구잡이로 쿼리를 때렸을 적에는 (지금은 마구잡이가 아니라는 얘기는 아니지만~~~) 간단간단하게 내가 아는 쿼리로만 해결하려고 하는 경향이 있었다. 하지만 이젠 나의 영원한 동반자 구글로 구글링을 해가며 남의 지식을 습득해 사용하고 있는데 Delete 문에서 SubQuery를 통해 Select한 내용을 삭제하고자 한다. DELETE FROM 테이블1 WHERE attach_seq IN (SELECT * FROM (SELECT attach_seq FROM 테이블2 as article, 테이블1 as attach WHERE article.article_seq = attach.article_seq and module_seq = 23 ) as result ) 게시물과 첨부파일 간의 관계에 대해서 간단한 쿼.. 2011. 2. 8.
가장 최근 입력된 insert 내용 찾아오기! 새로운 Row의 입력 또는 수정에서 방금 입력된 Row의 seq가 필요할 때가 있지요! 없어도 언젠가 생길 수 있습니당! 저는 그랬으니까요 ㅋㅋㅋㅋㅋㅋㅋㅋ 그 때 쓰면 되는 아주 좋은 쿼리가 있군영! SELECT LAST_INSERT_ID() 바로 직전 입력한 Row의 Sequence를 가져오게 됩니다. 잘 알아두실 부분은 그 Sequence는 반드시 Auto-increment여야 한다는 거지영. 또한 last_insert_id를 찾아오려면 connection이 닫히지 않아야 찾아올 수 있습니다. 당연한 얘기인가영!?!? SELECT LAST_INSERT_ID() as article_seq 등으로 alias를 주어서 이용하면 더 유용하겠졍. 자세한 설명 및 예시는 MySQL 공식 홈페이지에서 확인하실 수.. 2011. 2. 2.
반응형