간단한 페이징 MY-SQL.
value 는 시작 숫자와 와 가져올 숫자
예들 들어
SELECT * FROM bbs LIMIT 10, 10;
이렇게 하게 되면
결과중에서 10번째 부터 10개 가져온다.
다음 페이징을 할 경우 LIMIT 20, 10 이렇게 하면 20번째 부터 가지고 오게된다.
이것을 응용해서 티 스토리 페이징 처럼 구현 할것~!
Returning TOP N Records
http://www.petefreitag.com/item/59.cfm
위의 블로그에서 퍼온 글.
최근 게시물 뽑아올 때 유용.
Returning only the first N records in a SQL query differs quite a bit between database platforms. Here's some samples:
Microsoft SQL Server
SELECT TOP 10 column FROM table
PostgreSQL and MySQL
SELECT column FROM table
LIMIT 10
Oracle
SELECT column FROM table
WHERE ROWNUM <= 10
Sybase
SET rowcount 10
SELECT column FROM table
Firebird
SELECT FIRST 10 column
FROM table
Due to these differences if you want to keep your code database independent you should use the maxrows
attribute in the cfquery
tag in ColdFusion. The tradeoffs to database independance is
performance, I would expect maxrows to be slower than specifying the
rows in the SQL.
<cfquery datasource="#ds#" maxrows="10">
SELECT column FROM table
</cfquery>
PostgreSQL and MySQL have a cool feature that will let you return an arbitrary range of rows (eg return rows 10-20). This is very handy for displaying pages of records:
SELECT column FROM table
LIMIT 10 OFFSET 20
The above query will return rows 20-30
데이터의 변화가 발생했을 때 자동으로 INSERT,UPDATE,DELETE문이
자동으로 실행되는 아주 특별한 종류의 스토어드 프로시저이다.
◈ 트리거는 자기가 종속된 특정 테이블에서 데이터의 변화가 발생했을때
자동으로 생행되는 아주 특별한 종류의 stored procedure이다.
원 래 트리거는 총에서 방아쇠를 의미한다. 하지만 RDBMS에서 트리거는 방아쇠를 당기면 총알이 나가듯이, 어떤 테이블의 데이터가 INSERT, UPDATE 또는 DELETE 문을 만나 변화가 생길때 자동으로 실행되게끔 정의해 놓은 Transact-SQL 문들의 집합이라고 볼수있다.
원본 글 : http://kin.naver.com/detail/detail.php?d1id=1&dir_id=101&eid=CFcsBqWRgEkc5pllLpdodkL8g1DqiWxk&qb=taXAzMXNuqPAzL26IMauuK6wxSDBpMDH
음.. 이건 약간 디비 관련..에 좀 깊은 =ㅂ =....
9월달쯤에 mysql책 한권 사서 봐야겠다. =ㅂ =..
이런건 DBA에게 시키라고!!
클러스트 인덱스, 넌 클러스트 인덱스
산소나무님 블로그에서 펌.
http://o2tree.tistory.com/16?srchid=BR1http%3A%2F%2Fo2tree.tistory.com%2F16
이스트소프트 필기시험에 나왔던 것.
이렇게 보고 나니.. 책에서 봤던거 같다 -_-..
젝일 답은 대충 찍어서 분산환경 어쩌구 써놨는데.. 아 창피해 -_ㅠ
클러스터 인덱스(Clustered Index)
테이블에 PK를 생성할 경우 클러스터 인덱스가 없고 PK를 위한 인덱스가 넌클러스터 인덱스라고 명시적으로 하지 않으면 SQL Server가 알아서 PK에 클러스트 인덱스를 작성한다.
PK는 Null을 가질수 없으며, Unique는 하나의 Null값을 가질 수 있다.
보통 일치하는 값을 찾는데 PK가 사용되고 그 이외의 컬럼에 범위검색이 자주 사용된다면 PK에 넌클러스터 인덱스를 사용한다.
넌클러스터 인덱스(Non-Clustered Index)
풀텍스트 인덱스 Full-Text Index
char, varchar 컬럼에만 생성 가능 / 테이블에 하나만 생성 가능 / B-트리 인덱스와 달리 자동으로 갱신되지 않는다 / 단어 또는 구(Phrases)검색 / 단일 단어 또는 단어의 그룹에 대한 검색 / 유사한 단어 검색
[iBatis] like 사용하기
아..스트럿츠2 + 아이바티스 개발중..아니 공부중 =ㅁ=
==============================================================================================
iBatis를 사용하다 보니 또하나의 문제에 봉착했다.. LIKE 검색의 %기호를 인식하지 못하는 것이었다.
구글신에게 검색해 보고 다음과 같은 해결책을 얻을 수 있었다.
MySQL :
SELECT * FROM tbl_name WHERE column_name LIKE "%$username$%"
ORACLE :
SELECT * FROM tbl_name WHERE column_name LIKE '%' || #username# || '%'
SYBASE/SQL SERVER
SELECT * from tbl_name WHERE column_name LIKE '%' + #username# + '%'
여기서 변수명을 #로 둘러싸는 것과 $로 둘러싸는것의 차이점을 알 필요가 있다.
#의 경우에는 Prepare Statement로 등록이 된다. 디버그를 찍어봐도 ?로 치환된 이후 값이 대입된다.
하지만 $의 경우 바로 값이 치환된다. 특정 변수가 바로 DB에 입력되므로 보안에 좀더 신경을 써야 할것으로 생각된다.
컬럼명 바꾸는 명령.
EXEC SP_RENAME '테이블명.[수정할컬럼명]', '수정될 이름', 'COLUMN'
실행 시켰을 시
"주의: 개체 이름 부분을 변경하면 스크립트 및 저장 프로시저를 손상시킬 수 있습니다."
2-2)컬럼 타입 변경
age 칼럼을 int에서 varchar(3)으로 변경
alter table abc alter column age varchar(3)
b) age칼럼을 varchar(3)에서 int not null로 변경
alter table abc alter column age int not null
2-3)칼럼, 제약 제거
alter table abc drop constraint df_addr
b) alter table abc drop constraint df_addr
b) addr칼럼 varchar(10)에서 nvarchar(10)으로 변경가능
alter talbe abc alter column addr nvarchar(10) not null
c)addr칼럼 제거
alter table abc drop column addr