use s_phj
/*필요하다면 사전작업하기*/
drop table xmltable3 /*기존것 지워서 깨끗하게 만들어놓기*/
select * into xmltable3 from Class2020.dbo.xmltable3 /*class2020안의 xmltable3를 카피하기*/
/*~여기까지*/
select * from sys.views
select * from xmlmeta
select * from xmltable3
select id, xmltxt.query('//인명') from xmltable3
/* create keyword index view: 인명 */
/*19건중 인명이 103건. 한레코드에 한개의 줄로 보여주는게 아니라 xmltable3에 있는 xmltxt의 컬럼에 있는 인명 노드 하나하나를 레코드로 취급해가지고 적용해서 보여줘라*/
/*노드는? 나뭇가지의 결절 부분, 네트워크에서는 node노드(정보의 단위)와 노드 사이의 link링크로 연결*/
/*링크 대신에 edge를 미국에서 쓰기도 함*/
/*쿼리와 벨류는 사람에게 보여줌, 노드는 컴퓨터에게 줌*/
cross apply를 써서 이름기준으로 분배를 시킴.
select id, node.value('.', 'nvarchar(80)' ) as 인명 /*'.'.은 자기 자신*/
from xmltable3 CROSS APPLY xmltxt.nodes('//인명') as R(node) /*R(node)대신에 thisRow(thisColumn) select의 node대신에 thiscolumn을써도 됨*/
order by 인명
/*인명사전을 view로 만들어줌*/
create view xmltable3_인명 as
select id, node.value('.', 'nvarchar(80)' ) as 인명 /*'.'.은 자기 자신*/
from xmltable3 CROSS APPLY xmltxt.nodes('//인명') as R(node) /*R(node)대신에 thisRow(thisColumn) select의 node대신에 thiscolumn을써도 됨*/
select * from xmltable3_인명
select 인명, count(*) from xmltable3_인명
group by 인명
order by 인명
select 인명, id from xmltable3_인명
/*노드를 인명으로 하고, 노드의 값은 id로 뽑아내라*/
select id, node.value('.', 'nvarchar(80)' ) as 인명, node.value('./@id', 'nchar(80)' ) as 인명_id
from xmltable3 CROSS APPLY xmltxt.nodes('//인명') as R(node)
order by 인명_id
/*모든 지식을 data로 만들 수 있다(팀버나즈리 www창시자)*/
create view xmltable3_인명 as
select id, node.value('.', 'nchar(80)' ) as 인명, node.value('./@id', 'nchar(80)' ) as 인명_id
from xmltable3 CROSS APPLY xmltxt.nodes('//인명') as R(node)
select * from xmltable3_인명
select 인명_id, 인명, count(*) as 빈도
from xmltable3_인명
group by 인명_id, 인명
order by 인명_id
/*인명, 지명, 기관, 사건, 서명, 개념, 용어*/
/*cross apply 기사갯수만큼 row를 만들어내기 지명*/
select id, node.value('.', 'nvarchar(80)' ) as 지명, node.value('./@id', 'nchar(80)' ) as 지명_id
from xmltable3 CROSS APPLY xmltxt.nodes('//지명') as R(node)
order by 지명_id
create view xmltable3_지명 as
select id, node.value('.', 'nchar(80)' ) as 지명, node.value('./@id', 'nchar(80)' ) as 지명_id
from xmltable3 CROSS APPLY xmltxt.nodes('//지명') as R(node)
select * from xmltable3_지명
select 지명_id, 지명, count(*) as 빈도
from xmltable3_지명
group by 지명_id, 지명
order by 지명_id
- 서울역사편찬원
- 서울은 우리의 관심대상임은 분명/디지털 서울학 학술대회
- 포스트 모로나 사회, 디지털 서울학
/*숙제:인명, 지명, 기관, 사건, 서명, 개념, 용어 연습하기!*/
/*cross apply 기사갯수만큼 row를 만들어내기 지명*/
select id, node.value('.', 'nvarchar(80)' ) as 지명, node.value('./@id', 'nchar(80)' ) as 지명_id
from xmltable3 CROSS APPLY xmltxt.nodes('//지명') as R(node)
order by 지명_id
create view xmltable3_지명 as
select id, node.value('.', 'nchar(80)' ) as 지명, node.value('./@id', 'nchar(80)' ) as 지명_id
from xmltable3 CROSS APPLY xmltxt.nodes('//지명') as R(node)
select * from xmltable3_지명
select 지명_id, 지명, count(*) as 빈도
from xmltable3_지명
group by 지명_id, 지명
order by 지명_id
/*기관*/
select id, xmltxt.query('//기관') from xmltable3
create view xmltable3_기관 as
select id, node.value('.', 'nchar(80)' ) as 기관, node.value('./@id', 'nchar(80)' ) as 기관_id
from xmltable3 CROSS APPLY xmltxt.nodes('//기관') as R(node)
select * from xmltable3_기관
select 기관_id, 기관, count(*) as 빈도
from xmltable3_기관
group by 기관_id, 기관
order by 기관_id
/*사건*/
select id, xmltxt.query('//사건') from xmltable3
create view xmltable3_사건 as
select id, node.value('.','nchar(80)') as 사건, node.value('./@id','nchar(80)') as 사건_id
from xmltable3 cross apply xmltxt.nodes('//사건') as R(node)
select * from xmltable3_사건
select 사건_id, 사건, count(*) as 빈도
from xmltable3_사건
group by 사건_id, 사건
order by 사건_id
/*개념*/
select id , xmltxt.query('//개념') from xmltable3
create view xmltable3_개념 as
select id, node.value('.','nchar(80)') as 개념, node.value('./@id','nchar(80)') as 개념_id
from xmltable3 cross apply xmltxt.nodes('//개념') as R(node)
select * from xmltable3_개념
select 개념, 개념_id,count(*) as 빈도
from xmltable3_개념
group by 개념, 개념_id
order by 빈도,개념, 개념_id
/* 용어*/
select id, xmltxt.query('//용어') from xmltable3
create view xmltable3_용어 as
select id, node.value('.','nchar(80)') as 용어, node.value('./@id','nchar(80)') as 용어_id
from xmltable3 cross apply xmltxt.nodes('//개념') as R(node)
select * from xmltable3_용어
select 용어, 용어_id, count(*) as 빈도
from xmltable3_용어
group by 용어, 용어_id
order by 용어, 용어_id