20201112

phj
박현정 (토론 | 기여)님의 2020년 11월 15일 (일) 11:27 판 (새 문서: *use s_phj s_phj 데이터베이스를 이용한다: *select * from sys.tables / 데이터베이스안의 모든 테이블을 보여준다. *select * from Class2020.dbo.xmltabl...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색
  • use s_phj /* s_phj 데이터베이스를 이용한다*/
  • select * from sys.tables / 데이터베이스안의 모든 테이블을 보여준다.
  • select * from Class2020.dbo.xmltable1 / class2020의 xml타입 데이터를 포함하는 데이터베이스 테이블을 조회
  • select * into xmltable1 from Class2020.dbo.xmltable / class2020의 xmltable의 내용을 xmltable1에 넣어준다.
  • select * into xmltable2 from xmltable1 / xmltable1의 내용을 xmltable2에 넣어준다.
  • select * from xmltable2

select xmltxt.query('/인물정보/표제/이름') from xmltable2

select xmltxt.value('(/인물정보/표제/이름)[1]', 'nvarchar(20)') from xmltable2 select xmltxt.value('(/인물정보/표제/이름)[2]', 'nvarchar(20)') from xmltable2 select xmltxt.value('(/인물정보/표제/이름)[3]', 'nvarchar(20)') from xmltable2

select xmltxt.value('(//./@id)[1]', 'nvarchar(20)') from xmltable2

update xmltable2 set id=xmltxt.value('(//./@id)[1]', 'nvarchar(20)')

select * from xmltable2

delete xmltable2 where id is null

drop table xmltable3

use master

create table xmltable3 ( id nvarchar(20) not null, xmltxt xml, primary key(id) )

select * from xmltable3

create trigger xmltable3getid on xmltable3 instead of insert as insert into xmltable3(id, xmltxt) select this.xmltxt.value('(//./@id)[1]', 'nvarchar(20)') as id, this.xmltxt as xmltxt from inserted this

select * from xmltable2

insert into xmltable3 (xmltxt) values (N'<인물정보 id="인물-최무선">

 <표제>
   <이름 표기="국문">최무선</이름>
   <이름 표기="한자">崔茂宣</이름>
   <이름 표기="영문">Choi Mu-Seon</이름>
 </표제>
 <범주>
   <프로젝트>민족기록화</프로젝트>
   <클래스>인물</클래스>
   <기여 역할="작성">김지선</기여>
 </범주>
 <속성 틀="인물정보">
   <시대>고려</시대>
   <성격>발명가</성격>
   <성별>남자</성별>
   <본관>영주(永州: 현재의 영천)</본관>
   <생몰년>1325(충숙왕 12)~1395(태조 4)</생몰년>
 </속성>
 <설명>
   <문단>우리나라에서 화약과 화약을 이용한 무기를 처음 제작, 사용하였다. 무관인 그는 고려 말기에 한창 기승을 부리던 왜구를 물리치기 위해서는 화약(火藥)이 필요하다고 생각해 <지명>중국</지명> 사람들의 왕래가 잦은 무역항 <지명>벽란도</지명>에 가서 <지명>중국</지명><지명>강남</지명> 지역에서 온 상인들에게서 정보를 수소문했다. 그리고 <인명 id="인물-이원">이원(李元)</인명>이라는 상인에게서 화약을 만드는 데 필수적인 <개념 url="http://terms.naver.com/entry.nhn?docId=102665&cid=41826&categoryId=41826">염초(焰硝)</개념> 제조법을 배워 화약 개발에 성공했다.</문단>
   <문단>그 뒤 <인명>최무선</인명>은 여러 차례 조정에 건의해 1377년(<인명>우왕</인명> 3)에 <개념 id="개념-화통도감">화통도감(火筒都監)</개념> 설치를 이끌어냈으며, 우리나라에서 화약과 화약무기에 대한 본격적인 연구를 시작하였다.</문단>
   <문단>이처럼 화약과 화기 제작을 주도한 <인명>최무선</인명>은 1380년(<인명>우왕</인명> 6)에 왜구가 <지명>금강</지명> 하구의 <지명 id="공간-진포">진포</지명>로 쳐들어오자 부원수(副元帥)로 임명되어 상원수(上元帥) <인명 id="인물-나세">나세(羅世)</인명>와 함께 각종 화기로 무장한 전함을 이끌고 나아가 싸워 격파시키는 큰 공을 세웠다. 1383년(<인명>우왕</인명> 9)에도 <사건 url="http://encykorea.aks.ac.kr/Contents/Index?contents_id=E0004988">관음포대첩</사건>에서 왜구를 물리치는 데 공을 세웠으며, 1389년(<인명>창왕</인명> 2)에는 <인명>박위(朴葳)</인명>와 함께 <사건>쓰시마 정벌</사건>에도 참여했다.</문단>
   <문단>
     <인명>최무선</인명>이 개발한 화기를 사용하면서 <개념>고려</개념>는 왜구와의 해전에서 승리할 수 있었으며, 화기를 해안 지역에 배치하면서 왜구의 침입에 대한 방어체제도 정비하였다. 이러한 공으로 고려에서는 지문하부사(知門下府事)라는 벼슬까지 올랐으며, 조선 초에는 나이가 많아 등용되지는 못하였으나, 죽은 후에 그의 공을 생각하여 의정부 우정승(議政府右政丞)과 영성부원군(永城府院君)으로 추증되었다.</문단>
   <문단>아들 <인명 id="인물-최해산">최해산</인명>과 손자 <인명>최공손</인명>도 화약과 화기 연구에 참여하였으며, 저서로는 화약의 제조법과 <개념 url="http://terms.naver.com/entry.nhn?docId=102665&cid=41826&categoryId=41826">염초(焰硝)</개념>의 채취 방법 등을 기술한 <서명>《화약수련법》</서명>을 남겼으나 전하지 않고 있다.</문단>
 </설명>
 <가족정보>
   <가족 관계="아들">
     <인명 id="인물-최해산">최해산</인명>
   </가족>
 </가족정보>
 <관련인물정보>
   <관계자>
     <대상>
       <인명 id="인물-이원">이원</인명>
     </대상>
     <관계>원(元)나라 상인으로, <인명>최무선</인명>에게 염초(焰硝) 제조법을 알려줌</관계>
   </관계자>
   <관계자>
     <대상>
       <인명 id="인물-나세">나세</인명>
     </대상>
     <관계>원나라 귀화인으로, <인명>최무선</인명>, <인명 id="인물-심덕부">심덕부</인명>와 함께 <사건 id="진포대첩">진포대첩</사건>을 이끔</관계>
   </관계자>
   <관계자>
     <대상>
       <인명 id="인물-심덕부">심덕부</인명>
     </대상>
     <관계>
       <인명>최무선</인명>, <인명 id="인물-나세">나세</인명>와 함께 <사건 id="사건-진포대첩">진포대첩</사건>을 이끔</관계>
   </관계자>
 </관련인물정보>
 <관련사물정보>
   <저작>
     <개념 id="개념-화포">화포</개념>
     <사진 url="화포" />
   </저작>
   <저작>
     <개념 id="개념-화전">화전</개념>
     <사진 url="화전" />
   </저작>
   <저작>
     <개념 id="개념-주화">주화</개념>
     <사진 url="주화" />
   </저작>
   <저작>
     <개념 id="개념-대장군포">대장군포</개념>
     <사진 url="대장군포" />
   </저작>
   <저작>
     <개념 id="개념-피령전">피령전</개념>
     <사진 url="피령전" />
   </저작>
   <저작>
     <서명>《화약수련법》</서명>
     <사진 url="화약수련법" />
   </저작>
 </관련사물정보>
 <온라인참조 url="http://encykorea.aks.ac.kr/Contents/Index?contents_id=E0057297">(출처: 최무선, ≪한국민족문화대백과사전≫)</온라인참조>
 <온라인참조 url="http://www.doopedia.co.kr/doopedia/master/master.do?_method=view&MAS_IDX=101013000741256">(출처: 최무선, ≪두산백과≫)</온라인참조>
 <시각>
   <삽도 url="최무선.jpg">최무선 영정</삽도>
 </시각>
 <연관>
   <관련항목 rel="~에 그려졌다" id="작품-화포와화약을제조하는최무선" />
   <관련항목 rel="~에게 배웠다" id="인물-이원" />
   <관련항목 rel="~의 아버지다" id="인물-최해산" />
   <관련항목 rel="~와 관련된다" id="인물-나세" />
   <관련항목 rel="~와 관련된다" id="인물-심덕부" />
   <관련항목 rel="~에 의해 찬양되었다" id="인물-권근" />
   <관련항목 rel="~에서 활동하였다" id="개념-화통도감" />
   <관련항목 rel="~를 제조했다" id="개념-화포" />
   <관련항목 rel="~을 제조했다" id="개념-화전" />
   <관련항목 rel="~를 제조했다" id="개념-주화" />
   <관련항목 rel="~를 제조했다" id="개념-대장군포" />
   <관련항목 rel="~을 제조했다" id="개념-피령전" />
   <관련항목 rel="~을 지휘하였다" id="사건-진포대첩" />
   <관련항목 rel="~에 기록되어 있다" id="기록물-고려사" />
   <관련항목 rel="~에 기록되어 있다" id="기록물-신증동국여지승람" />
   <관련항목 rel="~에 기록되어 있다" id="기록물-조선왕조실록" />
   <관련항목 rel="~에 기록되어 있다" id="기록물-양촌집" />
   <관련항목 rel="~의 소재이다" id="기록물-최무선" />
   <관련항목 rel="~의 소재이다" id="개념-드라마예성강" />
   <관련항목 rel="~와 관련된다" id="개념-최무선장군추모비" />
   <관련항목 rel="~와 관련된다" id="개념-최무선장군추모제" />
 </연관>

</인물정보>')

select * from xmltable3

delete xmltable3

insert into xmltable3(xmltxt) select xmltxt from xmltable1 --PRIMARY KEY 제약 조건 .... 개체 'dbo.xmltable3'에 중복 키를 삽입할 수 없습니다.

select id from xmltable2

select distinct id from xmltable2

select id, count(*) from xmltable2 group by id order by count(*) desc

/* 중복 record 개념-최무선장군추모제 개념-화포 문헌-조선왕조실록 개념-화전

  • /

insert into xmltable3(xmltxt) select xmltxt from xmltable2 where id not in ( '개념-최무선장군추모제', '문헌-조선왕조실록', '개념-화포', '개념-화전' )

select * from xmltable3

select top 1 * from xmltable2 where id='개념-최무선장군추모제'

insert into xmltable3(xmltxt) select top 1 xmltxt from xmltable2 where id='개념-최무선장군추모제'

insert into xmltable3(xmltxt) select top 1 xmltxt from xmltable2 where id='문헌-조선왕조실록'

insert into xmltable3(xmltxt) select top 1 xmltxt from xmltable2 where id='개념-화포'

insert into xmltable3(xmltxt) select top 1 xmltxt from xmltable2 where id='개념-화전'

select * from xmltable3

select xmltxt from xmltable3 where id='작가-강학태'

update xmltable3 set xmltxt=N'<작가정보 id="작가-강학태"><기본사항><명칭><이름 표기="한글">강학태</이름></명칭><분야>서양화가</분야><생몰년><출생>1935년</출생></생몰년><생몰지><출생지>함경북도 청진시</출생지></생몰지><사진><시각 id="강학태.jpg" /></사진></기본사항><범주><프로젝트>민족기록화</프로젝트><클래스>작가</클래스><기여 역할="작성">김지선</기여></범주><설명><문단>소설가 <인명>강학태</인명>는 1935년에 <지명>함북</지명><지명>청진</지명>에서 태어났다. 어린 시절 한때 <지명>만주</지명>에서 살다가 해방과 함께 고향으로 돌아왔다. <기관>김일성 종합대학</기관> 외국문학부 중국어과를 졸업한 후 <서명>《청년문학》</서명> 편집에 종사한 바 있다고 전해진다.</문단><문단><인명>강학태</인명>는 <서명>『높새바람』</서명>, <서명>『황진이』</서명>등을 발표한 <인명>홍석중</인명>과 더불어 역사소설의 대가로 꼽힌다.</문단></설명><이력사항><학력정보><학력>김일성종합대학 외국문학부 중국어과</학력></학력정보><저서정보><저서 연도="1968">시 삼덕땅에서 타오르는 홰불</저서><저서 연도="1971">단편소설 바다의 젊은이들</저서><저서 연도="1971">단편소설 동이 터온다</저서><저서 연도="1972">단편소설 길</저서><저서 연도="1979">단편소설 공장의 주인공</저서><저서 연도="1980">단편소설 고구려사신</저서><저서 연도="1981">수필 혈맥은 이어져야 한다</저서><저서 연도="1987">역사소설 김정호</저서><저서 연도="1991">단편소설 사랑과 길</저서><저서 연도="1994">장편소설 민족의 어버이</저서><저서 연도="2000">역사소설 <서명 id="기록물-최무선">최무선</서명></저서></저서정보></이력사항><작품정보><작품 id="소설최무선.jpg">최무선</작품><작품 id="소설김정호.jpg">김정호</작품><작품 id="소설대동여지도.jpg">대동여지도</작품></작품정보><연관><관련항목 rel="~을 저술했다" id="기록물-최무선" /></연관></작가정보>' where id='작가-강학태'

select xmltxt from xmltable3 where id='작가-최대섭'

select xmltxt.query('/작가정보') from xmltable3 where id='작가-최대섭'

update xmltable3 set xmltxt=xmltxt.query('/작가정보') where id='작가-최대섭'

select * from xmltable3