【Python】MySql基础

49 阅读6分钟

初识 MySql:

MySql的安装:

1. 打开官网:

www.mysql.com/, 找到 DOWNLOADS,点击并进入:

image.png

2. 界面滑到最下边,这个位置,点击并进入:

image.png

3. 根据电脑的系统选择对应的链接:

image.png

4. 以 Mac - M2 为例:

image.png

5. 安装包下载成功后,双击开始安装:

image.png

6. 选择允许,点击继续,同意并安装::

image.png

image.png

image.png

image.png

7. 终端登录测试:

打开终端,输入cd /usr/loacal/mysql/bin,回车键,进入mysql的bin目录下

然后输入:mysql -u root -p,回车键,登录mysql。

8. 可能遇到的问题:

如果总是返回 zsh: command not found: mysql

解决方案:

在终端输入:

cd /usr/local/bin/
sudo ln -fs /usr/local/mysql/bin/mysql mysql
原因:

由于 mac 默认只能识别处在/usr/local/bin路径中的mysql命令。

而我的mac 安装的mysql的命令路径是在/usr/local/mysql/bin/里面,所以mysql相关的命令,默认只能在/usr/local/mysql/bin/路径下生效。

如果直接使用 连接mysql数据库的命令mysql -u root -p,就会报mysql: command not found的错误;

Mac 启动 mysql 的指令:

查看数据库mysql的端口:

sudo lsof -i :3306

查看数据库mysql的主机IP:

nslookup localhost

创建数据库及表的步骤:

1、打开终端,输入:

cd /usr/local/bin/

2、继续输入:

sudo ln -fs /usr/local/mysql/bin/mysql mysql

3、输入锁屏密码:******

4、进入bin目录下:

mysql -u root -p

5、输入数据库密码:******

进入mysql>

创建数据库:

在登陆 MySQL 服务后,使用命令创建数据库,语法如下:

create database maria_001;

查看所有的数据库:

show databases;

再创建个数据库:

create database maria_002;

删除其中一个数据库:

使用普通用户登陆 MySQL 服务器,可能需要特定的权限来创建或者删除 MySQL 数据库,所以可以使用 root 用户登录,root 用户拥有最高权限。

在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。 语法如下:

drop database maria_001;

使用某个数据库:

在连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以需要选择要操作的数据库。 可以使用SQL命令来选择指定的数据库,语法如下:

use maria_002;
在该数据库中创建一个表:

创建MySQL数据表需要以下信息:

  • 表名
  • 表字段
  • 定义每个表字段

语法如下:

CREATE TABLE table_name (column_name column_type);
举例:
create table book_tb(
    book_id int auto_increment,
    book_title varchar(100) not null,
    book_author varchar(40) not null,
    book_date DATE,
    primary key(book_id)
)charset=utf-8;
解析:
  • 如果你希望字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加 1。
  • PRIMARY KEY关键字用于定义列为主键。 可以使用多列来定义主键,列间以逗号分隔。
  • CHARSET是设置编码。

成功创建表之后,可以通过命令查看表结构。

查看我们数据库中所有的表:
show tables;
描述某表的结构:
desc book_tb;
插入一条数据:

MySQL 表中使用 INSERT INTO 语句来插入数据。 语法:以下为向MySQL数据表插入数据通用的语法:

如果数据是字符型,必须使用单引号或者双引号,如:"value"。

INSERT INTO 表名 ( 字段1, 字段2,...字段N ) VALUE ( 值1, 值2,...值N );
举例:
insert into  book_tb
   (book_id,book_title,book_author,book_date)
   value
   (1,'mysql基础','Maria','now()');

添加完成之后,可以通过查询语句进行查询:

查询数据:

MySQL 数据库使用SQL SELECT语句来查询数据。 语法:在MySQL数据库中查询数据通用的 SELECT 语法:

select 字段1,字典2,...字段n from table_name [where 条件] [limit n]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 可以使用 WHERE 语句来包含条件。
  • 可以使用 LIMIT 属性来设定返回的记录数。
举例:
select * from book_tb;
更新表数据:

如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。 语法:以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:

  • 可以同时更新一个或者多个字段
  • 你可以在 WHERE 子句中指定条件
update 表名 set 字段1=new-value1,字段2=new-value2 [where 条件];
举例:
update book_tb set book_author='maria002' where book_id=1;
删除某条件下该表中的某数据(不是删除该表):

可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。 语法:以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:

delete from 表名 [where 条件];
举例:
delete from book_tb where book_id=1;
MySQL删除数据表

MySQL中删除数据表是非常容易操作的,但是我们在进行删除表操作时要非常谨慎,因为执行删除命令后所有数据都会消失。 语法:以下为删除mysql数据表的通用语法:

DROP TABLE 表名;

执行成功后,可以尝试查看表,会发现查询不到。

pymysql 操作 mysql 数据库:

流程图解:

创建连接—获取游标—执行命令—关闭游标—关闭连接。

image.png

在 pycharm 中的操作步骤:

1、首先需要安装并导入第三方库

pip install pymysql(先安装)
import pymysql(再导入)

2、创建连接:

pymysql.Connect(
    host='127.0.0.1'  主机IP
    port='7706'       端口(线程)
    user='root'       用户
    password=''       数据库的登录密码
    db='maria_001'        是我们要使用的某数据库名
)

3、创建游标,用于传递python给mysql的命令和mysql返回的内容:

cursor = db.cursor()

4、SQL插入语句:

insert into book_tb(book_id,book_title,book_author,book_date) value (2,'爬虫升级','manta',NOW());

5、执行slq语句

cursor.execute(sql)

6、提交到数据库执行

db.commit()

7、关闭

db.close()  # 可有可无

代码实现:

第三方模块的安装  pip install pymysql 


import pymysql

# 创建链接
db = pymysql.Connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="123456",
    db="xiangxue"
)
# 创建游标,用于传递python给MySQL的命令和MySQL返回的内容
cursor = db.cursor()

# SQL插入语句
sql = "insert into book_tbl(book_id, book_title, book_author,book_date) values (4,'mysql基础','Maria',NOW())"

# 执行SQL语句
cursor.execute(sql)

# 提交到数据库执行
db.commit()

csv文件写入MySQL数据库

import csv
import pymysql

conn = pymysql.Connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="123456",
    db="xiangxue"
)

cursor = conn.cursor()

with open('douban.csv', 'r', encoding='utf-8') as file:
    reader = csv.reader(file)
    data = [row for row in reader]
    print(data)
sql = 'INSERT INTO douban(title, grade, link,quote) VALUES (%s, %s, %s,%s)'

for row in data:
    cursor.execute(sql, row)
conn.commit()
cursor.close()
conn.close()

常用的 Sql 语句:

  1. 查询数据:select * from 表名 where 字段 = 值;
  2. 插入数据:insert into 表名 (字段1, ……) values (值1, ……);
  3. 更新数据:update 表名 字段=值,…,字段n=值n where 字段=值;
  4. 删除数据:delete from 表名 where 字段=值;