I dont understand why the following script:
first_name VARCHAR(20),
last_name VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
password CHAR(40) NOT NULL,
has names etc as VARCHAR and password as CHAR.. is it because of how it is retrieved, i.e. names come together, like first name comes with surname, whereas passwords are individual.. im not sure..
Also, in MySQL is script the same thing as code in Python?
Varchar is variable length and Char is fixed length.
Since name,last_name,email generally varies in length, its best to use variable length so only as much storage is used as needed; password length generally depends on the restrictions/conditions as imposed by the application and may be fixed when stored(eg stored as md5 hex string or so), so Char data type is used. If content is of fixed size, char has better performance.
For more, please refer to http://dev.mysql.com/doc/refman/5.7/en/char.html