SPI Primer

I need to get my feet pointed correctly with some good examples of using the SPI protocol with Arduino. I was told to include the SPI library into the sketch, though the examples I find do not include the SPI library...What is the reason for this? :-? :-?

Here is a link to the data sheet for the 4 digit display that I am trying to link via SPI:

This display has an ATMega integrated on the backside...it seems that really I'm trying to communicate from one ATMega to another. I am a bit new to the Arduino platform, and completely new to SPI. My current goal is to have the display show a time...say 10:30 . I'm thinking I need some good examples of SPI projects, if not direct advice for using this display. Thank you for your reply.
:o

What is the reason for this

It is probably because the SPI library doesn't do very much when you look at the code in it.
This is some code I wrote for addressing two MCP23S17 chips through SPI for a CNC project to control stepping motors:-

// two MCP23S17 SPI port expander chips

setup(){
// initilise SPI expanders
        // Set up ICON register it defaults to address 0xA on reset:
        expanderW(MOTOR_WRITE, 0x0A, BANK | SEQOP | HAEN); // this sets both / all expanders to use address pins
        expanderW(LIMIT_WRITE, 0x0A, BANK | SEQOP | HAEN); // this sets both / all expanders to use address pins
        expanderW(LIMIT_WRITE,IODIRA, 0xff);      // Data direction register A all inputs
        expanderW(LIMIT_WRITE,IODIRB, 0xff);      // Data direction register B all inputs
        expanderW(LIMIT_WRITE,IPOLA, 0xff);       // Input polarity read an earth (press) as a one
        expanderW(LIMIT_WRITE,IPOLB, 0xff);       // Input polarity read an earth (press) as a one
        expanderW(LIMIT_WRITE,INTCONB, 0x00);     // Notify on change
        expanderW(LIMIT_WRITE,INTCONB, 0x00);     // Notify on change
        expanderW(LIMIT_WRITE,GPINTENA, 0xff);    // enable notifacation on pins
        expanderW(LIMIT_WRITE,GPINTENB, 0xff);    // enable notifacation on pins
        expanderW(MOTOR_WRITE,IODIRA, 0x00);      // Data direction register A all outputs
        expanderW(MOTOR_WRITE,IODIRB, 0x00);      // Data direction register B all outputs
        expanderW(MOTOR_WRITE, GPIOB, 0x00);      // disable motors, set dir to 0, set step to 0

}

byte expanderR(byte com,byte add) 
{
  byte value;
  digitalWrite(SS_PIN, LOW);
  Spi.transfer(com);  // address read
  Spi.transfer(add);   //  register address
  value = Spi.transfer(0x0);   //  dummy data for read
  digitalWrite(SS_PIN, HIGH);
  return value;
}

byte expanderW(byte com, byte add, byte dat) // expander read
{
  digitalWrite(SS_PIN, LOW);
  Spi.transfer(com);  // address write
  Spi.transfer(add);   //  register address
  Spi.transfer(dat);   //  register data
  digitalWrite(SS_PIN, HIGH);
}