Select Queries

From TRCCompSci - AQA Computer Science
Revision as of 08:32, 16 May 2017 by JWright (talk | contribs) (The Basic Construct)
Jump to: navigation, search
  • Used for fetching information from an SQL database.
  • 'Outputs' the data once successfully selected
  • Allows selection from multiple tables but not multiple databases.

The Basic Construct

  SELECT `data` FROM `TABLE`
  WHERE `Condition`
  ORDER BY `TABLE` (DESC) ;

ORDER BY is set to Ascending by default. Adding DESC for Descending will turn this list upside-down.

Basic Example

 SELECT * FROM  Book
 WHERE price > 100.00
 ORDER BY title;

Remember the select can have * to select all fields, however questions will normally specify what fields to select. The from section should identify which table(s) to select the data from. The where section should include the criteria used to select the data, this could be a simple statement as above but remember you can also include other operators such as and, or, not, like, and so on.

Relational Databases & Select

Using a relational database (two or more related tables) makes the select statement more complex because you can obviously select data from multiple tables and also use criteria on multiple tables in the where section. So:

  1. Any field name which causes ambiguity must also have the table specified, ie table.fieldname
  2. The from section must include the tables for every field in the where or select sections
  3. The where section must contain the criteria to explain how the tables in the from section are related

So for example:

  • this should be primary key to foreign key, so if you have just 2 tables - table1.primary = table2.foreign
  • 3 tables would have something like table1.primary = table2.foreign AND table1.primary = table3.foreign

Remember this is on top of the criteria you need to use for the question or output required.

Relational Databases & Select Example

 SELECT TutorGroup.Name, Student.Name
 FROM  TutorGroup, Student
 WHERE Student.ID = TutorGroup.StudentID
 AND Student.YearGroup = 12 AND Student.Gender = 'Male'
 ORDER BY TutorGroup.Name;

This would create a list of male students in year group 12 in order of TutorGroup.Name, for each record it will select TutorGroup.Name and Student.Name.