티스토리 툴바


달력

05

« 2012/05 »

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
2009/10/22 12:48

[MySQL] 최신 리스트 만들기. Programming/MySQL2009/10/22 12:48

매달 칵테일 파티를 열고 있습니다.
그리고 매달 최고의 금발 소녀를 탑 10을 뽑습니다.
선발 기준은 금발에 바스트사이즈가 3이상 ^^;;;;
그런데 매달 이 아가씨들을 뽑고 리스트를 갱신 하려니.. 귀찮습니다.
그래서 이걸 쿼리 한방으로 해결 할려고 합니다.
어떻게 할까요?

DROP TABLE IF EXISTS best_10_blond_girls;
CREATE View best_10_blond_girls as
SELECT concat(`name`,' has breast size = ', breast _size) as girls, hotness
from girls
WHERE hair_color like blond and breast _size > 3
ORDER BY hotness desc
LIMIT 10


저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG MySQL
Posted by 신규하
2009/10/22 12:08

[MySQL] 사고다발자 제거하기. Programming/MySQL2009/10/22 12:08

이 놈의 클럽에서 자꾸 사고가 일어 나고 있습니다.
사장님은 극단의 결정을 내립니다.
클럽에서 사고를 3이번 이상 낸 고객을 고객 명단에서 삭제 할려고 합니다.
어떻게 해야 할 까요?

Table Club_members
-id
-name
-address

Table Club_accidents
-club_id
-accident_desc

여기에서도 역시 WHERE IN을 사용하면 됩니다.

DELETE from Club_members where id in (select club_id from club_accidents group by club_id having count(*) >= 3)

저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG MySQL
Posted by 신규하

아래와 같은 테이블 GIRLS이 데이터가 있고 주소가 있는데.. 주소가 입력되어 있지 않은 걸들의 주소를 삭제 하고 싶다면,

TABLE GIRLS
-id INT
-name VARCHAR
-address_id INT [ foreign key ]
-hair_color VARCHAR

TABLE GIRL_ADDRESS
-address_id INT
-address_info VARCHAR
-phone VARCHAR

아래와 같이 작성해 주시면 됩니다.

DELETE from girls WHERE address_id not in (SELECT address_id from address)


저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG MySQL
Posted by 신규하
2009/10/22 11:46

[MySQL] 중복 레코드 지우기.. Programming/MySQL2009/10/22 11:46

기본적으로 중복되지 말아야 하는데.. 중복이 된 경우 그 행을 삭제하는 방법입니다.

DELETE FROM duplicate
WHERE id not in ( SELECT id from ( SELECT id from
duplicate group by phone) as id )

전화번호가 중복 된 것이 있을 경우, 위와 같이 WHERE NOT IN을 사용해서 제거해 줄 수 있습니다.
저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG MySQL
Posted by 신규하

 php에 mysql을 사용하시는 분들은 phpMyAdmin을 많이 사용하 실 겁니다. 하지만, 이것보다 별 설치도 필요 없고 바로 사용 할 수 있는 mysql 관리자를 소개 해 드립니다.
바로 adminer입니다.


정말 설치도 필요 없고, 웹 실행하는 디렉토리에 파일 하나 복사해 넣고 웹페이지에서 부르고, 서버와 사용자이름, 암호만 입력하면, mysql을 관리 할 수 있습니다.
참 쉽조잉~

일하다가, phpMyAdmin도 설치 되어 있지 않고 위급한 사황에서 요긴하게 사용 할 수 있을 듯 싶습니다.


기능

  • 데이타베이스 서버와 이름, 암호로 데이타베이스 연결.
  • 데이타베이스 선택과 데이타베이스 생성.
  • 필드, 익덱스, 외부키, 테이블 트리거 목록 표시.
  • 테이블의 이름, 엔진, 정렬 이름, 자동 증가,  주석 변경.
  • 컬럼의 이름, 타입, 정렬이름, 주석, 기본값 변경.
  • 테이블 및 컬럼 추가와 삭제.
  • 인덱스 생성, 변경, 삭제, 검색.
  • 외부키 생성, 변경, 삭제, 링크 목록 보기.
  • 뷰 생성, 변경, 삭제, 보기.
  • 스토어 프로시져와 함수 생성, 변경, 제거, 호출.
  • 트리거 생성, 변경, 제거.
  • 테이블 검색, 집계, 정렬, 한도 계산.
  • 새로운 레코드 추가, 변경, 삭제.
  • 모든 데이터 형태 지원.
  • 파일이나 텍스트 필드로 SQL 명령어 실행.
  • SQL이나 CSV로 구조, 데이타, 뷰, 루틴, 데이터베이스  내보내기.
  • 외부키 데이터베이스 스키마 연결 출력.
  • 프로세스 보기와 죽이기.
  • 사용자 표시 및 변경.
  • 문서로 연결된 값 표시.
  • 이벤트 메니져와 테이블 파티션(MySQL 5.1)

요구사항

  • MySQL 4.1, 5.0 또는 5.1
  • PHP 4.3+와 PHP 5 지원.(session이 enable되어 있어야 함)
  • 11 개의 다국어 지원(한국어는 없음 -_-;)
  • 사용적이나 비상영적이나 무료. (Apache License)

다운로드 : version 1.11.1

저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 신규하
2009/06/29 15:33

MySQL에서 BOOLEAN형.. Programming/MySQL2009/06/29 15:33

MySQL에서는 boolean형은 BOOL혹은 BOOLEAN으로 정의 하면 됩니다.
실제로 boolean형이라고 하면 1비트면 충분하지만 MySQL에서는 BOOLEAN형으로 하면, TINYINT(1)과 같이 1바이트를 잡아 먹습니다.
그리고 데이터 형도 TRUE와 FLASE는 1과 0에 매칭이 됩니다.
그래서 쿼리를 해 보면 아래와 같은 결과가 나옵니다.

mysql> SELECT IF(0 = FALSE, 'true', 'false');
+--------------------------------+
| IF(0 = FALSE, 'true', 'false') |
+--------------------------------+
| true                           |
+--------------------------------+

mysql> SELECT IF(1 = TRUE, 'true', 'false');
+-------------------------------+
| IF(1 = TRUE, 'true', 'false') |
+-------------------------------+
| true                          |
+-------------------------------+

mysql> SELECT IF(2 = TRUE, 'true', 'false');
+-------------------------------+
| IF(2 = TRUE, 'true', 'false') |
+-------------------------------+
| false                         |
+-------------------------------+

mysql> SELECT IF(2 = FALSE, 'true', 'false');
+--------------------------------+
| IF(2 = FALSE, 'true', 'false') |
+--------------------------------+
| false                          |
+--------------------------------+

일반 프로그래머 분들이라면, 0이 아닌 숫자는 true로 인식 할 수 있지만, MySQL에서는 false로 떨어지게 됩니다.
그래서 BOOLEAN형을 쓰는것 보다는 TINYINT(1)을 써서 좀 더 명확하게 하는게 좋지 않은가 싶습니다.

아니면 더 좋은 형이 있을까요?

참고 : http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 신규하