프로그램/linux2011. 7. 30. 15:46

yum을 이용해서 mysql 웹 관리 툴인 phpMyAdmin을 설치한다.

RPM Forge에서 패키지 정보를 다운로드 후 설치를 한다. (phpmyadmin은 기본적인 저장소가 없기 때문)

1. wget을 이용해서 패키지를 다운 받는다.
[root@www ~]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

2. 다운 받은 패키지를 설치한다.
[root@www ~]# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

3. yum을 이용해서 phpMyAdmin을 설치한다.
[root@www ~]# yum -y install phpmyadmin

4. 설치한 후 phpmyadmin의 알리아스(Alias) 설정 파일인 phpmyadmin.conf 설정 파일을 열어서 Alias 부분을 제외하고는 주석 처리(#) 한다.
[root@www ~]# vi /etc/httpd/conf.d/phpmyadmin.conf
... 생략 ...
Alias /phpmyadmin /user/share/phpmyadmin
Alias /phpMyAdmin /user/share/phpmyadmin
Alias /mysqladmin /user/share/phpmyadmin

 


5.. phpmyadmin은 기본적으로 cookie 방식으로 인증을 한다. 하지만 이 방식은 보안에 좋지 않으므로 http 형식으로 로그인을 할 수 있게
변경하길 권장한다. phpmyadmin 설정 파일이 있는 해당 디렉토리로 이동한다.
[root@www ~]# cd /usr/share/phpmyadmin

6. config.sample.inc.php 파일을 config.inc.php 파일로 복사한다.
[root@www phpmyadmin]# cp config.sample.inc.php config.inc.php

7. vi 에디터로 config.inc.php 파일을 연 후
/* Authentication type */ 부분에서 $cfg[Servers'][$i]['auth_type'] = 'cookie' -> http로 변경한 후 저장하고 나온다.
[root@www phpmyadmin]# vi config.inc.php
/* Authentication type */
$cfg[Servers'][$i]['auth_type'] = 'http';
[root@www phpmyadmin]#

8. 아파치를 재시작한다.
[root@www phpmyadmin]# service httpd restart

9. 웹 브라우저를 띄운 후 phpMyAdmin 주소를 입력해서 확인한다.

 


http://localhost/phpmyadmin
http://127.0.0.1/phpmyadmin

The configuration file now needs a secret passphrase (blowfish_secret).
<-- 이런 오류 문구가 발생했다면(클릭)
 

Posted by 은둔고수
프로그램/mysql2009. 12. 3. 11:58

[에러]
You can't specify target table '테이블' for update in FROM clause

[설명]
위와 같은 에러가 나오는 경우는
서브쿼리를 수행할 시에는 서브쿼리의 FROM절과 업데이트 target 모두를 위해
같은 테이블을 사용할 수 없다.
즉, 같은 테이블을 불러와서 같은 테이블에서 업데이트(UPDATE), 삭제(DELETE)를 못한다.

소스예>
DELETE FROM 테이블1 WHERE 컬럼1 IN (SELECT A.컬럼1 
                                                           FROM 테이블1 AS A 
                                                                     LEFT JOIN 테이블2  AS B ON A.컬럼1=B.컬럼2
                                                           WHERE B.컬럼2 IS NULL
                                                           );


[해결]
서브쿼리를 한번 더 감싸준다.

소스예>
DELETE FROM 테이블1 WHERE 컬럼1 IN (SELECT *
                                                           FROM (SELECT A.컬럼1
                                                                      FROM 테이블1 AS A
                                                                                LEFT JOIN 테이블2  AS B ON A.컬럼1=B.컬럼2
                                                           WHERE B.컬럼2 IS NULL) A
                                                           );
Posted by 은둔고수
프로그램/mysql2009. 9. 15. 16:01

mysql 에서 쿼리문을 만들다 보면
소수점처리를 하는 경우가 발생한다.

[반올림]
Round()

[버림]
Floor()

[올림]
Ceil()

Posted by 은둔고수
프로그램/mysql2009. 8. 12. 06:12

mysql cpu 점유율이 높을 때

 
DB에 영향을 미치는 쿼리문을 찾아낼 수 있는 좋은 방법.

1. mysql> show processlist;
]# mysqladmin -uroot -p proc stat -i5 <= 조금더 상세
]# mysqladmin -uroot -p processlist -i5
참고> show processlist -i5 -> 숫자는 새로고침할 시간(초)


2. mysql> show status;

기타)
]# top

참고> 1의 경우 mysql에 접속을 한 상태에서 내리는 명령어이며 접속하자마자 바로 보고 싶다면 다음 명령어를 사용한다.
]# mysqladmin -uroot -p processlist

[sleep 죽이는 법]
1. mysql>kill id;
2. mysqladmin kill id -u root -p

Posted by 은둔고수
프로그램/mysql2009. 8. 12. 06:08

mysql cpu 점유율이 높거나 db 연결이 안 좋을 때
 
mysql 이 cpu를 꾸준히 점유하고 있으며, 서버의 부하도 많이 발생한다.
물론 log 를 확인하는 방법이 가장 기본적으로 해야할 일이다. 그리고 혹시 slow query 가
얼마나 쌓이는지 확인해 보는것도 좋다.
그리고 mytop 이나 mysqlreport 등의 실시간 모니터링 프로그램을 이용할 수도 있다.
* slow query 에 관해 간단히 알아보면 다음과 같다.
: slow query 란 DBMS 가 client로부터 요청받은 query를 수행할때 일정시간 이상 수행
되지 못한 query를
칭하는 것으로 slow query 가 많다면 당연히 성능저하가 발생된다.
mysql 을 사용할때 mysqld 가 cpu를 유난히 많이 점유한다거나 DB의 접속이 원활하지
않다면
slow query를 이용하여 원인 분석에 도움이 될 수도 있다.
log 를 쌓이게 하기 위해 mysqld 실행시에 다음 옵션을 함께 추가하거나, my.cnf 파일을
직접 수정하여
mysqld 를 실행할 수도 있다.
1) mysqld 작동시 slow query 옵션 추가
#]/usr/local/mysql/bin/mysqd_safe --log-slowqueries=/
usr/local/mysq/data/mysql_slow.log &.....
2) my.cnf 수정
#]vi /etc/my.cnf
log_slow_queries=/usr/local/mysql/data/mysql_slow.log => 로그 저장 경로
long_query_time=1 => 쿼리가 2초이상 지속될때 로그에 기록
* cache size 수정하기
set-variable = query_cache_size = 100M : 100M 로 cache size 수정
cache 수정후 mysql prompt 상에서 다음과 같이 확인 가능
mysql> use mysql;
Database changed
mysql> show global status like '%Qcache%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_free_blocks | 13 |
| Qcache_free_memory | 33384736 |
| Qcache_hits | 283 |
| Qcache_inserts | 156 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 6 |
| Qcache_queries_in_cache | 37 |
| Qcache_total_blocks | 106 |
+-------------------------+----------+
8 rows in set (0.00 sec)
mysql> show global variables like '%query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 33554432 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+
6 rows in set (0.00 sec)
slow query가 쌓이도록 수정후 정상적으로 적용되었는지 확인하기 위해 mysql
command prompt 에서
다음과 같이 실행한다.
#mysql>show global variables WHERE Variable_name LIKE ‘l%’;
+———————————+—————————+
| Variable_name | Value |
+———————————+—————————+
| language | /usr/share/mysql/korean
| large_files_support | ON |
| large_page_size | 0 |
| large_pages | OFF |
| license | GPL |
| local_infile | ON |
| locked_in_memory | OFF |
| log | OFF |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | |
| log_slave_updates | OFF |
| log_slow_queries | ON |
| log_warnings | 1 |
| long_query_time | 3 |
| low_priority_updates | OFF |
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+———————————+—————————+
이제 쌓이는 log를 확인하여 어디에서 문제가 발생되는지 확인하고, 이를 수정해야 할 것
이다.
/usr/local/mysql/data/mysql-bin.00000 슬로우쿼리를 slowquery.log 에 덤프하여 저장
ex)/usr/local/mysql/bin/mysqldumpslow -v /usr/local/mysql/data/mysql-bin.00000
> slowquery.log
* 참고 mysql 명령어
extended-status MySQL : 데이터베이스의 현재 상황을 보여준다.
flust-hosts : MySQL에 캐시된 모든 포스트를 초기화한다.
flust-logs : MySQL의 로그 파일을 새로 작성하며 초기화한다.
flust-status : MySQL의 상태정보를 초기화한다.
flust-tables : MySQL에 캐싱된테이블 정보를 초기화한다.
flust-thread : 쓰레드 캐시에 저장된 쓰레드를 초기화한다.
flust-privileges : 권한정보 테이블을 다시 읽는다.
kill id : 특정 MySQL 프로세스를 죽인다.
Processlist : 현재 MySQL 프로세스 목록은 본다.
Refresh : 현재 캐시되어 있는 모든 테이블을 초기화하고 log 파일은 새로 만든다.
Variables 설정 가능한 모든 변수를 보여줍니다.
SHOW VARIABLES
MySQL은 설정 가능한 값들을 엄청나게 많이 가지고 있으며 SHOW VARIABLE 명령을
통해 현재 설정되어 있는 모든 값을 볼 수 있다. <화면 1>은 SHOW VARIABLES로 통해
살펴본 설정이다.
SHOW VARIABLES로 볼 경우 총 207개 정도의 변수가 표시된다. 오히려 너무 많아서 원
하는 값을 찾기가 힘들 정도이다. 그래서 SHOW VARIABLES 명령 뒤에 LIKE ‘%키워드%
’를 사용하면 원하는 값만을 볼 수 있다.
SHOW STATUS
MySQL은 내부적으로 동작 상황에 대한 실시간 통계 정보를 가지고 있다. SHOW
STATUS는 이러한 통계 정보를 보기 위한 명령이다. 모니터링할 때 가장 기본이 되는 것
이 바로 앞에서 설명한 SHOW VARIABLES의 정보와 SHOW STATUS의 정보이다. 웹
기반의 모니터링 툴을 비롯한 각종 모니터링 툴들이 바로 이 두 명령어를 통해 나온 정보
를 조합해 사용하는 것이다. SHOW STATUS도 SHOW VARIABLES와 마찬가지로 LIKE
‘%키워드%’ 사용해 원하는 값만을 볼 수 있다.
SHOW PROCESSLIST
현재 동작하고 있는 MySQL 데이터베이스 서버의 동작중인 모든 쓰레드와 유저 커넥션 정
보를 보기 위한 명령어이다. 이를 통해 얻어진 정보로 시스템 자원을 지나치게 많이 사용
하거나 잘못된 수행을 하고 있는 프로세스를 죽일 수 있다.
SHOW TABLE/TABLE STATUS/INDEX/INNODB STATUS
SHOW TABLE 명령은 현재 데이터베이스에 존재하는 테이블에 대한 기본적인 정보를 보
여주며 SHOW TABLE STATUS는 각 테이블의 생성 일자, 테이블 크기, 인덱스 크기 등
구체적인 정보를 보여준다. 하지만 이 때 주의할 점이 하나 있는데 바로 SHOW TABLE
STATUS의 경우 테이블의 스토리지 엔진이 MyISAM인 경우에만 정확한 정보를 표시하
며 InnoDB의 경우에는 부정확한 정보를 보여준다는 것이다. InnoDB 스토리지 엔진으로
되어 있는 테이블은 SHOW INNODB STATUS로 구체적인 정보를 확인할 수 있으며
SHOW INDEX를 통해 테이블의 인덱스에 대한 각종 정보를 볼 수 있다
Posted by 은둔고수
프로그램/mysql2009. 7. 15. 22:26

[mysql-함수]날짜 관련 함수 모음


dayofweek(date)

날짜를 한 주의 몇 번째 요일인지를 나타내는 숫자로 리턴한다.

(1 = 일요일, 2 = 월요일, ... 7 = 토요일)

mysql> select dayofweek('1998-02-03');

-> 3

 

weekday(date)

날짜를 한 주의 몇 번째 요일인지를 나타내는 숫자로 리턴한다. (0 = 월요일, 1=화요일 ... 6 = 일요일)

mysql> select weekday('1997-10-04 22:23:00');

-> 5

mysql> select weekday('1997-11-05');

-> 2

 

dayofmonth(date)

그 달의 몇 번째 날인지를 알려준다. 리턴 값은 1에서 31 사이이다.

mysql> select dayofmonth('1998-02-03');

-> 3

 

dayofyear(date)

한 해의 몇 번째 날인지를 알려준다. 리턴 값은 1에서 366 사이이다.

mysql> select dayofyear('1998-02-03');

-> 34

 

month(date)

해당 날짜가 몇 월인지 알려준다. 리턴 값은 1에서 12 사이이다.

mysql> select month('1998-02-03');

-> 2


dayname(date)

해당 날짜의 영어식 요일이름을 리턴한다.

mysql> select dayname("1998-02-05");

-> thursday


monthname(date)

해당 날짜의 영어식 월 이름을 리턴한다.

mysql> select monthname("1998-02-05");

-> february

 

quarter(date)

분기를 리턴한다 (1~ 4)

mysql> select quarter('98-04-01');

-> 2

 

week(date)

week(date,first)

인수가 하나일 때는 해달 날짜가 몇 번째 주일인지(0 ~ 52)를 리턴하고 2개일 때는 주어진 인수로 한 주의 시작일을 정해 줄 수 있다. 0이면 일요일을1이면 월요일을 한 주의 시작일로 계산해 몇 번째 주인가 알려준다.

mysql> select week('1998-02-20');

-> 7

mysql> select week('1998-02-20',0);

-> 7

mysql> select week('1998-02-20',1);

-> 8

 

year(date)

년도를 리턴한다.(1000 ~ 9999)

mysql> select year('98-02-03');

-> 1998


hour(time)

시간을 알려준다.(0 ~ 23)

mysql> select hour('10:05:03');

-> 10

 

minute(time)

분을 알려준다(0 ~ 59)

mysql> select minute('98-02-03 10:05:03');

-> 5


second(time)

초를 알려준다(0 ~ 59)

mysql> select second('10:05:03');

-> 3

 

period_add(p,n)

yymm 또는 yyyymm 형식으로 주어진 달에 n개월을 더한다. 리턴 값은 yyyymm의 형식이다.

mysql> select period_add(9801,2);

-> 199803


period_diff(p1,p2)

yymm 또는 yyyymm 형식으로 주어진 두 기간사이의 개월을 구한다

mysql> select period_diff(9802,199703);

-> 11

 

date_add(date,interval expr type)

date_sub(date,interval expr type)

adddate(date,interval expr type)

subdate(date,interval expr type)

위의 함수들은 날자 연산을 한다. 잘 만 사용하면 꽤나 편리한 함수 들이다. 모두 mysql 3.22 버전에서 새롭게 추가되었다. adddate() 과 subdate() 는 date_add() 와 date_sub()의 또 다른 이름이다.

인수로 사용되는 date 는 시작일을 나타내는 datetime 또는date 타입이다. expr 는 시작일에 가감하는 일수 또는 시간을 나타내는 표현식이다.

type 값의 의미
사용 예

second, seconds

minute, minutes

hour, hours
시간
day, days

month, months

year, years

minute_second, "minutes:seconds"
분:초
hour_minute, "hours:minutes"
시:분
day_hour, "days hours"
일 시
year_month, "years-months"
년 월
hour_second, "hours:minutes:seconds"
시 분
day_minute, "days hours:minutes"
일, 시, 분
day_second, "days hours:minutes:seconds"
일, 시, 분, 초

 

[예제]

mysql> select date_add("1997-12-31 23:59:59",interval 1 second);

-> 1998-01-01 00:00:00

mysql> select date_add("1997-12-31 23:59:59",interval 1 day);

-> 1998-01-01 23:59:59

mysql> select date_add("1997-12-31 23:59:59",interval "1:1" minute_second);

-> 1998-01-01 00:01:00

mysql> select date_sub("1998-01-01 00:00:00",interval "1 1:1:1" day_second);

-> 1997-12-30 22:58:59

mysql> select date_add("1998-01-01 00:00:00",interval "-1 10" day_hour);

-> 1997-12-30 14:00:00

mysql> select date_sub("1998-01-02", interval 31 day);

-> 1997-12-02

 

 

to_days(date)

주어진 날짜를 0000년부터의 일수로 바꾼다.

mysql> select to_days(950501);

-> 728779

mysql> select to_days('1997-10-07');

-> 729669

 

from_days(n)

주어진 일수 n로부터 날짜를 구한다

mysql> select from_days(729669);

-> '1997-10-07'

 

date_format(date,format)

format 의 정의에 따라 날자 혹은 시간을 출력한다. 매우 빈번히 쓰이는 함수 이다.

format 에 사용되는 문자는 다음과 같다.

 

%m
월이름 (january..december)

%w
요일명 (sunday..saturday)

%d
영어식 접미사를 붙인 일(1st, 2nd, 3rd, etc.)

%y
4자리 년도

%y
2자리 년도

%a
짧은 요일명(sun..sat)

%d
일(00..31)

%e
일(0..31)

%m
월(01..12)

%c
월(1..12)

%b
짧은 월이름 (jan..dec)

%j
한해의 몇 번째 요일인가 (001..366)

%h
24시 형식의 시간 (00..23)

%k
24시 형식의 시간 (0..23)

%h
12시 형식의 시간 (01..12)

%i
12시 형식의 시간 (01..12)

%l
시간 (1..12)

%i
분 (00..59)

%r
시분초12시 형식 (hh:mm:ss [ap]m)

%t
시분초 24시 형식 (hh:mm:ss)

%s
초 (00..59)

%s
초 (00..59)

%p
am 또는 pm 문자

%w
일주일의 몇 번째 요일인가(0=sunday..6=saturday)

%U
한해의 몇 번째 주인가(0..52). 일요일이 시작일

%u
한해의 몇 번째 주인가(0..52). 월요일이 시작일

%%
`%' 문자를 나타냄

 

위 표에 나와 있는 것들을 제외한 모든 문자는 그냥 그대로 출력된다.

 

mysql> select date_format('1997-10-04 22:23:00', '%w %m %y');

-> 'saturday october 1997'

mysql> select date_format('1997-10-04 22:23:00', '%h:%i:%s');

-> '22:23:00'

mysql> select date_format('1997-10-04 22:23:00',

'%d %y %a %d %m %b %j');

-> '4th 97 sat 04 10 oct 277'

mysql> select date_format('1997-10-04 22:23:00',

'%h %k %i %r %t %s %w');

-> '22 22 10 10:23:00 pm 22:23:00 00 6'


주의! : mysql 3.23 버전부터 % 기호가 각 형식문자 앞에 필요하게 되었다 그 이전 버전에서는 선택 사항이다.

 

 

time_format(time,format)

이 함수는 date_format()와 비슷한 역할을 하지만 단지 시,분,초 만을 나타낼 수 있다는 점이다.

 

curdate()

current_date()
오늘 날짜를 'yyyy-mm-dd' 또는 yyyymmdd 형식으로 리턴한다, 리턴 값은 이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라진다.

mysql> select curdate();

-> '1997-12-15'

mysql> select curdate() + 0;

-> 19971215

 

curtime()

current_time()

'hh:mm:ss' 또는 hhmmss 형식으로 현재시간을 나타낸다. 리턴 값은 이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라진다.

mysql> select curtime();

-> '23:50:26'

mysql> select curtime() + 0;

-> 235026

 

now()

sysdate()

current_timestamp()

오늘 날자와 현재 시간을 'yyyy-mm-dd hh:mm:ss' 또는 yyyymmddhhmmss 형식으로 리턴 한다, 역시 리턴 값은 이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라진다. 실제 개발 시 사용자의 등록일시 등을 나타낼 때 유용하게 쓰이는 함수다. 뒷부분의 실전예제에서 보게 될 것이다.

mysql> select now();

-> '1997-12-15 23:50:26'

mysql> select now() + 0;

-> 19971215235026

 

unix_timestamp()

unix_timestamp(date)

인수가 없이 사용될 경우 현재 시간의 유닉스 타임스탬프를 리턴하고

만일 날짜형식의 date 가 인수로 주어진 경우에는 주어진 날짜의 유닉스 타임스탬프를 리턴한다 유닉스 타임스탬프 란 그리니치 표준시로 1970 년 1월 1일 00:00:00 이 후의 시간경과를 초단위로 나타낸 것이다.

mysql> select unix_timestamp();

-> 882226357

mysql> select unix_timestamp('1997-10-04 22:23:00');

-> 875996580


주의 : 만일 unix_timestamp함수가 timestamp 컬럼 에서 사용될 경우에는 주어진 시간이 타임스탬프로 바뀌지 않고 그대로 저장된다.

 

from_unixtime(unix_timestamp)

주어진 유닉스 타임스탬프 값으로부터 'yyyy-mm-dd hh:mm:ss' 또는 yyyymmddhhmmss 형식의 날짜를 리턴한다.

mysql> select from_unixtime(875996580);

-> '1997-10-04 22:23:00'

mysql> select from_unixtime(875996580) + 0;

-> 19971004222300

 

from_unixtime(unix_timestamp,format)

주어진 유닉스 타임스탬프 값을 주어진 날짜 형식에 맞게 바꿔서 보여준다. 여기서 사용되는 형식문자는 date_format() 함수에서 사용된 것과 같다.

아래 예에서 %x 는 형식문자가 아니므로 그냥 x 가 표시됨에 유의하기 바란다.

mysql> select from_unixtime(unix_timestamp(),

'%y %d %m %h:%i:%s %x');

-> '1997 23rd december 03:43:30 x'

 

sec_to_time(seconds)

주어진 초를 'hh:mm:ss' 또는 hhmmss 형식의 시간단위로 바꿔준다.

mysql> select sec_to_time(2378);

-> '00:39:38'

mysql> select sec_to_time(2378) + 0;

-> 3938

 

time_to_sec(time)

주어진 시간을 초 단위로 바꿔준다.

mysql> select time_to_sec('22:23:00');

-> 80580

mysql> select time_to_sec('00:39:38');

-> 2378

 

[예제]

쿼리문으로 날짜계산
$query = "SELECT (now() - interval ′1 month′)::timestamp"; // 현재 부터 한 달 전 날짜

$query = "SELECT (now() + interval ′6 month′)::timestamp"; // 현재 부터 6 달 후 날짜 ...

 

[Q/A] mysql에서 타임스탬프값을 날짜값으로 바꿔주는 함수 있나요?
select from_unixtime(날짜필드) ...

하시면 우리가 보는 시간으로 보일거예요~

 

 

[MySQL에서 제공하는 날자 관련 함수]

DAYOFMONTH(date) : 날짜만 리턴해주는 함수. (1-31) 한달을 단위로.
DAYOFYEAR(date) : 이역시 날짜만 리턴. (1-366) 1년을 단위로.
TO_DAYS(date) : 연도와 달을 모두 날짜화 시켜서 리턴해줍니다.
                            (1999-01-01 = (1999 * 365) + (01 * 31) + 1)
MONTH(date) : 달을 리턴해주는 함수.
DAYNAME(date) : 요일을 문자로 리턴. (ex :'Thursday')
MONTHNAME(date) : 달을 문자로 리턴. (ex :'February')
WEEK(date) : 해당 연도에 몇번째 주인지를 리턴 (0-52)
YEAR(date) : 연도를 리턴 (1000-9999)
HOUR(time) : 시간 리턴 
MINUTE(time) : 분 리턴
SECOND(time) : 초 리턴

DATE_FORMAT(date,format)

     `%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
     `%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'..`52'), Sunday is the first day of the week.
     `%u'    Week (`0'..`52'), Monday is the first day of the week.
     `%%'    Single `%' characters are ignored.  Use `%%' to produce a
             literal `%' (for future extensions).

Posted by 은둔고수
프로그램/mysql2009. 7. 15. 22:25

[mysql-tip]oracle rownum 구현하기

 

 

SELECT @RNUM:=@RNUM+1 AS ROWNUM FROM (SELECT @RNUM:=0) R

SELECT @RNUM:=@RNUM+1 as ROWNUM , A.*
FROM (SELECT @RNUM:=0) R,
   (SELECT 출력할컬럼    FROM 테이블명
    WHERE 조건처리
    ORDER BY 역순정렬을위한컬럼 DESC) AS A

LIMIT 10


Posted by 은둔고수