본문 바로가기
반응형

MYSQL10

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.
APMSETUP을 통해 PHP 기반의 프로그램인 AjaXplorer 돌리기! Apache의 Tomcat만 사용하던 제가 PHP 기반으로 만들어진 AjaXplorer를 사용해야할 일이 생겼습니다. 으악 php! 어떻게 사용해야 하는거지 ㅠ_ㅠ 고민하던 와중에 APMSETUP이라는 무료 프로그램에 대해서 알게되어 수월하게 일을 해결하게 되었습니다. 먼저 APMSETUP이란 무엇일까요? Apache, PHP, MySQL for Windows 라는 부제를 달고 제공되는 APMSETUP은 현재 7버전까지 나와있으며, 완전한 Freeware라는 점이 매우 좋습니다. http://www.apmsetup.com 위의 주소에서 APMSETUP이 제공하는 기능들에 대한 소개 및 다운로드를 함께 하실 수 있습니다. 이외에도 APMSETUP을 이용한 활용강좌 및 프로그래밍강좌도 제공하고 있으니 참조하.. 2011. 6. 1.
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.
MySQL Hierarchical Data MySQL에서 계층적인 데이터를 다루는 방법에 대해서 소개한 글입니다. 크게 보아서 두 가지 방법을 소개하고 있는데요. 1) List Model 2) Nested Model List Model의 경우는 사용해보았는데요. 그렇게 많이 어렵진 않았습니다. Nested Model의 경우는 아직 사용해 본적이 없네영. http://dev.mysql.com/tech-resources/articles/hierarchical-data.html MySQL 공식 홈페이지에 올라온 계층구조 데이터에 대한 글입니다. 영어에영! 하하하하하~~~ 나중에 시간 되면 정리한 글로 새로 포스팅 하겠어영! 2011.01 오혜영에게 저작권이 있습니당. 2011. 1. 31.
답변형 게시판 (OZBoard) 답변형 게시판에는 여러 방법이 있겠지만, 간단하게 게시글의 정렬이 가능한 OZBozrd에 관련된 내용을 포스팅합니다. 출처는 글 안에 있습니당~ 1. OZBoard OverView -- 01 보통의 게시판을 작성할 때 게시물의 리스트를 보여줄 때 항상 나중에 쓴 글을 먼저 보여주고 그리고 해당 게시물의 리플라이역시 쓰여진 글 순서에 관계없이 항상 원본글이후로 보여주는 리스트을 작성해야 한다. 그렇기 하기 위해서 나도 많은 생각을 하게 되었다. 제가 첨에는 게시판 테이블을 만들 때 인덱스의 개념과 SQL에 대한 기초 지식 부족으로 아주 간단히 테이블 을 만들고 기 리스트의 구현을 프로그램으로 복잡하게 한 적이 있다. 이 구현방법은 여기서 설명 하면 난 너무 허접 프로그래머로 전락 하기에 설명하지 않겠지만 .. 2011. 1. 31.
반응형