<p>Would you advice how to get promoter sequences for all or many human genes - in flat file(s) or by SQL query? I understand there can be multiple definitions for promoter region, but just anything universal would work.</p>

Here I query the UCSC mysql anonymous server for the coordinate of the region between the CDS and the transcription sites (5' UTR, but you can extend this position to get a longer 'promoter' ) ( only for strand "+", for the reverse strand use cdsEnd and txEnd...). It builds an cURL query for the USC DAS server. This url is then piped into *sh* to get the genomic sequences.

    mysql --user=genome --host=genome-mysql.cse.ucsc.edu -A -D hg19 -N \
     -e 'select concat("curl http://genome.ucsc.edu/cgi-bin/das/hg19/dna?segment=",chrom,":",txStart+1,",",cdsStart+1) from knownGene where strand="+" and  txStart!= cdsStart limit 10'  |\
     sh > result.concatenated.xml

result:

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE DASDNA SYSTEM "http://www.biodas.org/dtd/dasdna.dtd">
    <DASDNA>
    <SEQUENCE id="chr1" start="11874" stop="12190" version="1.00">
    <DNA length="317">
    cttgccgtcagccttttctttgacctcttctttctgttcatgtgtatttg
    ctgtctcttagcccagacttcccgtgtcctttccaccgggcctttgagag
    gtcacagggtcttgatgctgtggtcttcatctgcaggtgtctgacttcca
    gcaactgctggcctgtgccagggtgcaagctgagcactggagtggagttt
    tcctgtggagaggagccatgcctagagtgggatgggccattgttcatctt
    ctggcccctgttgtctgcatgtaacttaataccacaaccaggcatagggg
    aaagattggaggaaaga
    </DNA>
    </SEQUENCE>
    </DASDNA>
    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE DASDNA SYSTEM "http://www.biodas.org/dtd/dasdna.dtd">
    <DASDNA>
    <SEQUENCE id="chr1" start="322037" stop="324343" version="1.00">
    <DNA length="2307">
    gggtctccctctgttgtccaaggctggagtgtagtagtgctatcgcagct
    gactgcagcctcaaccttccaggctgaagcgatcctcccacctcaacctc
    ccacgtggctgagactacaggtgcttgccactatgcccaactaacatttg
    gaattttcgtatacgtggattccagaggggtgacagcgaaacgtgagtaa
    (...)