SuperSQL SuperSQL 2014 6 26 1 SuperSQL ITC 2 SuperSQL 2.1 2.1.1 sh ( ) source /home/kyozai/toyama/bin/bash.sh 2.1.2 csh source /home/kyozai/toyama/bin/csh.sh 2.2 public html/ssql 1
2.3 ssqltool (3.1 ) postgresql (ua123456 ) itc.db.ics.keio.ac.jp /public html/ssql SuperSQL HTML /public html/ssql http://user.keio.ac.jp/ /ssql/xxxx.html URL ua012345 test.ssql ssql http://user.keio.ac.jp/ ua012345/ssql/test.html URL 3 3.1 ssqltool ua012345% ssqltool SuperSQL config.ssql log.txt( logs.txt) 2
Ctrl+Enter [ ] Esc or Ctrl+W ssqltool [ ] Ctrl+S [ ], Ctrl+Z UNDO [ ], [ ] Ctrl+Y REDO [ ], [ ] Ctrl+ - [ ] - Ctrl+D - [ ] - Ctrl+/ - [ ] - @ [ ] Ctrl+K [ ] Ctrl+H, [ ] Ctrl+F [ ] 3.2 ssql Putty ssqltool ua012345% ssql HTML /public html/ssql.ssql 4 SuperSQL SQL SELECT GENERATE< media >< T F E > GENERATE < media > HTML PDF Excel L A TEX HTML <TFE> Target Form Expression 4.1 (,) (!) (%) 3 3
(,) : Name, Tel name tel (!) : Name! Tel name tel (%) : Name % Tel name tel 4.2 ([ ]) ( [ ], ) : [Name], name1 name2 name10 ( [ ]! ) : [Name]! name1 name2 name10 4
[![, ]! ]! [ ]!, [ ]!, [ ]! 4.3 SuperSQL TFE 1 :! [Name]! name1 name10 2:{, Name}! {, Tel} name tel 4.4 FROM SuperSQL FROM SQL FROM dept, employee e 5 1: dept 5
[ d.id, d.name, d.shop, d.floor, d.manager ]! FROM dept d 2: [ d.name, [ e.name ]! ]! FROM dept d, employee e WHERE d.manager=e.manager 3: {" "," "}! [ d.name, e.name]! FROM dept d, employee e WHERE d.manager=e.id 4: [ d.name, e1.name, [ e2.name ]! ]! FROM dept d, employee e1, employee e2 WHERE d.manager=e2.manager and e1.id=e2.manager 6 SuperSQL 6.1 SuperSQL ( ) <TFE>@{ < > } =, 6
: width (px) : width=200 : height (px) : height=20 ( ): padding (px) : padding=2 : align(left/center/right) : align=left : valign(top/center/bottom) : valign=top : background-color, bgcolor( : bgcolor=red/bgcolor=ff0000 : color, font-color : color=red/color=ff0000 : size, font-size(px) : font-size=20 : font-weight : font-weight=bold : font-style : font-style=italic CSS : style : style= font-variant: small-caps; font-weight: 900 : class : class=item Name@{align=center, font-color=blue, font-size=20} width 100px 200px 300px 300px [ A, B ]! 7
[ A@{width=100}, B@{width=200}]! 300px [ {A@{width=100},B@{width=200}}@{width=300}]! 100,200px 300px : cssfile : cssfile=demo.css ; charset ; charset= utf-8 : author : author=takehiko : background : background= neko.gif : tablealign : tablealign=center : tableborder : tableborder=1 Q0.ssql { { [e.name@{class=name},e.salary@{class=salary}, e.byear@{class=birth}]! }@{title=member,tablealign=center} }@{cssfile=demo.css,charset=euc-jp} 8
cssfile http://www.db.ics.keio.ac.jp/ssqlcss/ default.css css (public html/ssql) cssfile 6.2 image image image image(, path= ) path SuperSQL HTML ( /public html/ssql) image width : 200 ( Pict /public html/ssql/picture/ ) Name, image(pict, path=./picture/ )@{width=200} 6.3 link FOREACH link FOREACH (%) (%) link FOREACH link FOREACH (%) Q1.ssql Q1.ssql [e.name % {e.salary, e.syear}]! link FOREACH Q2.ssql Q3.ssql 9
Q2.ssql [link(e.name, file="q3.ssql", att=e.id)]! Q3.ssql FOREACH e.id [e.salary, e.syear]! Q2.ssql Q3.ssql link FOREACH file= link att= FOREACH URL ( ) html 2 2 link att1 att2 att3 FOREACH (,) FOREACH link att1 att2 att3 null link FOREACH link FOREACH link link Q4.ssql [link(e.name@{target=_new},file="q3.ssql",att=e.id)]! link FOREACH 10
http://www.db.ics.keio.ac.jp/ssql/demo/link/ titles.ssql film.ssql actor.ssql theater.ssql townfilm.ssql town.ssql http://www.db.ics.keio.ac.jp/ssql/demo/link/titles.html link FOREACH (%) 6.4 ( ) SuperSQL asc desc (ascending order): (asc1) : (asc1)e.name (descending order): (desc1) : (desc1)e.salary Q5.ssql [(asc1)e.name, (desc2)e.salary]! Q6.ssql Q6.ssql [ (asc1)d.name, [ (desc2)e.name ]! ]! FROM dept d, employee e WHERE d.manager=e.manager 11
6.5 Aggregate Functions Aggregate Functions (max) (min) (avg) (sum) (count) Aggregate Function max[ ], min[ ], avg[ ], sum[ ], count[ ] Q7.ssql avg max min Q7.ssql [ e.name ]!, avg[e.salary] 6.6 [ TFE ],number! number [name],5! [ TFE ]!number, number [name]!5, [ TFE ],number% number [name],5% [ TFE ]!number% number [name]!5% [ TFE ],number1!number2% number1 [name],5!4% number2 [ TFE ]!number1,number2% number1 [name]!5,4% number2 [e.name],3! ; e.name 3 12
[e.name, e.salary],3!5% ; e.name e.employee 3 5 6.7 null null Q9.ssql [null((desc1)e.salary), e.name]! 6.8 if then else if(...)then(...)else(...) [if (e.salary>10000) then (e.name,e.salary) else (e.salary)]! e.salary 10000 e.name e.salary e.salary? [e.name, (e.salary> 10000)? e.name : e.salary]! e.name e.salary 10000 e.salary 13
6.9 SuperSQL /* */ ( 2 ) ( 2 ) { [e.name /*@{class=name}*/, e.salary]! }/*@{cssfile=demo.css}*/ --,shop s 7 db ta14@db.ics.keio.ac.jp (24-205,209) http://www.db.ics.keio.ac.jp/ssql/tutorial/index.html 14