# 添加字段时设定位置 ALTERTABLE n ADD age VARCHAR(2) FIRST; ALTERTABLE n ADD age VARCHAR(2) AFTERname;
# 修改字段在表中的位置 ALTERTABLE n MODIFY age VARCHAR(2) AFTERname;
# 删除字段 ALTERTABLE n DROP age;
# 更改字段属性和属性 ALTERTABLE n CHANGE age a INT;
# 只更改字段属性 ALTERTABLE n MODIFY age VARCHAR(7) ;
# 改变表的存储引擎 ALTERTABLE t ENGINE myisam; ALTERTABLE t ENGINEinnodb;
# 设定自增 初始为1,只能一个字段使用,该字段为主键的一部分 ALTERTABLE t AUTO_INCREMENT = 0;
表的数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# 增加数据 INSERTINTO n VALUES (1, 'tom', '23'), (2, 'john', '22'); INSERT INTO n SELECT * FROM n; # 把数据复制一遍重新插入
# 删除数据 DELETEFROM n WHEREid = 2;
# 更改数据 UPDATE n SETname = 'tom'WHEREid = 2;
# 数据查找 SELECT * FROM n WHEREnameLIKE'%h%';
# 数据排序(反序) SELECT * FROM n ORDERBYname, idDESC ;
【10.2】Python 连接 MySQL
1 2 3 4 5 6 7 8 9
import pymysql
db = pymysql.connect(host='localhost', user='root', password='000000', port=3306) cursor = db.cursor() cursor.execute('SELECT VERSION()') data = cursor.fetchone() print('Database version:', data) cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER SET utf8mb4") db.close()
通过 PyMySQL 的 connect 方法声明一个 MySQL 连接对象 db,当前 MySQL 数据库运行在本地,设定 host='localhost',用户名为 root,登录密码为 000000,运行在 3306 端口,调用 cursor() 方法获得 MySQL 的操作游标,该游标用来执行 SQL 语句,通过游标操作 execute() 方法写入 SQL 语句,第一条 SQL 语句获取 MySQL 的版本信息,调用 fetchone() 方法获得第一条数据,即 MySQL 的版本号。第二条 SQL 语句执行创建 spiders 数据库的操作,编码为 utf8mb4,运行该段代码将输出 MySQL 的版本号:
1
Database version: ('8.0.17',)
【10.3】创建表
1 2 3 4 5 6 7
import pymysql
db = pymysql.connect(host='localhost', user='root', password='000000', port=3306, db='spiders') cursor = db.cursor() sql = 'CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age VARCHAR(255) NOT NULL, PRIMARY KEY (id))' cursor.execute(sql) db.close()
该段代码实现了在 spiders 数据库里创建了一个名为 students 的表,包含 id、name、age 三个字段,类型依次为 varchar、varchar、int
【10.4】插入数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import pymysql
id = '17110105' user = 'TRH' age = 20 db = pymysql.connect(host='localhost', user='root', password='000000', port=3306, db='spiders') cursor = db.cursor() sql = 'INSERT INTO students(id, name, age) values(%s, %s, %s)' try: cursor.execute(sql, (id, user, age)) db.commit() except: db.rollback() db.close()
利用 requests 库构建请求,BeautifulSoup 解析库解析网页,获取自己博客文章的标题和地址,将其储存到本地 MySQL 数据库中,事先已经创建好了一个 blog 数据库,并创建了一个名为 article 的数据表,数据表包含 id、title、url 三个字段,其中 id 的 AUTO_INCREMENT 属性可以使 id 自己增加,PRIMARY KEY 关键字用于将 id 定义为主键
创建 article 数据表:
1 2 3 4 5 6 7
import pymysql
db = pymysql.connect(host='localhost', user='root', password='000000', port=3306, db='blog') cursor = db.cursor() sql = 'CREATE TABLE IF NOT EXISTS article (id INT NOT NULL AUTO_INCREMENT, title VARCHAR(255) NOT NULL, url VARCHAR(255) NOT NULL, PRIMARY KEY (id))' cursor.execute(sql) db.close()