Python script runs functions prior to the being called.

I have written the following Tkinter script:

When I run it, the first thing that happens is the File Dialog box opens without it being called.
I am expecting the file dialog box only to open when the "Open Document" button is pressed.

import tkinter as tk
from tkinter import *
from tkinter import filedialog as fd


class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.do = PhotoImage(file="do.png")  # Document Open
        self.ea = PhotoImage(file="ea.png")  # Exit
        self.create_widgets()

    def create_widgets(self):
        self.opendoc = tk.Button(self, text="Open Document", image=self.do, command=self.openfd()).pack(side="left")

        self.quit = tk.Button(self, text="Quit", image=self.ea, command=self.master.destroy)
        self.quit.pack(side="left")

    def openfd(self):
        fd.askopenfilenames()

if __name__ == '__main__':
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()

I have tried removing the openfd function from the class, but the reult is the same.

import tkinter as tk
from tkinter import *
from tkinter import filedialog as fd


class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.do = PhotoImage(file="do.png")  # Document Open
        self.ea = PhotoImage(file="ea.png")  # Exit
        self.create_widgets()

    def create_widgets(self):
        self.opendoc = tk.Button(self, text="Open Document", image=self.do, command=openfd()).pack(side="left")

        self.quit = tk.Button(self, text="Quit", image=self.ea, command=self.master.destroy)
        self.quit.pack(side="left")


    def setdevicevars(self):
        self.settingsDialog()

def openfd():
    fd.askopenfilenames()
if __name__ == '__main__':
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()

It's not necessarily a problem, but I'd like to know why, not least to prevent unexpected behaviuor in my script.

Importing a CSV file with hex data.

I have a table with the following fields:

CREATE TABLE text (
    drawing INT NOT NULL,
    blockID INT NOT NULL,
    entityID INT NOT NULL,
    style INT,
    txt VARCHAR(255) NOT NULL,
    attrib INT);

My csv file contains the data:

19  1CB2    E49 2   CLIENT MODULAR  1C2A
19  1CB3    E4B 2   CLIENT UG - 2 MODULAR PILOT PLANT   1C2C
19  1CB4    E4C 2   100 - 500 MICRON    1C2D
19  -1  E50 2   USERNAME    1C31
19  1CBA    E51 2   15.8.2020   1C32
19  1C16    E58 2   PLANT   1C39

I'm using the following SQL to import the CSV file:

LOAD DATA INFILE '/tmp/_P2.8Q9nJ4_/text' INTO TABLE text (drawing,@blockID,@entityID,style,txt,@attrib) SET blockID=UNHEX(@blockID),entityID=UNHEX(@entityID),attrib=UNHEX(@attrib);

But this is the result:

+---------+---------+----------+-------+-------------------------------------------+--------+
| drawing | blockID | entityID | style | txt                                       | attrib |
+---------+---------+----------+-------+-------------------------------------------+--------+
|      19 |       0 |        0 |     0 | CLIENT MODULAR                            |      0 |
|      19 |       0 |        0 |     0 | CLIENT UG - 2 MODULAR PILOT PLANT         |      0 |
|      19 |       0 |        0 |     2 | 100 - 500 MICRON                          |      0 |
|      19 |       0 |        0 |     2 | USERNAME                                  |      0 |
|      19 |       0 |        0 |     2 | PLANT                                     |      0 |
|      19 |       0 |        0 |     2 | 15.8.2020                                 |      0 |

What is the correct way to import a CSV file into my table?