서론

날자 컨트롤 하는 부분은 간단하면서도 복잡하다. mysql 에서 지원하는 아래 함수들로 날자 연산을 쉽게 할 수 있다.

 

 

본론

DATE_ADD(date,INTERVAL expr  unit), DATE_SUB(date,INTERVAL expr  unit)

함수의 기본형은 위와 같고 INTERVAL 키워드의 형태는 아래와 같이 쓰인다.

unit Value 형태
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
YEAR YEARS

SECOND_MICROSECOND

'SECONDS.MICROSECONDS'

MINUTE_MICROSECOND 'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH

'YEARS-MONTHS'

 

위에서 지원되는 DATE_ADD, DATE_SUB 함수는 사용자 편의를 위해 +,- 연산자 형태로도 사용할 수 있다. 아래 와 같은 형태로 사용 될 수 있다.

mysql> SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;
        -> '2009-01-01 00:00:00'
mysql> SELECT INTERVAL 1 DAY + '2008-12-31';
        -> '2009-01-01'
mysql> SELECT '2005-01-01' - INTERVAL 1 SECOND;
        -> '2004-12-31 23:59:59'
mysql> SELECT DATE_ADD('2000-12-31 23:59:59',
    ->                 INTERVAL 1 SECOND);
        -> '2001-01-01 00:00:00'
mysql> SELECT DATE_ADD('2010-12-31 23:59:59',
    ->                 INTERVAL 1 DAY);
        -> '2011-01-01 23:59:59'
mysql> SELECT DATE_ADD('2100-12-31 23:59:59',
    ->                 INTERVAL '1:1' MINUTE_SECOND);
        -> '2101-01-01 00:01:00'
mysql> SELECT DATE_SUB('2005-01-01 00:00:00',
    ->                 INTERVAL '1 1:1:1' DAY_SECOND);
        -> '2004-12-30 22:58:59'
mysql> SELECT DATE_ADD('1900-01-01 00:00:00',
    ->                 INTERVAL '-1 10' DAY_HOUR);
        -> '1899-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
        -> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
    ->            INTERVAL '1.999999' SECOND_MICROSECOND);
        -> '1993-01-01 00:00:01.000001'

 

 

결론

날자 연산에서 +,- 연산자의 지원으로 정말 편리하게 연산할 수 있게 되었다.

' > Mysql' 카테고리의 다른 글

MYSQL 글자 붙이기  (44) 2007.07.23
MYSQL LAST_INSERT_ID()  (26) 2007.07.20
MYSQL JOIN 구문  (1087) 2007.06.10
MYSQL EUC-KR 을 UTF-8 로 변경하기  (682) 2007.03.09
MYSQL 유용한 명령어들  (26) 2006.12.18
by cranix 2009. 8. 19. 17:03
오라클의 || 연산자와 같은 역할을하는 MYSQL 의 글자 붙이기 함수.

select concat(field1,field2) from table;

' > Mysql' 카테고리의 다른 글

mysql DATE 연산함수  (908) 2009.08.19
MYSQL LAST_INSERT_ID()  (26) 2007.07.20
MYSQL JOIN 구문  (1087) 2007.06.10
MYSQL EUC-KR 을 UTF-8 로 변경하기  (682) 2007.03.09
MYSQL 유용한 명령어들  (26) 2006.12.18
by cranix 2007. 7. 23. 22:58
MYSQL 에서 자동증가 형태로 되어있는 필드가.

자동 증가되었을때 그 값을 알아내는 쿼리

SELECT LAST_INSERT_ID();

' > Mysql' 카테고리의 다른 글

mysql DATE 연산함수  (908) 2009.08.19
MYSQL 글자 붙이기  (44) 2007.07.23
MYSQL JOIN 구문  (1087) 2007.06.10
MYSQL EUC-KR 을 UTF-8 로 변경하기  (682) 2007.03.09
MYSQL 유용한 명령어들  (26) 2006.12.18
by cranix 2007. 7. 20. 22:13

ORACLE 에서는 LEFT 와 RIGHT 조인을 할때 아래와같이 (+) 를 이용해 쉽게 할수있었다.

ORACLE [LEFT|RIGHT|CROSS] JOIN 예

select * from table1 t1,table2 t2 where t1.id(+)=t2.id

위와같이 (+) 를 어디다가 붙히냐에따라 LEFT 와 RIGHT 조인을 할수있었다.

그러나 MYSQL 에서는 저게 지원이 안됨으로 아래와같이 풀로 써줘야한다.

    SELECT *
      FROM table1 t1
 LEFT JOIN table t2
        ON (t1.id=t2.id)


이렇게 하면 위의 오라클 구문과 똑같은 효과가 난다.

' > Mysql' 카테고리의 다른 글

mysql DATE 연산함수  (908) 2009.08.19
MYSQL 글자 붙이기  (44) 2007.07.23
MYSQL LAST_INSERT_ID()  (26) 2007.07.20
MYSQL EUC-KR 을 UTF-8 로 변경하기  (682) 2007.03.09
MYSQL 유용한 명령어들  (26) 2006.12.18
by cranix 2007. 6. 10. 15:19
1. 먼저 아래 명령어로 덤프를 받는다.
# mysqldump -u[id] -p [db] > dump.sql

2. 기본으로 덤프 받은파일은 euc-kr 데이터 이기때문에 아래 명령어로 utf-8 데이터로 변경해준다.
# iconv -c -f euc-kr -t utf-8 dump.sql > dump_utf8.sql

3. 이제 덤프받은 utf8 데이터를 utf8 로 설정되어있는 mysql DB 에 밀어넣는다.
# mysql -u[id] -p [db] < dump_utf8.sql

' > Mysql' 카테고리의 다른 글

mysql DATE 연산함수  (908) 2009.08.19
MYSQL 글자 붙이기  (44) 2007.07.23
MYSQL LAST_INSERT_ID()  (26) 2007.07.20
MYSQL JOIN 구문  (1087) 2007.06.10
MYSQL 유용한 명령어들  (26) 2006.12.18
by cranix 2007. 3. 9. 21:56
1. 새로운 사용자 등록 (GRANT 이용)
 
(1) MySQL에서 모든 권한을 갖는 관리자용 사용자(root)를 추가할 때 
mysql>
GRANT ALL PRIVILEGES ON *.* to root@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
(2) 일반 사용자(user)에게 자신의 DB(mydb)의 모든 테이블에 모든 권한을 부여할 때 mysql> GRANT ALL PRIVILEGES on mydb.* to user@localhost IDENTIFIED BY 'password'; 2. MySQL의 root 사용자 암호 바꾸기 (mysqladmin 이용) (1) root 패스워드 변경하기. mysql> mysqladmin -u root password new-passwd
(2) 잊어버린 root 암호 다시 설정하기
a. MySQL 모든 프로세서 죽이기
# killall mysqld
b. grant-table을 사용하지 않고 MySQL 데몬을 시작
# ./asfe_mysql --skip-grant-tables &
c. 사용자 테이블이 있는 mysql DB로 접속하여 root 패스워드 다시 설정
# mysql -u root mysql mysql> update user set password=password('newpassword') where user='root';
d. 새로운 암호를 적용하기 위해 flush privileges를 실행
mysql> flush privileges;
e. 다시 모든 MySQL 데몬을 죽인다
# killall mysqld
f. grant-table을 사용하기 위해서 정상적인 방법으로 데몬을 시작
# ./safe_mysqld & 3. 데이타베이스&테이블 생성 및 삭제 (1) 데이타베이스 생성 및 삭제하기
mysql> database
(2) 테이블 생성 및 삭제하기
mysql> table (......); # mysql -u user_name -p db_name < create_table.sql 4. 데이타 검색 (1) 기본형식
mysql> selcet from [];
(2) 정렬해서 검색하기
mysql> select from [where ] -> order by [asc | desc];
(3) 특정 문자열이 포함된 칼럼 검색하기
mysql> select from where like 'string'; 5. 데이터 백업 및 복구 (1) 백업
# mysqldump -u -p >
(2) 복구
# mysql -u -u -p <














출처 : http://cafe.naver.com/bio2bio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=282http://cafe.naver.com/bio2bio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=282

' > Mysql' 카테고리의 다른 글

mysql DATE 연산함수  (908) 2009.08.19
MYSQL 글자 붙이기  (44) 2007.07.23
MYSQL LAST_INSERT_ID()  (26) 2007.07.20
MYSQL JOIN 구문  (1087) 2007.06.10
MYSQL EUC-KR 을 UTF-8 로 변경하기  (682) 2007.03.09
by cranix 2006. 12. 18. 15:17
| 1 |