Differences

This shows you the differences between two versions of the page.

Link to this comparison view

u4_databaser [2012-09-26 17:26]
Joakim Forsgren
u4_databaser [2017-09-01 14:54]
Line 1: Line 1:
-====== SELECT frågor 4 ====== 
-<php> 
-/* 
-1. Skriv ett lite PHP-script som lägger in 100 000 datum poster med en slumpad temperatur (Temp) mellan 0 och 20. 
-Temperaturen skall ha en decimal. 
-Det första datumet skall vara "1970-01-01 00:00:00" sen skall det in en post var 5:e timme. 
- 
-Er PHP-kod för att lägga in data bör inte vara mycket mer än detta: 
-<code php> 
-<?php 
-// Ni måste ju koppla upp er mot databasen mm... 
-for($i=0; $i<100000; $i++) { 
-//  $sql =  "INSERT INTO `Dates` (`DateTime` ,`Temp`) VALUES (...resten ska ni göra själva..."; 
-    $sql = "INSERT INTO `Dates` (`DateTime` ,`Temp`) VALUES (DATE_ADD('1970-01-01 00:00:00',INTERVAL " .($i*5). " HOUR),ROUND(RAND()*20))"; 
-    mysql_query($sql); 
-} 
-?> 
-</code> 
-Tips! DATE_ADD, RAND, ROUND 
- 
-Så här kan er tabell se ut... 
-<code sql> 
-CREATE TABLE IF NOT EXISTS `Dates` ( 
-  `ID` int(11) NOT NULL auto_increment, 
-  `DateTime` datetime NOT NULL, 
-  `Temp` float NOT NULL, 
-  PRIMARY KEY  (`ID`) 
-) ENGINE=MyISAM; 
-</code> 
- 
-//Om ni har lyckats att skapa era poster så kan ni tabort tabellen "Dates" om ni vill...// 
-*/ 
-</php> 
- 
-Nu skall du använda min databas **jf**. Om du inte kommer ihåg hur man loggade in kolla: [[u1_databaser]]\\ 
-Tabellen heter Dates.  
- 
-1. Ni skall beräkna medeltemperaturen för åren 2000-2005 jag vill också veta hur många temperatur poster det finns registrerade varje år. 
-ex på lämpligt svar på er SQL-fråga 
-<code> 
-+------+-----------------+-------+ 
-| Year | avg_Temp        | Antal | 
-+------+-----------------+-------+ 
-| 2000 |  10.02464426562 |  1757 |  
-| 2001 | 10.145547948748 |  1752 |  
-| 2002 | 10.022888132409 |  1752 |  
-| 2003 | 10.102796808013 |  1752 |  
-| 2004 | 9.9797381764033 |  1757 |  
-| 2005 | 9.8808790016154 |  1752 |  
-+------+-----------------+-------+ 
-</code> 
- 
-<php> 
-/* 
-SELECT YEAR(DateTime) AS Year, AVG(Temp) AS avg_TEMP, COUNT(ID) AS Antal FROM Dates  
-WHERE YEAR(DateTime)>1999 AND YEAR(Datetime)<2006 GROUP BY YEAR(Datetime); 
-*/ 
-</php> 
- 
-2. Plocka fram de år som har temperaturer registrerade 366 dagar... 
-<code>   
-+------+------+ 
-| Year | Days | 
-+------+------+ 
-| 1972 |  366 | 
-| 1976 |  366 | 
-| 1980 |  366 | 
-| 1984 |  366 | 
-| 1988 |  366 | 
-| 1992 |  366 | 
-| 1996 |  366 | 
-| 2000 |  366 | 
-| 2004 |  366 | 
-| 2008 |  366 | 
-| 2012 |  366 | 
-| 2016 |  366 | 
-| 2020 |  366 | 
-| 2024 |  366 | 
-+------+------+ 
-</code> 
-<php> 
-/* 
-SELECT YEAR(DateTime) as Year ,COUNT(DISTINCT DAYOFYEAR(DateTime)) AS  
-Days FROM Dates GROUP BY YEAR(Datetime) HAVING Days=366; 
-alt. 
-SELECT * FROM (SELECT YEAR(DateTime) as Year ,COUNT(DISTINCT DAYOFYEAR(DateTime)) AS  
-Days FROM Dates GROUP BY YEAR(Datetime)) as foo WHERE Days=366 
- 
-*/ 
-</php>