2009년 5월 27일 수요일

[MYSQL] ※ 이미 생성된 테이블에 PK 및 FK 제약조건 추가하기

 

※ 이미 생성된 테이블에 PK 제약조건 추가하기


ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건이름] PRIMARY KEY(컬럼명);


EX) ALTER TABLE product ADD CONSTRAINT product_pdcode_pk PRIMARY KEY(pdcode);

product 라는 테이블에 product_pdcode_pk 라는 이름을 가진 PK 제약조건을 추가한다.


※ 이미 생성된 테이블에 FK 제약조건 추가하기


ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건이름] FOREIGN KEY(컬럼명)

REFERENCES [부모테이블명](PK컬럼명) [ON DELETE CASCADE];


EX)
ALTER TABLE category ADD CONSTRAINT category_pcode_fk FOREIGN KEY(pcode)
REFERENCES product(pdcode) ON DELETE CASCADE;


※ 제약조건의 삭제


ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건이름];


EX) ALTER TABLE product DROP CONSTRAINT product_pcode_fk;

제약조건을 삭제할 경우에는 FK 제약조건부터 먼저 삭제해준다.


※ NOT NULL 제약조건의 추가


ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입] CONSTRAINT [제약조건이름]

NOT NULL;


EX) ALTER TABLE product MODIFY pname varchar2(20) CONSTRAINT product_pname_nn

EX) NOT NULL;

[MYSQL] 펌 - Foreign key 예제



 

MySQL foreign key 예제


a_tbl, b_tbl 두개의 테이블이 있다고 하자



 create table a_tbl(

 user_id varchar(10) not null default'',

 user_name varchar(30) not null default'',

 primary key(`user_id`)

 ) engine=innodb;





 create table b_tbl(

 user_id varchar(10) not null,

 user_tel varchar(15) not null,

 primary key(`user_id`),

 constraint fk_user_id       -- 제약조건명 : fk_user_id

 foreign key (`user_id`)     -- 테이블의 필드(user_id)가 foreign key

 references a_tbl(`user_id`) -- 테이블(a_tbl)의 필드(user_id)를 참조 

 on delete cascade           -- 참조키가 삭제되면 foreign key도 삭제

 on update cascade           -- 참조키가 업데이트되면 foreign key도 업데이트

 ) engine=innodb;


 CASCADE : 참조키가 삭제되거나 업데이트 되면 동일하게 foreign key도 동일하게 맞춤.

 RESTRICT : 참조키 변경(삭제 혹은 업데이트)되는 것을 방지함.

 SET NULL : 참조키에 변경(삭제 혹은 업데이트) 되면 foreign key 값을 null 로 저장.

 NO ACTION : 참조키에 변경(삭제 혹은 업데이트) 되어도 아무런 동작을 하지 않음.(foreign key의 이미 없음)


 각 테이블에 데이터 입력를 입력하자.



 insert into a_tbl values('happy','hong gil dong');

 insert into a_tbl values('appleman','lee soon shin');

 insert into a_tbl values('keeper','lee myoung park');


+----------+-----------------+

| user_id  | user_name       |

+----------+-----------------+

| appleman | lee soon shin   |

| happy    | hong gil dong   |

| keeper   | lee myoung park |

+----------+-----------------+

3 rows in set (0.00 sec)





 insert into b_tbl values('happy','010-1234-5678');

 insert into b_tbl values('appleman','011-4321-8765');

 insert into b_tbl values('keeper','016-9876-5432');


+----------+---------------+

| user_id  | user_tel      |

+----------+---------------+

| appleman | 011-4321-8765 |

| happy    | 010-1234-5678 |

| keeper   | 016-9876-5432 |

+----------+---------------+

3 rows in set (0.00 sec)




 각 두테이블을 조인하자.


 mysql> select a.user_id, b.user_id, a.user_name, b.user_tel from a_tbl a join b_tbl b where a.user_id=b.user_id;

+----------+----------+-----------------+---------------+

| user_id  | user_id  | user_name       | user_tel      |

+----------+----------+-----------------+---------------+

| appleman | appleman | lee soon shin   | 011-4321-8765 |

| happy    | happy    | hong gil dong   | 010-1234-5678 |

| keeper   | keeper   | lee myoung park | 016-9876-5432 |

+----------+----------+-----------------+---------------+


참조키를 업데이트한 후에 확인하자.



 mysql> update a_tbl set user_id='sadman' where user_id='happy';

 Query OK, 1 row affected (0.00 sec)

 Rows matched: 1  Changed: 1  Warnings: 0


mysql> select a.user_id, b.user_id, a.user_name, b.user_tel from a_tbl a join b_tbl b where a.user_id=b.user_id;

+----------+----------+-----------------+---------------+

| user_id  | user_id  | user_name       | user_tel      |

+----------+----------+-----------------+---------------+

| appleman | appleman | lee soon shin   | 011-4321-8765 |

| keeper   | keeper   | lee myoung park | 016-9876-5432 |

| sadman   | sadman   | hong gil dong   | 010-1234-5678 |

+----------+----------+-----------------+---------------+

3 rows in set (0.00 sec)


= 출처 =

운영자 : 김두형(www.sunmysql.co.kr)

email : beansoft@nate.com

업데이트 : 20080923

2009년 5월 19일 화요일

구글 애드센스 태그 정리

-텍스트광고-
<table width="620" height="272" border="0" cellspacing="0" cellpadding="0" align="center" style="border:1px #DDDDDD solid;">
 <tr>
  <td width="310" style="border-right:1px #DDDDDD solid;" bgcolor="white">
   <SCRIPT type="text/javascript"><!--
   google_ad_client = "pub-3906302701292919";
   /* 300x250, 작성됨 09. 7. 11 */
   google_ad_slot = "1977797762";
   google_ad_width = 300;
   google_ad_height = 250;
   //-->
   </SCRIPT>
 
   <SCRIPT type=text/javascript src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
   </SCRIPT>
  </td>
  <td width="310" bgcolor="white">
   <script type="text/javascript"><!--
   google_ad_client = "pub-3906302701292919";
   /* 300x250, 작성됨 09. 7. 11 */
   google_ad_slot = "2044473912";
   google_ad_width = 300;
   google_ad_height = 250;
   //-->
   </script>
   <script type="text/javascript"
   src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
   </script>
  </td>
 </tr>
</table><br><br>

[즐겨찾기] Google ( 구글 ) 관련 서비스 페이지 정리


=구글 서브버전 레포지터리=
소스 코드를 버전별로 관리할 수 있도록 계정공간과 이슈, 등등을 관리할 수 있는 페이지를 제공한다.
http://code.google.com/hosting/

=구글 애드센스=
자신의 블로그 및 홈페이지에 구글에서 발행하는 광고를 설치하여 수익을 올릴 수 있다.
승인심사 필요
https://www.google.com/adsense/

[뉴스] 펌 - 중국의 얼짱 미소녀 해커...


▲ 중국의 한 미녀 해커(닉네임 YingCracker)가 인터넷을 후끈 달구고 있다.

업계에서 뛰어난 실력을 인정받고 있는 그녀는 중국의 유명 메신저인 'QQ' 의 패스워드 해독 프로그램 개발을 했고, 강단에서 해킹 기술에 관한 강연을 하며 15000위엔(약 280만원)정도의 월수입을 올리고 있는 것으로 알려졌다.

남성적 이미지가 강한 '해커'라는 직종의 통념을 깼다는 평이 크나, 그녀의 귀엽고 부드러운 이미지 뒤에 숨겨진 카리스마가 있었기에 업계 최고의 자리에 오를 수 있었다는 분석이다. (사진=YingCracker의 블로그 캡쳐화면)
 출처 : 조선닷컴 미디어1팀 정현상 기자

p.s
QQ 라는 프로그램... PC방 알바할때나 혹은 예전에 친구들과 PC방에 갔을때 QQ라는 짱개 메신저가
설치되어있는 것을 본적이 있다... 그것의 암호해독 프로그램을 직접 만들질 않나...
해킹실력도 수준급... 거기에 강연까지... 정말 여자로서는 컴퓨터쪽을 좋아하기가 쉽지 않은데...
연약하고 순수해보이는 저 미소녀가;;; 해킹의 세계에서 수준급의 실력을 보여준다니...
믿기 힘들다... 제길... 난 여태것 뭐한거냐... 저런 어린 미소녀 해커가 수준급에 돈도 저렇게 버는데...
난 뭐한거지 -_-; 하아... 저런 여친 있음 참 행복할텐데... 하아...
해킹쪽도 섭렵해서 빨리 내것으로 만들어야할텐데...
웹프로그래밍 제대로 하는 것만도 빡센데... 언제쯤... 내 꿈을 이룰수 있을까...

2009년 5월 16일 토요일

[일상] 마비노기 영웅전 2차 클로즈 베타 테스터 당첨

사용자 삽입 이미지
마비노기 영웅전 1차 클로즈 베타 테스트에 떨어져서...
2차에 지원...
경쟁률이 꽤 센 것으로 알고 있다...
그 경쟁률속에 드디어 뽑힌것이다...
이 얼마나 역사적인 ㅠㅠ
근데... 넥슨은 참 지랄맞게...
닉넴 루카엘로 설정했었는데... 어느순간 FSXL이라는게 붙어있다... 뭥미...
게다가 아뒤를 지우고 새로 가입하지 않는한 저 닉넴은 바꿀 수 없다... OTL
어처구니가 없다...
19일날부터 리뷰 남겨야지 ㅠㅠ

[MYSQL] 컬럼 순서 바꾸기



alter table 테이블명 add 컬럼명 type명 after 위치할컬럼명;
이렇게 하면 위치할컬럼명 밑에 컬럼명이 위치됩니다

alter table 테이블명 modify 컬럼명 type명 after 위치할컬럼명;
이것은 기존 컬럼명 위치를 수정할때 쓰는 방식..