총 삽질들 514

[삽잡이::sql] 없으면 Insert 있으면 Update! DUPLICATE ON KEY UPDATE

기존에 값이 있는 레코드를 중복해서 Insert 하게 되면 어떻게 될까요!? 저는 스포츠를 좋아하니까!축구로 예를 들어봅시다. 슛~ 골은 나의 친구~ 자... 명문구단 삽질 FC 에서 '삽질'이라는 이름의 선수를 영입했습니다.포지션은 공격수이고, 아주 유능한 선수 같습니다. 이 선수가 입단하면서 자기는 에이스가 될 것이니등번호를 10번으로 받겠다고 합니다. 멋도 모르고 알겠다고 했습니다.그리고 선수 등록을 위해 DB에 등록을 시도했습니다. 그리고 느끼죠.... 우리에게 친숙한....그래 맞습니다. ERROR... 오류코드가 1062 입니다.그리고 그 아래를 보시면 Duplicate entry '10' for key 'PRIMARY' 라는 Error 발생 이유가 찍혀있습니다. 등번호는 삽질 FC에서 유일성..

[삽잡이::php] php에서도 정규표현식을 이용할 수 있다구~

이전에도 언급했지만Web 단에서 프로그래밍을 하다보면 문자열들 사이에서내가 원하는 것들을 쪽쪽 뽑아먹을 수 있어야합니다. 마치 모기처럼 말입니다. 뭐라고~ 이제 곧 우리를 찾아올 불청객인 모기!? 그렇습니다! 여러분은 코드를 작성하며 모기가 된다고 생각하셔야합니다~!!! 내가 모기가 될테니 내 피는 가져가지 마렴 모기야~! (출처_ 외국 블로그) 죄송합니다...아무튼 본론으로 들어가서! php에서는 preg_match() 라고 하는 메서드가 존재합니다.해당 메서드는정규표현식을 인자로 받고 다른 인자로 받은 문자열에 매칭시켜 결과 값을 배열로 저장하게 됩니다. PHP 메뉴얼에가서 확인해보겠습니다. (출처_ PHP) 간략하게 설명해드린다면,$pattern 이라는 탐색을 위한 문자열(정규 표현식)과$subje..

[삽잡이::정규표현식]정규표현식(Regular Expression)에 대해서 알아보자

위키백과를 보게 되면, 정규 표현식이란특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어라고 정의하고 있습니다. 예 그렇습니다.문자열 검색 및 치환을 위해 탁월한 규칙이라고 할까나? 많은 곳에 응용하여 사용할 수 있는 정규 표현식의 실제 식을 보시면뭔가 보자마자 포기하고자 하는 마음이 생겨납니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 어디 한번 보시고 포기할 마음이 드시는지 생각해보시죠. 자 어떤가요!? 모두 이런 표정이신가요... 하지만 정규 표현법에 익숙해지시면 금방 해독(?)하실 수 있을 것입니다. 힘을 냅시다~ (출처_ REGEXPER) 요 사이트에 들어가면 이쁘게 그림으로 정규 표현법에 대해 보여주니 참고하실분은 하시길... 정규식은 /와 /사이에 묶여 표현이 됩니다. 우선, 정규표현식을 ..

[삽잡이::php]글자를 쪼개보자! substr( ), explode( )

Web에서 놀다보면 문자열을 가지고 놀아야할 때가 너무나도 많습니다. 예를 들어 브라우저에 뿌려진 값들을 DB에 값을 저장하려고 하는데한 문장안에서 여러 요소들을 뽑아낼 때?! 뭐... 예를 들어... 요즘(?) 유행하는 해시태그에서 데이터를 추출해야한다고 해봅시다.#을 기준으로 문자를 뽑으면 되겠지요. 너무 이상한 예시인가....시무룩... 그냥 이런식으로도 뽑을 수 있는 경우가 생길 수도 있다는 것입니다... 아무튼! 정신을 다시 차리고! php에서는 이렇게 문자들을 뽑아먹을 수 있는 여러 메서드들이 존재합니다. 우선, substr 메서드를 살펴보겠습니다. (출처_ PHP) 해당 함수는 문자열을 첫번째 인자로 받고추출할 문자열의 시작부터 그 길이까지 인자로 넣어주면그 조건에 맞는 문자열을 반환해줍니다..

[삽잡이::sql] Table의 Index를 살펴보자! SHOW INDEX

DB에서 원하는 데이터를 추출하기 위해서Query문을 작성합니다. 이 때 대용량으로 데이터를 가져온다고 생각해봅시다.여러 테이블들을 join 하고 sub로 두고 웩~ 조금이나마 빠르게 Query문을 수행하기 위해서index의 중요성을 지난번에 언급한 적이 있었습니다. 이 테이블에서의 Index 정보를 확인하겠다! 할 때에는과감하게 SHOW INDEX 을 사용하십시요 index에 대한 정보가 잘 나옵니다. SHOW INDEX returns table index information. The format resembles that of the SQLStatistics call in ODBC. This statement requires some privilege for any column in the tabl..

[삽잡이::sql] 보여줘 보여줘 너의 테이블~ SHOW CREATE TABLE

여러분은 당신의 출생의 비밀을 아십니까!?예~ 황새가 물고 왔대요~ 그렇다면 여러분이 사용하시고 계신 Database에 속한!Table의 출생 비밀을 아십니까! 뭐라고~ table의 출생비밀!? 우와 신기하네요~! 어떻게 그럴 수 있지!? 예 별거 아닙니다 여러분 1SHOW CREATE TABLE sap_db;cs한 문장이면 끝납니다. 간단하지요!? Table을 Create 할 때의 그 CREATE TABLE 문을 출력하는 것입니다.이건 무슨 말장난~ 이런식으로 볼 수 있게 됩니다.신기하지요!? 굳~

[삽잡이::sql] 테이블의 설명을 알아보자! DESC

DB를 접하고 계신 많은 분들은 desc을 내림차순으로 이해하시고 계십니다.예 그렇습니다. 맞습니다. 1SELECT idx, name, grade FROM students_db ORDER BY idx DESC;cs 이렇게 ORDER BY 정렬기준을 명시하여 정렬할 수 있습니다. DESC는 내림 차순을 의미하고ASC는 오름 차순을 의미합니다. 그런데 말입니다...DESC에는 다른 기능도 있다는 사실을 혹시 아시는지요... 어머나 놀라워라~ 하하....우리는 설명이라는 단어를 영어로 description 이라고들 부릅니다.우리가 잘 쓰는 줄임말!그리하여!!!! 예 그렇습니다.테이블에 대한 설명을 알아낼 수 있습니다. 이를 위해 테이블의 이름 앞에 사용하게 됩니다. 1DESC students_db;cs 이런식..

[삽잡이::sql] Primary Key 그리고 Unique Key

오늘은 어떤 제목을 쓸까 하다가..... Primary Key 그리고 Unique Key라고 작성했습니다. 이와 비슷하게 '소호대' 의 사랑 그리고 추억이라는 노래가 있군요. (출처_ youtube)푸하하 그러면 신나게 한번 알아봅시다 DB안에 있는 테이블에는 컬럼과 값들로 가득(?)합니다. 이런식으로 데이터들이 저장되어있습니다. 여기서 Primary Key란, Key에 해당하는 컬럼을 의미합니다. 만능 열쇠 키~ 예 맞습니다. 그 유명한 만능 열쇠 키는테이블의 각 레코드를 구별할 수 있는 역할을 하고 있습니다. 세계적인 Foot Ball Club!Shovel FC가 있다고 해봅시다. 예 그렇습니다. shovel은 우리나라 말로 삽을 말하죠 하하하 아무튼....소속팀에 등번호가 중복되는 팀은 없을 것입니..

[삽잡이::sql] 내가 작성한 Query는 어떻게 실행되려나... EXPLAIN !

EXPLAIN is used to obtain a query execution plan (that is, an explanation of how MySQL would execute a query).(출처_ MySQL) EXPLAIN은 쿼리 실행에 대한 계획을 알고 싶을 때 사용합니다.우와 삽잡이~~ 영어좀 하는데~~~ 하하하... 혼자놀기... 어떻게 DB가 실행될지 즉, 어떻게 Data를 가져올지에 대한 실행 계획을 확인할 수 있다는 것입니다. MySQL에서는 쿼리 옵티마이저(Optimizer)를 통해 빠르고 효율적으로 수행할 Query를 만들기 위해 최적화 작업을 시행합니다.이에 잘 구조화 된 SQL Query를 작성하여 Query문 변경 없이 잘! 사용하면 DBMS의 내부 엔진에 있는 옵티마이저가 ..

[삽잡이::sql] 여러 테이블을 가지고 놀자! JOIN

관계형 DB를 가지고 놀 때(?)하나의 테이블을 통해서 데이터를 가공하고 추출하는 경우도 있지만, 여러 테이블들과 Join하여 데이터를 가공하여 추출해야할 때가 있습니다. 데이터를 얻기 위해 하나의 테이블만으로는 부족할 수가 있기 때문입니다. 다들 아시는 영어 단어입니다.join~ 너와 나의 연결 고리 예 그렇습니다 JOIN 입니다~ 여러분~ 둘이 합쳐서 이쁜 데이터를 추출합니다~ SQL에서 JOIN은 '집합'으로 바라보시고 이해하시면 쉽습니다! 집합이라면, 교집합, 합집합 이런거겠구나!!! 우선 INNER JOIN에 대해서 알아봅시다. 여기... 삽질의 명성! 삽질과에 학부 명단이 있습니다. 이번에 삽질 평가를 했는데, 제대로 삽질을 하지 못한 F 학점을 받은 학생들을 추리려합니다. 아이고 '화석' 님..