지식메모/MySQL
-
mysql not in 사용해서 차집합 검색하기2013.11.26
-
mysql join 문 사용하기2013.08.07
-
MySQL 캐릭터 셋 한글로 바꾸기2013.07.22
-
내가 자주 쓰는 MySQL 명령어2013.07.22
-
MySQL 테이블 스키마 보기2013.07.22
mysql not in 사용해서 차집합 검색하기
A B 두 테이블이 있다고 가정하자
A와 B는 id라는 컬럼을 공유하며 가지고 있다.
A는 B를 포함하고 있다. 여기서 A 테이블의 id 에서 B테이블의 id를 제외한 결과를 가져오고 싶다면
select A테이블의 컬럼명 from A테이블 where id not in (select B테이블의 컬럼명 from B테이블);
select id from A where id not in (select id from B);
를 하면 된다.
쉽게? 설명하자면 빨간색 공과 파란색 공이 섞여있는 상자에서 파란색 공을 빼고 싶으면
select 공 from 빨강 where 공 not in (select 공 from 파랑);
'지식메모 > MySQL' 카테고리의 다른 글
최근 기간 내에 데이터 검색하기 (시간,기간 검색) (2) | 2013.10.14 |
---|---|
mysql join 문 사용하기 (0) | 2013.08.07 |
MySQL 캐릭터 셋 한글로 바꾸기 (0) | 2013.07.22 |
내가 자주 쓰는 MySQL 명령어 (0) | 2013.07.22 |
MySQL 테이블 스키마 보기 (0) | 2013.07.22 |
최근 기간 내에 데이터 검색하기 (시간,기간 검색)
데이터가 시간 내에 얼마나 들어왔나 보고 싶을때 시간 검색, 기간 검색이 가능하다
select * from music where (type='song' or type='album') and created_date > DATE_ADD(now(), INTERVAL -1 hour); |
music 테이블에서 type이 song 또는 album 인 데이터가 지난 1시간 동안 얼마나 들어왔는지 검색
-1~ -24 까지 하면 최근 한 시간 부터 24시간까지 검색이 가능
이런 식으로 끝에
-1 hour 최근 한 시간
-1 day 최근 하루
-1 month 최근 한달
select * from music where created_date between '2013-10-10' and '2013-10-14'; |
10일부터 14일까지 검색
'지식메모 > MySQL' 카테고리의 다른 글
mysql not in 사용해서 차집합 검색하기 (0) | 2013.11.26 |
---|---|
mysql join 문 사용하기 (0) | 2013.08.07 |
MySQL 캐릭터 셋 한글로 바꾸기 (0) | 2013.07.22 |
내가 자주 쓰는 MySQL 명령어 (0) | 2013.07.22 |
MySQL 테이블 스키마 보기 (0) | 2013.07.22 |
mysql join 문 사용하기
하도 헷갈려서 정리
select 결과로 출력될 테이블 설정 from 기준 테이블명 join 조인할 테이블명 on 조인할 조건 where 검색조건 order by 1 desc limit 10;
나눠서 보면
select 결과로 출력될 테이블 설정
from 기준 테이블명
join 조인할 테이블명 on 조인할 조건
where 검색조건 order by 1 desc limit 10;
예를 들면
select item.create_day, user.id, item.item_name item.amount from item join user on user.id=item.vid where item.create_day>='2013-08-07' and item.create_day <'2013-08-08' order by 1 desc limit 10; |
이러한 쿼리문을 풀어 써보면
select item.create_day, user.id, item.item_name item.amount from item
select item의 create_day, item_name, amount 칼럼과 user테이블의 id 칼럼을 보여줄건데 from 기준은 item 테이블
join user on user.id=item.vid
join 조인할 테이블은 user on 조인의 조건은 user 테이블의 id 칼럼과 item 테이블의 vid칼럼이 같은 것만 뽑아내고
(item 테이블의 vid 칼럼은 user 테이블의 id를 참조하고 있는 상태)
where item.create_day>='2013-08-07' and item.create_day <'2013-08-08'
where 검색 조건은 item 테이블의 create_day 칼럼(생성날짜)에서 2013년 8월 7일부터 8월 8일 전까지만 뽑아낸다.
order by 1 desc limit 10;
order by (정렬) 1 (첫번째 칼럼으로) desc (내림차순) limit (제한) 10(열 개만) ;
이런 뜻으로 select 다음에 처음으로 온 칼럼이 item.create_day이므로 이걸 기준으로 내림차순으로 하되 열개만 출력하도록 한다.
'지식메모 > MySQL' 카테고리의 다른 글
mysql not in 사용해서 차집합 검색하기 (0) | 2013.11.26 |
---|---|
최근 기간 내에 데이터 검색하기 (시간,기간 검색) (2) | 2013.10.14 |
MySQL 캐릭터 셋 한글로 바꾸기 (0) | 2013.07.22 |
내가 자주 쓰는 MySQL 명령어 (0) | 2013.07.22 |
MySQL 테이블 스키마 보기 (0) | 2013.07.22 |
MySQL 캐릭터 셋 한글로 바꾸기
참고한 블로그 글
http://khmirage.tistory.com/71
http://mansoo.tistory.com/entry/MySQL-%EC%BA%90%EB%A6%AD%ED%84%B0-%EC%85%8B-%EB%B3%80%EA%B2%BD
[client]
default-character-set=utf8
[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
default-character-set=utf8 //근데 나는 이 부분을 넣었을때 재시작이 실패했는데 빼니까 되었다. 뭐지..
character-set-server=utf8
collation-server=utf8_general_ci
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
'지식메모 > MySQL' 카테고리의 다른 글
mysql not in 사용해서 차집합 검색하기 (0) | 2013.11.26 |
---|---|
최근 기간 내에 데이터 검색하기 (시간,기간 검색) (2) | 2013.10.14 |
mysql join 문 사용하기 (0) | 2013.08.07 |
내가 자주 쓰는 MySQL 명령어 (0) | 2013.07.22 |
MySQL 테이블 스키마 보기 (0) | 2013.07.22 |
내가 자주 쓰는 MySQL 명령어
테이블 구성보기
desc 테이블명;
테이블 내용 다 지우기
delete from 테이블명;
테이블 칼럼 추가
alter table 테이블명 add 칼럼명 varchar(11) not null default '0';
테이블 칼럼 삭제
alter table 테이블명 drop 칼럼명;
칼럼명과 타입 수정하기
alter table 테이블명 change 원래칼럼명 바꿀칼럼명 varchar(11);
칼럼 타입수정하기
alter table 테이블명 modify 칼럼명 varchar(20);
테이블명 수정
alter table 테이블명 rename 바꿀테이블명;
테이블 데이터 추가하기
insert into 테이블명 values ('칼럼1','칼럼2', ...);
테이블 안에 모든 내용보기
select * from 테이블명;
테이블 데이터 검색
select [찾을 필드명] from [찾을 테이블 이름] where [검색조건];
데이터 변경하기
update 테이블명 set 칼럼명='바꿀내용' where 타겟칼럼명 = '타겟칼럼데이터' ;
자꾸 써야 안 까먹는데 자꾸 안 쓴다.
맨날 참고하는 링크글
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=493
'지식메모 > MySQL' 카테고리의 다른 글
mysql not in 사용해서 차집합 검색하기 (0) | 2013.11.26 |
---|---|
최근 기간 내에 데이터 검색하기 (시간,기간 검색) (2) | 2013.10.14 |
mysql join 문 사용하기 (0) | 2013.08.07 |
MySQL 캐릭터 셋 한글로 바꾸기 (0) | 2013.07.22 |
MySQL 테이블 스키마 보기 (0) | 2013.07.22 |
MySQL 테이블 스키마 보기
기존 테이블스키마를 테이블 명만 바꿔서 새로 생성하고 싶을때
show create table 기존테이블명;
해주면 쫙 나온다. 그대로 긁어다가 테이블 명만 수정하고 생성~
team table 스키마를 보여준 모습
'지식메모 > MySQL' 카테고리의 다른 글
mysql not in 사용해서 차집합 검색하기 (0) | 2013.11.26 |
---|---|
최근 기간 내에 데이터 검색하기 (시간,기간 검색) (2) | 2013.10.14 |
mysql join 문 사용하기 (0) | 2013.08.07 |
MySQL 캐릭터 셋 한글로 바꾸기 (0) | 2013.07.22 |
내가 자주 쓰는 MySQL 명령어 (0) | 2013.07.22 |