Bazy Danych Laboratorium
5.11.2012
Tzw. eksploracja danych i wyznaczanie statystyk wielowymiarowych za pomocą zagnieżdżonych
zapytań:
1)
Uruchomić przykład statystyk w układzie (kategorie -lata).
2)
Zmodyfikować przykład tak by wyświetlał dane dla miesięcy
3)
Karkołomne zadanie domowe : zamienić wiersze i kolumny! Teraz w wierszach mają być lata
a w kolumnach kategorie. Wskazówka: umiejętnie posłużyć się schowkiem. Na zajęciach
spróbować uzyskać wynik dla dwóch kolumn. Potem już z górki.
4)
Rozważyć ogólny przypadek statystyki dwuwymiarowej.
5)
Statystyka kraj (country) z tabeli Customers wiersze i regiony dla klientów
6)
Zapoznać się z funkcją raport tabeli przestawnej w arkuszu kalkulacyjnym.
7)
Powtórka z zapytań SQL (złączenie i grupowanie) – baza CJDate
a.
Sumaryczne wartości (QTY) dla dostawców z Londynu
b.
Sumaryczne wartości dla unikalnych par miasto dostawcy miasto odbiorcy
c.
Sumaryczny ciężar (QTY*WEIGTH) dla miast odbiorców
d.
Liczba części dostarczanych przez poszczególnych dostawców (S)
e.
Dostawcy dostarczający większą od przeciętnej liczbę części
f.
Liczba dostawców dostarczających poszczególne części
8)
Zadanie domowe: zapoznać się z prostymi przykładami programów w języku c#, ze
szczególnym uwzględnieniem programowania aplikacji baz danych.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Data.OleDb;
namespace
ConsoleApplication3
{
class
Program
{
static
void
Main(
string
[] args)
{
OleDbConnection
conn =
new
OleDbConnection
(
@"Provider=SQLNCLI.1;Data Source=MIROSŁAW-
PC\SQLEXPRESS;Integrated Security=SSPI"
);
conn.Open();
conn.Close();
}
}
}
Uwaga: Postać parametru konstruktora OleDbConnection tzw. ConnectionString zależy od typu sterownika
oraz od konkretnego serwera SQL. Znaleźć w Google różne postaci tego parametru. W lab.111 nie ma
sterownika dla OleDB (stan na 17.10.2011) dlatego należy posłużyć się klasą SQLConnection.
Przykład:
SqlConnection
conn =
new
SqlConnection
(
@"Data Source=p10;Integrated Security=SSPI;
Initial Catalog=Northwind"
);
Nieco bardziej złożony przykład.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Data.OleDb;
namespace
ConsoleApplication3
{
class
Program
{
static
void
Main(
string
[] args)
{
OleDbConnection
conn =
new
OleDbConnection
(
@"Provider=SQLNCLI.1;Data Source=MIROSŁAW-
PC\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Northwind"
);
conn.Open();
OleDbCommand
cmd =
new
OleDbCommand
(
"select * from
Employees"
,conn);
Console
.WriteLine(
"Employees"
);
OleDbDataReader
rdr=
cmd.ExecuteReader();
while
(rdr.Read())
{
for
(
int
i = 0; i < rdr.FieldCount; i++)
{
Console
.Write(rdr.GetValue(i).ToString());
Console
.Write(
"\t"
);
}
}
conn.Close();
}
}
}