총 삽질들 514

[삽잡이::sql] 다 삭제해버리겠다! DROP, DELETE, TRUNCATE TABLE

DB를 관리하며 가끔 눈에 거슬리는 데이터를 삭제하고자 할 때가 있습니다. 저장한 데이터를 삭제할 때에는? 예 그렇습니다. 바로 DELETE 문을 사용하여 삭제를 진행하게 되지요.DELETE란 단어 자체가 '삭제'를 의미하니깐요. 간단하게 DELETE문 사용법을 살펴보겠습니다. 1DELETE FROM 테이블명 WHERE 조건cs 간단하지요 하하하...물론, 조건이 없다면 테이블에 있는 데이터가 전체 삭제되겠지요. 그런데, DROP이라는 녀석도 있습니다. 12DROP DATABASE 데이터베이스명DROP TABLE 테이블명cs 테이블 자체를 날려버리는 것입니다. Db를 날릴 수 도 있습니다. 참고로 Data를 관리할 때이렇게 위험한(?) 명령어는 조심하게 써야됩니다. 조심조심 사용해요~ 그렇다면, DELE..

[삽잡이::javascript] JSON Array를 만들어보자

Json이란JavaScript Object Notation 의 줄임말입니다. (출처_ w3schools) 이런식으로 생겨먹었습니다.사람이 읽기쉽고, Parsing하기도 쉽게 이루어져있는 형식입니다. 이름(name)과 값(value) 둘이 붙어서 쌍으로 다니는 형태로 이루어져있지요. JSON 형식은 데이터를 전송시 용이하게 사용됩니다. 기본적으로 중괄호({ }) 사이에 값과 쌍이 이러한 형태로 구성되어있습니다. 이렇게 Json 형식으로 데이터를 구성하기 위해서는대개 아래와 같은 형식으로 코드를 작성하곤 합니다. Object 형식의 aJson 이라는 녀석을 만들고,name과 그에 맞는 value를 채워넣어줍니다. 12345678var aJson = new Object(); aJson.korName = "삽잡..

[삽잡이::DB] 중복을 없애고 테이블을 최소화하라! 정규화(normalization)

학부생 때는 잘 느끼지 못했는데 지금 와서 느끼는것은 Query문도 잘못 실행하면 오랫동안 기다려야하는 사실입니다. 진짜 한번 잘못 실행했다가....언제까지 하나 보자 하고 화장실을 다녀오고도 무려 10분을 더 기다렸던 기억이.... 오버같죠? 진짜입니다. 그래서 저는 이제 Query문을 실행하기전에항상 EXPLAIN 을 붙여 어떤식으로 Query문이 실행될지 살펴본답니다. Index를 타나 안타나 살펴보는건데.... 아무튼... 왜 이런 썰을 풀었을까요? 예 그렇습니다.이번 시간에는 정규화(Normalization)에 대해서 알아보려고 하기 때문입니다. 사실 위의 썰과 정규화는 뭐... 그다지 정확히! 관련이 있다고 말씀드리긴 힘든데요.... 그냥 말하고 싶었던 것이구요... 아무튼... 정신차려! 삽..

[삽잡이::DB] 데이터 모델링 과정

저는 프로그래밍 세계와 일상 세계는 다르지 않다고 생각합니다.일상 세계를 프로그래밍 세계로 옮겨 놓을 수 있지요. 현실 세계에 있는 무언가를분석하여 요구조건을 명세하고 개념적으로 설계(ER Model)를 할 수 있습니다. ER Model이란, Entity 즉, 개체들간의 Relation이라는 관계를 도식화 한 Model을 의미합니다.개체들간의 관계! 이 개체는 '사람'이 될 수 도 있고, '사물'이 될 수도 있고이 세상에 존재하는 고유하게 식별할 수 있는 무언가를 개체라고 부릅니다! 이 개체들간의 관계를 도식화하면 ER Model이라고 부르는 것이지요. 예를 들어 이런거에요 아~ 이런거구나~! 이렇게 개념적으로 설계를 한 내용으로 모델을 만들면개념적 스키마라고 부르게 됩니다. 이제 이렇게 설계한 모델을 ..

[삽잡이::sql] 데이터를 그룹핑해보자! group by

진정한 개발자가 되기위해!!! DB는 필수!!!! 그렇다는 것은 Query도 잘 작성해야겠지!?!? 예 그렇습니다.개발의 고수 삽잡이가 되기 위해!!!!이번에는GROUP BY에 대해서 살펴보았습니다 굳~ GROUP BY 구문을 사용하게 되면데이터들을 원하는 그룹으로 나눠줍니다. GROUP BY 구문에 작성된 컬럼은 기준이 되어 하나의 결과로 Groupping 시켜줍니다. 다음은 삽질의 명문 삽질고에 학생 DB입니다. 삽질고에서 사건 사고를 일으키는 학우들에게는어마무시한 벌점을 준다네요 어느날 삽질고에 교육청에서 직원이 오신다고하네요...그래서 평소 지저분했던 창고를 정리하기 위해 인력이 필요한 교장선생님은 벌점 평균이 가장 높은 반 학우들을 부르려고 하십니다. 교장 선생님은 과감하게 Qeury문을 작성하..

[삽잡이::php] ==(equal) 와 ===(identical) 의 차이

== 라는 연산자는 코딩을 아주 쪼~금이라도 해보신 분은 아실만한 연산자입니다.예 그렇습니다. Equal이라는 의미의 연산자입니다. 그런데, php에서 재미있는 연산자가 하다 더 있습니다.바로 Indentical 이라는 연산자입니다. 어떻게 생겼는데~~ 예 바로! 이렇게 생겼습니다. 뭐야!!! == 쓰려다가 오타로 하나 더 쓴거 아니야!? 예... 아닙니다. 아래의 예시를 확인해보겠습니다. 12345if('1' == 1) { echo "true";} else { echo "false";}cs해당 코드의 결과는 무엇일까요!? 바로 true를 출력해줍니다. 정수를 문자열과 비교하게 되면 문자열은 수로 변환 됩니다. (출처_ PHP) 예 그렇습니다. 정수로 비교된다는 것이지요!!! 아하... 그래서 true가..

[삽잡이::php] 연관 배열 그리고 foreach( )

배열은 연속적인 데이터 구조에 나열된 데이터들의 집합을 의미합니다. 따라서, 배열에서는 Index를 지원해주지요. 예를 들어 $aPersons[0], $aPersons[1]이런식으로 말입니다! 그런데, php에서는 연관 배열 이라고 하여 인덱스로 값을 찾는 것이 아닌,Key값으로 Value값을 찾을 수 있는 배열 역시 제공하고 있습니다. 123456$aSapInfo = array( 'name' => '삽잡이' 'sex' => '남' 'age' => 10 'nickName' => 'shovelman');cs이런식으로 인덱스를 문자열로 사용할 수 있다는 것입니다. 이처럼 만들어진 배열들은 for라는 반복문 뿐만 아니라foreach 라는 반복문도 사용이 가능합니다. 1234567891011$aSapInfo =..

[삽잡이::sql] 데이터를 다른 테이블에 INSERT하자! INSERT INTO SELECT

INSERT INTO SELECT 구문은 한 테이블로부터 데이터를 복사하여 다른 테이블에 값을 Insert할 때 사용합니다. 단, 조건이 있지요.복사를 하기 위해서는 두 테이블에 존재하는 컬럼들이 같아야합니다. 123456789INSERT INTO sap_db_A SELECT * FROM sap_db_B WHERE name = "삽잡이" cs 이런식으로 sap_db_A 라는 Table에 sap_db_B Table에 있는 레코드들 중 name이 삽잡이인 레코드를 INSERT 할 수 있습니다. 물론, 모두 동일하지 않더라고 INSERT INTO SELECT 구문 사용이 가능합니다. 123456789INSERT INTO sap_db_A (idx, name, age, sex) SELECT idx, name, a..

[삽잡이::php] 한 객체만 사용한다! 싱글톤 패턴, getInstance( )

예전에 블로그에 C++ 언어에 대하여 주절 주절 거린적이 있었습니다. 이 때 정적 변수를 하나 만들어서요~ 한 놈을 통해서만 모든 접근을 할 수 있도록 만든적이 있었지요. 이를 바로싱글톤(Singleton) 패턴이라고 합니다. getInstance( ) 라는 메서드는 싱글톤 객체로 지정한 클래스의 인스턴스를 외부에서 접근할 수 있도록 허용해주기 위해 호출되어야 하는 녀석입니다. /* 디자인 패턴에 대해서 시간날 때 공부해야겠어요!좋은 자료들이 많네요! 아래의 사이트를 추천드립니다! [참고_ PHP: The Right Way (영문)][참고_ PHP: The Right Way (한글)] */ 굳~

[삽잡이::php] 배열 안에 중복되는 것은 다 빼버려! array_uniqe( )

php로 코딩을 하며 배열 안에 하나도 겹치지 않는 순수 Unique한 데이터들로 채우고 싶다... 싶으신 분들은 과감하게 array_unique() 메서드를 이용하시길 바랍니다. (출처_ PHP) returns a new array without duplicate values. 똑같은 값 없이 새로운 배열을 반환해준다고 하지요!? 두 번째 매개변수로는 FLAG 형식으로 정렬 형식을 설정할 수 있습니다. SORT_REGULAR - 보통 비교(자료형 변환 없음)SORT_NUMERIC - 수치 비교SORT_STRING - 문자열로 비교SORT_LOCALE_STRING - 현재 로케일에 기반한 문자열로 비교 (이 또한 역시 출처_ PHP) 12345$aNumbers = array(1, 1, 2, 3, 4, 5..