아래의 쿼리 실행 후 drop table 뒤에 쫙 붙혀 넣기.
select GROUP_CONCAT(A.T_NAME) from ( select concat(T.TABLE_SCHEMA, '.', T.TABLE_NAME) T_NAME from information_schema.TABLES T where table_name like 'T_%' and TABLE_SCHEMA = 'test' ) A
group_concat
select 된 결과를 ', ' 붙혀서 단일 스트링으로 만들어 준다.
select group_concat(hobbies separator ', ')
from peoples_hobbies where person_id = 5 group by 'all';
mysql reference:
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
dump, import
-- MySQL 덤프
$ mysqldump DB 테이블 -u계정 -p -q -d --default-character-set=euckr > 저장파일 위치/파일명
-- MySQL 임포트
$ mysql -u계정 -p DB < 저장파일 위치/파일명
날짜별 통계
SELECT
ERROR_CODE,
DATE_FORMAT( CREATE_DATE, '%m-%d' ),
COUNT(1)
FROM
TBL_NAME
WHERE
ERROR_CODE='E000'
GROUP BY
ERROR_CODE, DATE_FORMAT( CREATE_DATE, '%m-%d' )
Table 복제
테이블을 기존의 테이블과 동일한 구조로 생성 한 후기존 테이블의 레코드를 신규 테이블에 저장한다.
CREATE TABLE TSH_OPTION_TMP LIKE TSH_OPTION
INSERT INTO TSH_OPTION_TMP SELECT * FROM TSH_OPTION
날짜 포맷
%M Month name (January..December)
%W Weekday name (Sunday..Saturday)
%D Day of the month with English suffix (1st, 2nd, 3rd, etc.)
%Y Year, numeric, 4 digits
%y Year, numeric, 2 digits
%X Year for the week where Sunday is the first day of the week, numeric, 4 digits, used with \'%V\'
%x Year for the week, where Monday is the first day of the week, numeric, 4 digits, used with \'%v\'
%a Abbreviated weekday name (Sun..Sat)
%d Day of the month, numeric (00..31)
%e Day of the month, numeric (0..31)
%m Month, numeric (01..12)
%c Month, numeric (1..12)
%b Abbreviated month name (Jan..Dec)
%j Day of year (001..366)
%H Hour (00..23)
%k Hour (0..23)
%h Hour (01..12)
%I Hour (01..12)
%l Hour (1..12)
%i Minutes, numeric (00..59)
%r Time, 12-hour (hh:mm:ss [AP]M)
%T Time, 24-hour (hh:mm:ss)
%S Seconds (00..59)
%s Seconds (00..59)
%p AM or PM
%w Day of the week (0=Sunday..6=Saturday)
%U Week (0..53), where Sunday is the first day of the week
%u Week (0..53), where Monday is the first day of the week
%V Week (1..53), where Sunday is the first day of the week. Used with \'%X\'
%v Week (1..53), where Monday is the first day of the week. Used with \'%x\'
%% A literal `%\'.
인덱스 추가
ALTER TABLE t2 ADD INDEX (d), ADD UNIQUE (a);
date time functions
str_to_date
mysql> SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y');
-> '2013-05-01'
mysql> SELECT STR_TO_DATE('May 1, 2013','%M %d,%Y');
-> '2013-05-01'
resource : http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date
DATE_ADD, DATE_SUB
select * from TBL_NAMEWHERE CREATE_DATE >= DATE_SUB(SYSDATE(), INTERVAL 360 MINUTE)
resources: http://www.w3schools.com/sql/func_date_sub.asp
LIMIT
SELECT 실행 시 페이징 처리를 위한 LIMIT
쿼리문 뒤에 limit만 살짝 붙혀주기.
LIMIT offset, size
offset은 0부터 시작함
대소문자 구분
mysql에서는 컬럼 값의 대소문자 구분을 하지 않는다. 웃겼다.. 한참 웃었어.SELECT 할 때도 대소문자 구분없이 처리가 되지만, PK나 Unique Constraints에 걸려 있는 컬럼들도 대소문자가 다른 값으로 Insert 되지 않는다.
컬럼 속성을
`EMAIL` VARCHAR(50) NOT NULL 이라고 선언했을 경우에
`EMAIL` VARCHAR(50) BINARY NOT NULL 또는
`EMAIL` VARCHAR(50) NOT NULL COLLATE 'utf8_bin' 로 변경해 주면 된다.
위와 같이 컬럼 속성을 변경하면 대소문자 구분된다.
댓글 없음:
댓글 쓰기