Does this SQL code look okay to everyone? I'm new to coding
It is hard to tell without more details. Like @Paparazzi said, it is more clear if you do joins using the join syntax:

SELECT Title
FROM Film F
    INNER JOIN Award A
    ON F.Film = a.FilmID
WHERE 
    Award_Category = "Best Documentary"
    AND Award_Ceremony = "Galway Film Fleadh"
    AND F.Year = 2008;


Generally speaking if you are building an app you might want to do your selects using a unique ID column instead. This will be faster because you can create better indexes(ms-sql, mysql) on your tables, plus you can avoid multiple conditionals:

SELECT Title
FROM Film F
    INNER JOIN Award A
    ON F.Film = a.FilmID
WHERE 
    F.Film = 1234


This is the same for your delete and presumably your update too, what if you have two directors named Steven Spielberg? Doing data changes based on ID is much more reliable.

For this query it doesn't seem to actually need a join. Is any data being pulled/compared from the Role table? I would look at all your queries to see if they really need the join or not.

SELECT DISTINCT A.Forename, A.Surname
FROM Actor A, Role R
WHERE A.ActorID = R.ActorID
AND Part = "James Bond"


Instead of using LIKE with a wildcard character in the front(thus preventing any index from being used on this field), you might want to look into full text searching if you are using SQL Server.

 SELECT Title
 FROM Film
 WHERE Genre = "Western"
 AND Title LIKE "%Riders%";


The last query with the headline Assuming no actor has the same name. is very confusing, I've never seen a query like that, is that valid sql? I believe group by and having should always be at the end.

If you post your table structure we can probably offer more improvements because from your queries there might be room for normalization improvements as well.

For MySQL run: show create table my_table\G

For SQL Server: right click your table and select Script As then select Create To