1.在bash_profile中配置全局环境变量
终端open ~/.bash_profile
打开环境变量配置文件,写入:
# mysql
export PATH=$PATH:/usr/local/mysql/bin
保存后退出,重新打开终端,使用命令mysql启动。
2.设置MySQL的root密码:
lishiqiangdeMacBook-Pro:~ bakufu$ MySQL -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('150428');
Query OK, 0 rows affected (0.01 sec)
创建数据库并查看已有数据库
mysql> CREATE DATABASE my_suppliers;
Query OK, 1 row affected (0.01 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_suppliers |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
创建数据表先选择数据库
mysql> USE my_suppliers;
Database changed
mysql> CREATE TABLE IF NOT EXISTS Suppliers
-> (Supplier_Name VARCHAR(20),
-> Invoice_Number VARCHAR(20),
-> Part_Number VARCHAR(20),
-> Cost FLOAT,
-> Purchase_Date DATE);
Query OK, 0 rows affected (0.03 sec)
如果数据库不存在数据表Suppliers ,命令就创建数据表Suppliers,含5个列(fields或attributes)。
- VARCHAR型字段:可变字符,为字段中的数据分配20个字符。
- CHAR型字段:用于设置有固定数量字符的字段,或者需要将字段中的值向右补齐到一个固定长度时。
- ENUM型字段:用于字段取值是允许值列表(如small、medium、large)时。
- BLOB型字段:用于字段内容是长度可变的大量文本时。
- FLOAT型字段:浮点数字段保存浮点数近似值。本例包含货币值,所以用NUMERIC替代FLOAT型字段。
- NUMERIC型字段:即定点确定值类型字段。不使用FLOAT,使用NUMERIC(11, 2),11是数值的精度,或者是为数值保存的数位总数,2是小数位数。
- DATE型字段:用于保存日期('YYYY-MM-DD'),无时间部分。
验证数据表创建正确
显示列名、数据类型和值可否为NULL。
mysql> DESCRIBE Suppliers;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Supplier_Name | varchar(20) | YES | | NULL | |
| Invoice_Number | varchar(20) | YES | | NULL | |
| Part_Number | varchar(20) | YES | | NULL | |
| Cost | float | YES | | NULL | |
| Purchase_Date | date | YES | | NULL | |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
创建新用户并授权
mysql> CREATE USER 'shiqiang'@'localhost' IDENTIFIED BY '150428';
Query OK, 0 rows affected (0.00 sec)
# 向新用户授权,使用两条命令
mysql> GRANT ALL PRIVILEGES ON my_suppliers.* TO 'shiqiang'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
4.2.1 向表中插入新记录
准备从CSV文件中将记录加载到数据表中。
Python会将数据从CSV文件插入到数据表,然后展示表中数据。
4db_mysql_load_from_csv.py
#!/usr/bin/env python3
import csv
import MySQLdb
import sys
from datetime import datetime, date
# CSV输入文件的路径和文件名
input_file = sys.argv[1]
# 连接MySQL数据库
con = MySQLdb.connect(host='localhost', port=3306, db='my_suppliers', \
user='root', passwd='150428')
c = con.cursor()
# 向Suppliers表中插入数据