Complete the Python program to create a Horse table, insert one row, and display the row. The main program calls four functions: 1. create_connection() creates a connection to the database. 2.create_table() creates the Horse table. 3. insert_horse() inserts one row into Horse. 4. select_all_horses() outputs all Horse rows. Complete all four functions. Function parameters are described in the template. Do not modify the main program. The Horse table should have five columns with the following names, data types, constraints, and values: Name Data type Constraints Value Id integer primary key, not null 1 Name text Babe Breed text Quarter horse Height double 15.3 BirthDate text 2015-02-10 The program output should be: All horses: (1, 'Babe', 'Quarter Horse', 15.3, '2015-02-10') This lab uses the SQLite database rather than MySQL. The Python API for SQLite is similar to MySQL Connector/Python. Consequently, the API is as described in the text, with a few exceptions: • Use the import library provided in the program template. Create a connection object with the function sqlite3.connect(":memory:"). • Use the character ? instead of %s as a placeholder for query parameters. • Use data type text instead of char and varchar. SQLite reference information can be found at SQLite Python Tutorial, but is not necessary to complete this lab. 8615219837 1 import sqlite3 2 from sqlite3 import Error 3 4 5 def create_connection(db_file): conn = None 7 try: 8 conn = sqlite3.connect(":memory:") 9 return conn 10 except Error as e: 11 print(e) 12 13 # query to create the table 14 table_sql = " 15 CREATE TABLE Horses ( 16 id integer PRIMARY KEY NOT NULL, 17 name text, 18 breed text, 19 height real, 20 birthday text 21); 22" 23 24 # query to insert data into the table 25 ins_sql = ""INSERT INTO Horses VALUES (1, 'Babe', 'Quarter Horse', 15.3, '2015-02-10'); ** 26 # query to fetch all data from the table 27 fetch_sql = "SELECT * FROM Horses; 28 29 # creating do connection 30 conn create_connection(none) 31 # fetching a cursor from the connection 32 c = conn.cursor() 33 # executing statement to create table 34 c.execute(table_sql) 35 # executing statement to insert data into the table 36 c.execute(ins_sql) 37 # executing statement to fetch data from the table 38 c.execute(fetch_sql) 39 # fetching rows retrieved by Last query 40 rows = c.fetchall) 41 42 print("All horses:") 43 # Looping and printing each row returned. 44 for row in rows: 1: Unit test A 0/1 Test create_connection() returns a valid database connection TypeError: create_connection() missing 1 required positional argument: 'db_file Your output All horses: (1, 'Babe', Quarter Horse', 15.3, '2015-02-10') 2: Unit test A 0/3 Test create_table creates Horse table test_passed function missing Your output All horses: (1, 'Babe' Quarter Horse', 15.3, '2015-02-10') 3. Unit test a 0/3 Test insert_horse() inserts row to Horse table test_passed function missing Your output All horses: (1, 'Babe', Quarter Horse', 15.3, '2015-02-10') 4: Compare output A 3/3 Your output All horses: (1, 'Babe', 'Quarter Horse', 15.3, '2015-02-10)