• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
DB
26
/157
2014. 8. 23. 00:35
MySQL - 널체크(IFNULL 사용하기)


2014/08/23 - [DB/Oracle] - 오라클 - 널체크(NVL 사용하기)


2014/08/23 - [DB/MSSQL] - MS-SQL - 널체크(ISNULL 사용하기)



우리는 간혹가다 데이터 null일경우의 데이터를 치환해야하는 일이 생긴다 

이럴경우 MySQL에서는 IFNULL이라는 함수를 이용하여 NULL값을 원하고자 하는 데이터로 치환

이 가능하다


1. 임의의 테이블 생성


CREATE TABLE `null_table` (
  `idx` bigint(20) NOT NULL AUTO_INCREMENT,
  `null_text` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

2. 데이터 추가


insert into null_table(null_text)
values('1');
insert into null_table(null_text)
values(null);
insert into null_table(null_text)
values('2');
insert into null_table(null_text)
values(null);
insert into null_table(null_text)
values('3');

3. null_table 테이블 조회


SELECT * 
FROM null_table





4. IFNULL 함수적용

   사용법 : IFNULL(컬럼명,'컬럼이 널일경우 대체할 데이터')


select *, IFNULL(null_text,'널입니다') null_check
from null_table





슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시 비영리 변경금지 (새창열림)

'DB > MySQL' 카테고리의 다른 글

MySQL - DB 및 테이블 목록 조회  (2) 2014.09.03
MySQL - if ~ else 조건문 사용하기 : if  (0) 2014.08.24
MySQL LIMIT를 사용하여 페이징쿼리를 동작시켜보자  (0) 2014.08.15
MySQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...)  (0) 2014.08.12
MySQL 인코딩 UTF-8 설정하기 [한글깨짐문제 해결]  (7) 2014.08.12
/150
2014. 8. 18. 22:38
DBMS별(ms-sql vs mysql vs oracle) 문자열 합치기


문자열 합치는 포스팅은 간단해서 쿼리와 실행화면으로만 샘플을 들어보도록 하겠음


1. MS-SQL('문자열'+'문자열'+'문자열')

select 's'+'u'+'m' total


실행화면





2. ORACLE('문자열'||'문자열'||'문자열')

select 's'||'u'||'m' total from dual


실행화면






3. MySQL(CONCAT('문자열','문자열'))

SELECT CONCAT('s','u','m') total


실행화면






슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!


저작자표시 비영리 변경금지 (새창열림)

'DB > MySQL vs MS-SQL vs ORACLE' 카테고리의 다른 글

각 DBMS(oracle,mssql,mysql) 별 컬럼,필드 삭제 명령어  (0) 2014.09.23
오라클,MySQL,MSSQL 각 DBMS별 컬럼을 추가해보도록 하자  (0) 2014.09.23
(MySQL,MS-SQL,ORACLE) DB에 존재하는 테이블이름 변경하기  (0) 2014.09.22
(MySQL,MS-SQL,ORACLE) case when then else end 사용하여 조건문 다루기  (0) 2014.08.24
/147
2014. 8. 15. 18:21
ORACLE 오라클 rownum을 이용하여 페이징 처리하기


2014/08/15 - [DB/MySQL] - MySQL LIMIT를 사용하여 페이징쿼리를 동작시켜보자


2014/08/15 - [DB/MSSQL] - MS-SQL 2005 이상 row_number() over(order by 정렬조건) 을 이용하여 페이징쿼리를 동작시켜보자



이번에는 ORACLE의  rownum 을 이용하여 페이징 처리를 다루도록 보도록 하자



1.  create table 생성

CREATE TABLE PAGE_TABLE (
	"IDX" NUMBER,
 	"TITLE" VARCHAR2(100),
 	"CONTENT" VARCHAR2(200)
) 

2. 가상의 데이터 IMPORT


page_table_data.sql



그렇다면 이제 페이징 테스트를 해보도록 하겠음.

각 페이징 처리를 할때마다 20개씩 출력해보도록 하겠다.


쿼리는 다음과 같다.

-- 1페이지 
select *
from (SELECT *
		FROM (
  			SELECT rownum rnum,idx,title,content
    		FROM page_table
			) pagetable
		where rnum <= 20
	)
where rnum >= 1;
-- 2페이지
select *
from (SELECT *
		FROM (
  			SELECT rownum rnum,idx,title,content
    		FROM page_table
			) pagetable
		where rnum <= 40
	)
where rnum >= 21;
.
.
.
-- 5페이지
select *
from (SELECT *
		FROM (
  			SELECT rownum rnum,idx,title,content
    		FROM page_table
			) pagetable
		where rnum <= 100
	)
where rnum >= 81;

3, 실 행 하 기

1페이지





2페이지





5페이지









ROWNUM


쉽게 생각해서 테이블 데이터아 rownum이라는 컬럼을 추가해서 1부터 출력된 테이블의 갯수를 

순차적으로 증가 시켜주는거라고 생각하면 될것이다.



슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시 비영리 변경금지 (새창열림)

'DB > Oracle' 카테고리의 다른 글

Oracle - if ~ else 조건문 사용하기 : DECODE  (0) 2014.08.24
오라클 - 널체크(NVL 사용하기)  (0) 2014.08.23
오라클(Oracle) 데이터를 일괄로 다른테이블에 INSERT 하기 (INSERT INTO ... SELECT ... FROM ...)  (2) 2014.08.13
오라클 계층형 트리구조 쿼리 (재귀호출) - START WITH .. CONNECT BY PRIOR  (0) 2014.08.12
오라클(Oracle) sequence 생성, 등록, 최종 시퀀스값 조회하기  (2) 2014.08.11
/146
2014. 8. 15. 18:07
MS-SQL 2005 이상 row_number() over(order by 정렬조건) 을 이용하여 페이징쿼리를 동작시켜보자


2014/08/15 - [DB/MySQL] - MySQL LIMIT를 사용하여 페이징쿼리를 동작시켜보자


2014/08/15 - [DB/Oracle] - ORACLE 오라클 rownum을 이용하여 페이징 처리하기



이번에는 MS-SQL 2005버전 이상부터 지원을 하는 ROW_NUMBER() OVER(ORDER BY 정렬조건) 을 이용하여 페이징 처리를 다루도록 해보겠음.


MS-SQL 2000 버전에는 TOP을 이용하여 페이징 처리를 하였는데 이부분은 페이지가 뒤로 가면 갈수록 

느려지는 단점이 있다.

2005부터 ROW_NUMBER를 제공하기 시작했는데 ORACLE만큼 페이징이 편해졌다.

역시 샘플 데이터를 기준으로 설명하도록 하겠음.


1.  create table 생성

create table page_table (  
  [idx] bigint  NULL ,  
  [title] varchar(100)  NULL ,  
  [conetnt] varchar(200)  NULL 
);  

2. 가상의 데이터 IMPORT


page_table_data.sql




구조 및 가상의 데이터는 이전에 포스팅한 mysql 페이징과 같다

그렇다면 이제 페이징 테스트를 해보도록 하겠음.

각 페이징 처리를 할때마다 20개씩 출력해보도록 하겠다.


쿼리는 다음과 같다.

-- 1페이지
SELECT *
FROM (
  SELECT row_number() over(order by idx) rownum,*
    FROM page_table
) pagetable
where rownum between 1 and 20
-- 2페이지
SELECT *
FROM (
  SELECT row_number() over(order by idx) rownum,*
    FROM page_table
) pagetable
where rownum between 21 and 40
.
.
-- 5페이지
SELECT *
FROM (
  SELECT row_number() over(order by idx) rownum,*
    FROM page_table
) pagetable
where rownum between 81 and 100
-- 존재하지 않는 6페이지
SELECT *
FROM (
  SELECT row_number() over(order by idx) rownum,*
    FROM page_table
) pagetable
where rownum between 101 and 120

3, 실 행 하 기

1페이지



2페이지



5페이지



존재하지 않는 6페이지



ROW_NUMBER() OVER (ORDER BY ... )

쉽게 생각해서 테이블 데이터아 rownum이라는 컬럼을 추가해서 1부터 출력된 테이블의 갯수를 

순차적으로 증가 시켜주는거라고 생각하면 될것이다.

WHERE 절에 

where rownum컬럼 between start and end

라는 조건을 주어서 시작ROWNUM ~ 마지막으로 출력하고자하는 ROWNUM

을 데이터에 출력을 하는것이다.

물론 BETWEEN으로 안하고 

>=  AND <=  

이와같은 문법을 이용하여 페이징 처리를 해주어도 무관함.

마지막 존재하지 않는 6페이지일경우는 그냥 한번 출력해보았음.


슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시 비영리 변경금지 (새창열림)

'DB > MSSQL' 카테고리의 다른 글

MS-SQL - 널체크(ISNULL 사용하기)  (0) 2014.08.23
MS-SQL SELECT 쿼리로 다른 테이블로 INSERT (INSERT SELECT FROM , SELECT INTO FROM)  (1) 2014.08.13
MS-SQL 계층형 트리구조 쿼리 (재귀호출) - with ...(col 1, col 2 ...,col n) as ... union .  (2) 2014.08.12
MS-SQL 시퀀스 identity 생성 및 초기화하기  (0) 2014.08.11
/145
2014. 8. 15. 17:20
MySQL LIMIT를 사용하여 페이징쿼리를 동작시켜보자


2014/08/15 - [DB/MSSQL] - MS-SQL 2005 이상 row_number() over(order by 정렬조건) 을 이용하여 페이징쿼리를 동작시켜보자


2014/08/15 - [DB/Oracle] - ORACLE 오라클 rownum을 이용하여 페이징 처리하기



mysql의 경우는 limit를이용하여 페이징을 처리 한다.느낌표


샘플 데이터를 기준으로 설명하도록 하겠음.


1.  create table 생성

CREATE TABLE `page_table` (
  `idx` bigint(20) DEFAULT NULL,
  `title` varchar(100) DEFAULT NULL,
  `content` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

2. 가상의 데이터 IMPORT


page_table_data.sql


가상의 데이터를 100개를 생성하여 page_table에 IMPORT 하였다.

그렇다면 이제 페이징 테스트를 해보도록 하겠음.

각 페이지마다 데이터 20개씩 출력해보도록 하겠다.


쿼리는 다음과 같다.

-- 1페이지
SELECT * 
FROM page_table
LIMIT 0, 20;
-- 2페이지
SELECT * 
FROM page_table
LIMIT 20, 20;
-- 3페이지
SELECT * 
FROM page_table
LIMIT 40, 20;
-- 4페이지
SELECT * 
FROM page_table
LIMIT 60, 20;
-- 5페이지
SELECT * 
FROM page_table
LIMIT 80, 20;
-- 6페이지
SELECT * 
FROM page_table
LIMIT 100, 20;


3, 실 행 하 기



1페이지



2페이지


3페이지


4페이지


5페이지


6페이지



LIMIT 사용법


SELECT [col1,col2...col n]
FROM table명
WHERE[AND] 조건절....
LIMIT 인덱스 값(0부터 시작) , 한번에 출력할 수 


※ 상단 SELECT쿼리를 실행한 화면을  보면 마지막 6페이지는 나오지 않을것이다.

    이유 - 전체 데이터의 마지막 인덱스 값이 99인대 100부터 20개를 출력하겠다라고 하였으니 

             나오지 않는것 슬퍼2



슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시 비영리 변경금지 (새창열림)

'DB > MySQL' 카테고리의 다른 글

MySQL - if ~ else 조건문 사용하기 : if  (0) 2014.08.24
MySQL - 널체크(IFNULL 사용하기)  (0) 2014.08.23
MySQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...)  (0) 2014.08.12
MySQL 인코딩 UTF-8 설정하기 [한글깨짐문제 해결]  (7) 2014.08.12
MySQL 시퀀스 auto_increment 생성 및 초기화하기  (0) 2014.08.11
이전 1 2 3 4 5 6 다음

티스토리툴바