exercise3_answers.txt
# Relational
Databases for Biologists
# Session 3:
Building and modifying a database with SQL
#
#Exercise 3 SQL and
query solutions
#
#Numbers refer to
questions of Exercises
# 3 One possible
solution is as follows:
CREATE TABLE Data
(
affyId
varchar(30) NOT NULL,
exptId
varchar(10) NOT NULL,
level int(5),
PRIMARY KEY
(affyId, exptId)
);
CREATE TABLE
Sources
(
exptId
varchar(10) NOT NULL,
source
varchar(100),
PRIMARY KEY
(exptId)
);
CREATE TABLE
Targets
(
affyId
varchar(20) NOT NULL,
description
varchar(100) NOT NULL,
PRIMARY KEY
(affyId)
);
# 6
LOAD DATA
LOCAL INFILE "Targets.txt" INTO TABLE Targets;
LOAD DATA
LOCAL INFILE "Sources.txt" INTO TABLE Sources;
LOAD DATA
LOCAL INFILE "Data_leukemia.txt" INTO TABLE Data;
LOAD DATA LOCAL
INFILE "Data_ovarian.txt" INTO TABLE Data;
# 8a
SELECT affyId,
level
FROM Data
WHERE exptId =
"ovar-1"
ORDER BY level
DESC
LIMIT 10;
# 8b
SELECT
Data.affyId,Targets.description,Data.level
FROM Data,
Targets
WHERE
Data.affyId = Targets.affyId
ORDER BY Targets.description
LIMIT 10;
# 12
UPDATE Data
SET level = 2
WHERE level
< 2;
# 13
SELECT
Data.affyId,Targets.description,Data.level AS
Ovarian_cancer,LOG(Data.level)/LOG(2) AS Log_ovarian_cancer,DataCopy.level AS
Leukemia,LOG(DataCopy.level)/LOG(2) AS Log_Leukemia,LOG(Data.level)
/LOG(DataCopy.level) AS Ratio
FROM Data,
Data DataCopy, Targets
WHERE
Data.affyId= DataCopy.affyId
AND
Data.exptId = "ovar-1"
AND
DataCopy.exptId = "leuk-1"
AND
Data.affyId = Targets.affyId
ORDER BY Ratio
DESC;