MORE COMPLEX SINGLE TABLE RETRIEVAL


The WHERE clause can be enhanced to be more selective.  Operators that can appear in WHERE conditions include:

  • =, <> ,< ,> ,>= ,<=
  • IN
  • BETWEEN…AND…
  • LIKE
  • IS NULL
  • AND, OR, NOT

Example 1

Find the student ID of all math majors with more than 30 credit hours.
SELECT STUID FROM STUDENT WHERE MAJOR = ‘Math’ AND CREDITS > 30;

STUID

S1015

S1002

Example 2

Find the student ID and last name of students with between 30 and 60 hours (inclusive).
SELECT STUID, LNAME FROM STUDENT WHERE CREDITS BETWEEN 30 AND 60;

this is the same as…
SELECT STUID, LNAME FROM STUDENT WHERE (CREDITS >= 30)  AND  (CREDITS <= 60);

STUID LNAME
S1015 Jones
S1002 Chin

Example 3

Retrieve the ID of all students who are either a math or an art major.
SELECT STUID FROM STUDENT WHERE MAJOR IN (‘Math’,’Art’);

this is the same as…
SELECT STUID FROM STUDENT WHERE (MAJOR = ‘Math’) OR (MAJOR = ‘Art’);

STUID

S1010

S1015

S1002

S1013

Example 4

Retrieve the ID and course number of all students without a grade in a class.
SELECT STUID, COURSENUM FROM ENROLL WHERE GRADE IS NULL;

STUID COURSENUM
S1010 ART103A
S1010 MTH103C

NOTE: IS NULL may only appear in the WHERE clause.  Also note that you say “IS NULL”, not “= NULL”.  NULL means “unknown” and does not really have a value in the normal sense.

Example 5

List the ID and course number for all students that successfully completed classes (the inverse of #4 above).
SELECT STUID, COURSENUM FROM ENROLL WHERE GRADE IS NOT NULL;

STUID

COURSENUM

S1001

ART103A

S1020

CIS201A

S1002

CIS201A

S1002

ART103A

S1020

MTH101B

S1001

HST205A

S1002

MTH103C

Example 6

List the course number and faculty ID for all math courses.
SELECT COURSENUM, FACID FROM CLASS
WHERE COURSENUM LIKE ‘MTH%’;

COURSENUM

FACID

MTH101B

F110

MTH103C

F110

NOTE: % is a wildcard for any number of characters.  _ is a wildcard that replaces a single character.  They can be used together along with normal characters.

C


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *