MySQL 学习指南
本文最后更新于:2023年8月4日 下午
基本概念
MySQL是一种关系型数据库管理系统,被广泛用于存储和管理结构化数据。它是开源的,免费使用,并且支持多种操作系统。
以下是一些MySQL的基本概念:
数据库和表格
- 数据库:MySQL可以管理多个数据库,每个数据库是一个独立的数据存储单元。
- 表格:数据库由多个表格组成,每个表格是一个二维数据结构,用于存储数据。
基本数据类型
MySQL支持多种数据类型,
常用的数据类型有:- INT:整数类型
- VARCHAR:可变长度字符串类型
- DATE:日期类型
- FLOAT:浮点数类型
SQL语句
SQL(Structured Query Language)是用于与数据库进行交互的语言。通过SQL语句可以完成各种操作:- 查询数据:使用SELECT语句来检索数据。
- 插入数据:使用INSERT INTO语句将数据插入表格。
- 更新数据:使用UPDATE语句更新表格中的数据。
- 删除数据:使用DELETE FROM语句删除表格中的数据。
数据库连接
连接数据库是在Python或其他编程语言中与MySQL进行交互的第一步。连接器库(如mysql-connector-python或pymysql)提供了与数据库建立连接的功能。
一旦建立了数据库连接,你可以通过执行SQL语句来读取、写入和修改数据库中的数据。
安装MySQL教程
https://blog.csdn.net/m0_52559040/article/details/121843945
常用cmd命令
mysql -uroot -p
: 启动数据库- 最初,都是使用 root 用户登录,工作中如果一直用 root 用户登录,因为权限太大,风险是很大的,所以等创建好权限适合的用户后,就不要经常登录 root 用户了。
\h
:查看命令行说明\c
:clear the current input statement\G
: send commend to mysql server, display result vertically\p
: print current command\q
: Quit Mysql\s
: get status information from the server
更多命令输入\h
查看
基本操作
查看当前的数据库
1 |
|
创建数据库
1 |
|
- 创建数据库时设置字符编码:通常我们会在数据库中存放中文数据,所以最好把数据库的编码方式设置成 utf-8 ,这样中文才能正常显示。
1
create database MyDB_three charset utf8;
- 查看和显示数据库的编码方式
1
2show create database MyDB_one;
show create database MyDB_two; - 修改数据库编码
1
alter database MyDB_one character set utf8;
进入或切换数据库
1 |
|
刚连接上 MySQL 时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。
use 数据库名
这个命令后面的分号可以省略,这是 SQL 语句中唯一可以省略分号的语句。
- 显示当前数据库:
1
select database();
创建数据表
查看当前数据库中的表
1 |
|
创建表
1 |
|
显示表信息
1 |
|
给表增加字段
1 |
|
删除表的字段
1 |
|
更多操作参考:https://zhuanlan.zhihu.com/p/370510336
import pymysql 操作MySQL数据库
pip install pymysql
安装pymysql库- 在python脚本中导入库:
1
import pymysql
- 建立数据库连接
使用pymysql.connect( )
函数来建立与MySQL数据库的连接。提供MySQL服务器的主机名、用户名、密码和数据库名称等信息。1
2
3
4
5
6
7# 建立数据库连接
connection = pymysql.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database_name'
) - 创建游标对象
在连接上创建游标对象,用于执行SQL查询和获取结果。1
cursor = connection.cursor()
- 执行SQL查询
- 查询数据
1
2
3
4
5
6
7
8
9
10# 查询数据
query = "SELECT * FROM your_table_name;"
cursor.execute(query)
# 获取所有结果
results = cursor.fetchall()
# 遍历结果并打印
for row in results:
print(row)
- 查询数据
- 插入数据 使用游标对象cur执行了一个INSERT语句,向名为
1
2
3
4
5
6
7# 插入数据
query = "INSERT INTO your_table_name (column1, column2, column3) VALUES (%s, %s, %s);"
data = ('value1', 'value2', 'value3')
cursor.execute(query, data)
# 提交更改
connection.commit()your_table_name
的表格中插入一条数据。
INSERT语句中的参数使用占位符%s表示。这样做可以防止SQL注入攻击。cur.execute()
方法将会将后面提供的参数值安全地插入到SQL语句中。
调用了conn.commit()
来提交更改,将数据插入到数据库中。如果没有调用commit()方法,数据库将不会保存插入的数据。
- 关闭连接
在完成所有数据库操作后,关闭游标和连接。1
2cursor.close()
connection.close()
样例源码:更新库中用户数据
假设你有一个名为users的表格,包含id、name和age三列。现在,你想根据id来更新某个用户的信息。
1 |
|