For f# to speak to a database, I presume you use some code that appears quite a bit like C# code, with a couple Internet libraries (ado.internet for instance) and a great deal of imperative code which has, obviously, a great deal of side-effects..

Or shall we be held missing something here? Has F# some beauty to provide within this domain also?

And would someone be so kind a to supply me by having an example for reading through from an conntacting a database?

You might want to make use of the recognized answer within this question like a good beginning point.

http://stackoverflow.com/questions/291445/f-beginner-retrieving-an-array-of-data-from-a-server

With respect to the database you're using you might get another options, but begin with something fairly functional and you will enhance it as being you will get experience.

After I required to perform some database access from F# inside a test project, I wound up using LINQ to SQL from F#. I simply added a C# project towards the solution, place the DataContext within the C# project, and used the produced C# LINQ to SQL classes during my F# project.

First you have to reference the devices FSharp.PowerPack and FSharp.PowerPack.Linq. You'll be able to open Microsoft.FSharp.Linq.

Here's a good example that parses "Site" tags from an XDocument, creating cases of the Site class (a C# produced LINQ to SQL class), then placing them in to the database while using L2S data context.

let sites = doc.Descendants(ns + "Site")
            |> Seq.map (fun el -> new Site (
                                      Url = xstr(el.Element(ns + "DataUrl")),
                                      Rank = xint(el.Element(ns + "Rank"))
                                  ))
use db = new SomeDataContext()
db.Sites.InsertAllOnSubmit(sites)
db.SubmitChanges()

As you can tell, despite the fact that it's using C# classes, it isn't entirely imperative code.

Here's a good example of while using F# version of LINQ to obtain the maximum rank of all of the site records within the database. Yes, this may get converted to SQL and performed within the database.

use db = new SomeDataContext()
Query.query <@ seq { for s in db.Sites -> s.Rank } |> Seq.max @>

Finally, here's some more information on LINQ with F#.