Difference between revisions of "SQLZOO:About"

From SQLZOO
Jump to: navigation, search
(Wiki Nature)
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
SQLZoo includes tutorials and reference to support people learning SQL.
 
SQLZoo includes tutorials and reference to support people learning SQL.
 +
==Terms and Conditions==
 +
None. Everyone in the world is welcome to use this site and the material on it in any way they see fit. But it's nice to be nice.
  
 +
==Why is it called SQLzoo==
 +
The inmates of SQLzoo are the SQL engines (MySQL, Oracle, SQL Server and others). They have been tamed, caged and defanged so that members of the public can pet them or poke them or gawk at them. In the wild, these engines are dangerous, needy beasts but in the confines of SQLzoo they are relatively safe. Once you have an idea of what SQL is and how it works you should install an SQL engine on your own computer and play with the real thing.
 +
 +
==Wiki Nature==
 
It is based on MediaWiki and it allows users to change the content.
 
It is based on MediaWiki and it allows users to change the content.
 
http://www.mediawiki.org/wiki/Help:Editing_pages shows how to edit pages in "standard" media wiki.
 
http://www.mediawiki.org/wiki/Help:Editing_pages shows how to edit pages in "standard" media wiki.
 +
*Only users with the '''teacher''' role can edit pages.
 +
**Any teachers who can help with fixing errors or creating content are most welcome
 +
**Send an email (ideally from an educational address) to sqlzoo.qa@gmail.com and tell us your user name - we can add that role so that you can edit.
  
 
SQLZoo features:
 
SQLZoo features:
Line 9: Line 18:
 
*Practical exercise
 
*Practical exercise
 
*Instant feedback on the success of the student's attempts
 
*Instant feedback on the success of the student's attempts
 +
 +
==Data==
 +
The data used in the databases is available in a slightly odd version of SQL:
 +
 +
For example
 +
*http://sqlzoo.net/w/index.php?title=Createworld.txt&action=raw a script to create the world database
 +
*http://sqlzoo.net/w/index.php?title=Tabworld.txt&action=raw the data to go in that table
 +
*[[data]] links to all of the data
 +
 
==Format==
 
==Format==
 
SQLZoo includes a number of extensions to normal Wiki text:
 
SQLZoo includes a number of extensions to normal Wiki text:
Line 52: Line 70:
 
<nowiki>
 
<nowiki>
 
<span id=startAt class=params>6</span>
 
<span id=startAt class=params>6</span>
 +
</nowiki>
 +
</pre>
 +
 +
==respectorder==
 +
Most questions do not respect order - a querry is considered correct even if the order of the student's work differs from the correct answer.
 +
You can over-ride that rule by insisting that the question respects order. Place this invisible tag in your qu tag.
 +
<pre>
 +
<nowiki>
 +
<span class='params respectorder'></span>
 
</nowiki>
 
</nowiki>
 
</pre>
 
</pre>
Line 70: Line 97:
 
</pre>
 
</pre>
 
<div class="lsclear">Clear your results</div>
 
<div class="lsclear">Clear your results</div>
 +
 +
==Setting up AWS server==
 +
*Start with Amazon Linux - pick a paravirtual one from the bottom of the list of AMI - the ones at the top
 +
*Use classic network
 +
*Log in as ec2-user
 +
sudo su
 +
yum install httpd
 +
scp -C andrew@146.176.166.2:sqlzoo-source.tar ~
 +
mv ~/public_html/sqlzoo /var/www/html
 +
yum install mysql-server
 +
/etc/init.d/mysqld start
 +
/usr/bin/mysqladmin -u root password 'topsecret'
 +
scp andrew@146.176.166.2:sqlzoo_wiki.sql.gz ~
 +
scp andrew@146.176.166.2:gisq.sql.gz ~
 +
 +
yum install php
 +
yum install php-pear
 +
yum install php-mysql
 +
/etc/init.d/httpd restart
 +
 +
mysql...
 +
create database gisq;
 +
grant all on gisq.* to gisq@localhost identified by 'brazil';
 +
grant select on gisq.* to scott identified by 'tiger';
 +
create database scott;
 +
use scott
 +
grant all on scott.* to scott identified by 'tiger';
 +
 
{{Languages}}
 
{{Languages}}

Latest revision as of 14:29, 18 November 2017

SQLZoo includes tutorials and reference to support people learning SQL.

Terms and Conditions

None. Everyone in the world is welcome to use this site and the material on it in any way they see fit. But it's nice to be nice.

Why is it called SQLzoo

The inmates of SQLzoo are the SQL engines (MySQL, Oracle, SQL Server and others). They have been tamed, caged and defanged so that members of the public can pet them or poke them or gawk at them. In the wild, these engines are dangerous, needy beasts but in the confines of SQLzoo they are relatively safe. Once you have an idea of what SQL is and how it works you should install an SQL engine on your own computer and play with the real thing.

Wiki Nature

It is based on MediaWiki and it allows users to change the content. http://www.mediawiki.org/wiki/Help:Editing_pages shows how to edit pages in "standard" media wiki.

  • Only users with the teacher role can edit pages.
    • Any teachers who can help with fixing errors or creating content are most welcome
    • Send an email (ideally from an educational address) to sqlzoo.qa@gmail.com and tell us your user name - we can add that role so that you can edit.

SQLZoo features:

  • Interactive access to several SQL engines
  • Sample databases
  • Practical exercise
  • Instant feedback on the success of the student's attempts

Data

The data used in the databases is available in a slightly odd version of SQL:

For example

Format

SQLZoo includes a number of extensions to normal Wiki text:

  • class='qu'
    • A div with class qu is interpreted as an interactive question.
    • A div.qu element should include a source.def element
      • This contains the default text that the user sees.
      • Sometime this is a useful hint and is close to the correct answer.
      • It may be empty - but users often click without changing the text before even looking at it
    • A div.qu element may include a source.ans element
      • This contains the correct SQL.
      • This is hidden from the user (but not well hidden)
      • The user's result is compared with the answers result and a score is calculated

Here is an example of a question:

==Warming up==
<div class='qu'>
[[Read the notes about this table.]] Observe the result of running a simple SQL command.
<source lang='sql' class='def'>
SELECT name, region, population FROM bbc
</source>
<source lang='sql' class='ans'>
SELECT name, region, population FROM bbc
</source>
</div>

And here is how that looks when rendered...

Warming up

Read the notes about this table. Observe the result of running a simple SQL command.

SELECT name, region, population FROM bbc
SELECT name, region, population FROM bbc

StartAt

You can include a ***startAt*** span at the top of the page. This will ensure that question numbering starts at the specified value.


<span id=startAt class=params>6</span>

respectorder

Most questions do not respect order - a querry is considered correct even if the order of the student's work differs from the correct answer. You can over-ride that rule by insisting that the question respects order. Place this invisible tag in your qu tag.


<span class='params respectorder'></span>

Hints

You can include a hint. The title will be shown, if the user clicks on the text the body will be revealed:

Now the hint has been revealed

<div class='hint' title='Click here to see the hint'>Now the hint has been revealed</div>

Clear Results


<div class="lsclear">Clear your results</div>

Clear your results

Setting up AWS server

  • Start with Amazon Linux - pick a paravirtual one from the bottom of the list of AMI - the ones at the top
  • Use classic network
  • Log in as ec2-user
sudo su
yum install httpd
scp -C andrew@146.176.166.2:sqlzoo-source.tar ~
mv ~/public_html/sqlzoo /var/www/html
yum install mysql-server
/etc/init.d/mysqld start
/usr/bin/mysqladmin -u root password 'topsecret'
scp andrew@146.176.166.2:sqlzoo_wiki.sql.gz ~
scp andrew@146.176.166.2:gisq.sql.gz ~
yum install php
yum install php-pear
yum install php-mysql
/etc/init.d/httpd restart

mysql...

create database gisq;
grant all on gisq.* to gisq@localhost identified by 'brazil';
grant select on gisq.* to scott identified by 'tiger';
create database scott;
use scott
grant all on scott.* to scott identified by 'tiger';
Language: English  • Deutsch