For value V: if V <= left value: → move to the left lower node if left value < V <= right value: → move to the middle lower node if V > right value: → move to the right lower node
TEMP1 = (CONTAINS[FRAG,GENE] times GENE[ID,NAME])
where GENE.ID=CONTAINS.GENE and GENE.NAME='AMP'
TEMP2 = (TEMP1 join PRODUCES)[RCP]*
ANSWER =
(TEMP2 join RECIPES) where TEMP2.RCP=RECIPES.RCP
CREATE DATABASE database_name
CREATE TABLE table_name( column_name1 data_type, column_name2 data_type, ...... [PRIMARY KEY (column_name),] [FOREIGN KEY (column_name)REFERENCES table_name(column_name),])
CREATE [UNIQUE ]INDEX index_nameON table_name( column_name)
CREATE TABLE "GENE" ( ID char(16), NAME varchar(20), PROTEIN varchar, START# int, PRIMARY KEY (ID) );
CREATE TABLE "PRODUCES" ( RCP char(16), FRAG char(16), DATE date, FOREIGN KEY (RCP) REFERENCES RECIPE(RCP), FOREIGN KEY (FRAG) REFERENCES FRAG(ID) );
CREATE UNIQUE INDEX on GENE (ID);
INSERT INTO "tablename" (first_column,...last_column)VALUES (first_value,...last_value);
INSERT INTO GENE (ID, NAME, PROTEIN, START#)
VALUES ('G1', 'AMP', 'MAKK...', -5);
SELECT [DISTINCT ] column1[,column2]FROM table1[,table2] [WHERE "conditions"] [GROUP BY "column-list"] [HAVING "conditions] [ORDER BY "column-list" [ASC |DESC ] ]
CREATE TABLE TEMP1AS SELECT CONTAINS.FRAG,CONTAINS.GENE,GENE.NAMEFROM CONTAINS, GENEWHERE GENE.ID=CONTAINS.GENEAND GENE.NAME="AMP";
CREATE TABLE TEMP2AS SELECT PRODUCES.RCPFROM TEMP1,PRODUCESWHERE TEMP1.FRAG=PRODUCES.FRAG;
SELECT DISTINCT RECIPE.RCP, RECIPE.NAME, RECIPE.FILE, RECIPE.OWNERFROM TEMP2, RECIPEWHERE TEMP2.RCP = RECIPE.RCP;
SELECT DISTINCT RECIPE.RCP, RECIPE.NAME, RECIPE.FILE, RECIPE.OWNERFROM GENE, CONTAINS, PRODUCES, RECIPEWHERE GENE.NAME = 'AMP'AND GENE.ID = CONTAINS.GENEAND CONTAINS.FRAG = PRODUCES.FRAGAND PRODUCES.RCP = RECIPE.RCP;
UPDATE tablenameSET columnname="newvalue"[,nextcolumn="newvalue2"...]WHERE columnnameOPERATOR "value" [AND |OR columnOPERATOR "value"];
UPDATE GENE SET NAME='AMP' WHERE ID='G1';
SELECT COUNT(*) FROM RECIPE,PRODUCES WHERE RECIPE='scooter' AND RECIPE.RCP=PRODUCES.RCP;
#! /usr/bin/python import sys import MySQLdb try: # Open a connection to the database conn = MySQLdb.connect (host="127.0.0.1", db="bmi280") cursor = conn.cursor() # Execute an SQL statement -- can be pretty much any SQL cursor.execute("SELECT NAME, PROTEIN from GENE") # fetchall returns a list of lists rows = cursor.fetchall() for row in rows: print "%s, %s"%(row[0], row[1]) # Close the cursor and commit any changes to the database cursor.close() conn.commit() conn.close() except MySQLdb.Error, e: # Handle any errors print "Error %d: %s" % (e.args[0], e.args[1]) sys.exit (1)
AMP, MAKK... TET, MYAK... NGF, MYAK...
#! /usr/bin/python import sys import MySQLdb try: conn = MySQLdb.connect (host="127.0.0.1", db="bmi280") # Get a cursor we can work with cursor = conn.cursor() # Use the execute method to pass SQL commands to the database cursor.execute("DROP TABLE IF EXISTS `GENE`") # Note that we use triple quotes when we need multiple lines cursor.execute(""" CREATE TABLE `GENE` ( `ID` char(16), `NAME` varchar(20), `PROTEIN` longtext, `START#` int, PRIMARY KEY (`ID`) ) """) cursor.execute(""" INSERT INTO `GENE` VALUES ('G1','AMP','MAKK...',-5), ('G2','TET','MYAK...',-10), ('G3','NGF','MYAK...',-1) """) print "Number of rows inserted: %d"%cursor.rowcount # OK, now lets try to get some data out cursor.execute("SELECT NAME, PROTEIN from GENE") while (1): row = cursor.fetchone () if row == None: break print "%s, %s"%(row[0],row[1]) print "Number of rows returned: %d"%cursor.rowcount
# Another way to do the same thing
cursor.execute("SELECT NAME, PROTEIN from GENE")
rows = cursor.fetchall ()
for row in rows:
print "%s, %s"%(row[0],row[1])
print "Number of rows returned: %d"%cursor.rowcount
cursor.close()
conn.commit ()
conn.close()
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit (1)