Python中对数据库的操作详解
作者:爱吃饼干的小白鼠 发布时间:2024-01-19 18:26:54
一、数据库介绍
1、为什么要学习数据库
通常,我们存储数据,直接用本地文件即可,但是,本地文件不利于存放海量数据,也不利于用程序对文件的数据进行查询与管理,那么为了解决这些弊端,才有数据库的出现,那么数据库也是每个程序员比须掌握的计数。
2、数据库的介绍
定义
数据库(database)简称DB,是加上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库膳食按照特定的格式吧数据存储起来,用户可以对存储的数据进行增删改查操作
存储数据特点
持久化存储
读写速度极高
保证数据的优先性
对程序支持非常好,容易扩展
数据库的分类
关系型数据库:可以保存现实生活中的各种关系数据,数据库中存储数据以表为单位,主流关系型数据库:MySQL,Oracle,SQLServer等
非关系数据库:通常用来解决某些特定的需求,比如高并发访问,主流非关系型数据库:Redis,Mongodb,memacache等
二、MySQL介绍
MySQL 是最流行的 RDBMS,即关系数据库管理系统,在 Web 方面应用广泛。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。对于用户来说,我们可以把数据库当作一个黑盒子,使用 RDBMS 听得懂的语言(也就是 SQL)进行交流,即可对数据库进行增删改查(CRUD)操作。
同时,作为一款广泛应用的数据库产品,除了直接使用 SQL 进行操作之外,MySQL 还为广大用户提供了 C、C++、Python、Java、php、C# 等等多种编程语言的操作接口。下面我们就来看看如何通过 Python3 对 MySQL 数据库进行操作。
安装MySQL
大家可能在 Python2.x 中用的是 mysqldb,但是在 Python3.x 中已经不支持这个组件了,取而代之的是 pymysql。
pip install PyMySQL
使用数据库
1、语法格式
创建数据库的语法格式如下:
CREATE DATABASE database_name
2、简单示例
首先,在CentOS 6.8服务器上登录MySQL。
[root@binghe150 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.18 binghe edition
Copyright (c) 2000, 2019, 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>
接下来,在MySQL命令行中查看当前MySQL中存在的数据库。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.04 sec)
可以看到,此时只有4个MySQL自带的数据库,分别是information_schema、mysql、performance_schema和sys。
在MySQL命令行中使用CREATE DATABASE database_name语句创建名称为goods的商品数据库。
mysql> CREATE DATABASE goods;
Query OK, 1 row affected (0.02 sec)
从MySQL输出的结果信息中可以看出,名称为goods的商品数据库创建成功。
此时,查看MySQL中存在的数据库。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| goods |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
可以看到,此时MySQL中多了名称为goods的数据库。
三、查看数据库
在MySQL中查看数据库包含:查看MySQL中存在的数据库、查看MySQL当前命令行所在的数据库、查看MySQL中具体某个数据库的创建信息等。
查看MySQL中存在的数据库
在MySQL命令行输入如下命令:
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| goods |
+------------+
1 row in set (0.00 sec)
MySQL命令行当前所在的数据库为goods。接下来将MySQL命令行所在的数据库切换为mysql。
mysql> USE mysql;
Database changed
再次查看MySQL命令行所在的数据库。
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
此时MySQL命令行所在的数据库变为mysql。
四、简单示例
查看goods数据库的创建信息。
mysql> SHOW CREATE DATABASE goods;
+-------+----------------------------------------------------------------------------------------+
|Database|Create Database |
+-------+----------------------------------------------------------------------------------------+
| goods | CREATE DATABASE `goods` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
*//*!80016 DEFAULT ENCRYPTION='N' */ |
+-------+----------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
或者:
mysql> SHOW CREATE DATABASE goods \G
*************************** 1. row ***************************
Database: goods
Create Database: CREATE DATABASE `goods` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_
0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
1 row in set (0.00 sec)
可以看出,创建名称为goods的数据库时,使用的字符编码为utf8mb4,使用的校对规则为utf8mb4_0900_ai_ci,DEFAULT ENCRYPTION='N'表示默认没有使用MySQL的加密技术。
修改数据库名称
在MySQL 5.1.7版本中提供了修改数据库名称的SQL语句,语法格式如下:
RENAME DATABASE db_name TO new_db_name
但是从MySQL 5.1.23版本之后,就将此SQL语句去掉了,原因是此SQL语句可能会造成数据丢失。
虽然MySQL没有直接提供修改数据库名称的SQL语句,但是,可以通过其他方式达到修改MySQL数据库名称的效果。
通过重命名数据表修改数据库名称
(1)在MySQL中创建数据库test_old,并在test数据库中创建名称为table_test的数据表。
mysql> CREATE DATABASE IF NOT EXISTS test_old;
Query OK, 1 row affected (0.01 sec)
mysql> USE test_old;
Database changed
mysql> CREATE TABLE IF NOT EXISTS table_test(id int);
Query OK, 0 rows affected (0.01 sec)
注意:有关数据表和存储引擎的知识,在后续章节中会详细介绍,这里为了演示修改数据库的操作,先简单创建一个测试表。
(2)查看名称为test_old数据库下的数据表。
mysql> SHOW TABLES;
+--------------------+
| Tables_in_test_old |
+--------------------+
| table_test |
+--------------------+
1 row in set (0.00 sec)
可以看到,test_old数据库下存在table_test数据表,说明table_test数据表创建成功。
(3)在MySQL命令行创建test_new数据库。
mysql> CREATE DATABASE IF NOT EXISTS test_new;
Query OK, 1 row affected (0.01 sec)
(4)重命名数据表。将test_old数据库下的数据表重命名到test_new数据库下。
mysql> RENAME TABLE test_old.table_test TO test_new.table_test;
Query OK, 0 rows affected (0.00 sec)
(5)删除test_old数据库。
mysql> DROP TABLE IF EXISTS test_old;
Query OK, 0 rows affected, 1 warning (0.00 sec)
(6)查看test_new数据库下存在的数据表。
mysql> USE test_new;
Database changed
mysql> SHOW TABLES;
+--------------------+
| Tables_in_test_new |
+--------------------+
| table_test |
+--------------------+
1 row in set (0.00 sec)
可以看到,table_test数据表所在的数据库由原来的test_old变成了test_new,达到了修改数据库名称的效果。
来源:https://blog.csdn.net/BROKEN__Y/article/details/128569332
猜你喜欢
- 阅读上一篇:交互设计模式(二)-Pagination(分页,标记页数) Tagging(标签)问题摘要用户往往想通过流行或最详尽的主题来浏览
- 一、JMM的内存可见性保证按程序类型,Java程序的内存可见性保证可以分为下列3类:单线程程序:单线程程序不会出现内存可见性问题。编译器、r
- Form表单的功能自动生成HTML表单元素检查表单数据的合法性如果验证错误,重新显示表单(数据不会重置)数据类型转换(字符类型的数据转换成相
- 方法一先按esc进入命令模式,即左侧线为蓝色(为绿色时是编辑模式),按z键即可恢复方法二如果是运行过的代码直接运行history方法三功能栏
- 如下所示:import time首先导入时间模块在程序开始执行的地方写入:start=time.clock()在程序末尾写入:end=tim
- 在Microsoft SQL Server 2000中,用于数据存储的实用工具是数据库。数据库的物理表现是操作系统文件,即在物理上,一个数据
- 我们知道,dropout一般都在训练的时候使用,那么测试的时候如何也开启dropout呢?在pytorch中,网络有train和eval两种
- 这是一个给新手学习代码的帖子,包含以下内容:如何使用UBB代码,如何用js与剪贴板交互,如何使用textRange对象,如何使用自定义的快捷
- 图像的全景拼接包括三大部分:特征点提取与匹配、图像配准、图像融合。1、基于SIFT的特征点的提取与匹配利用Sift提取图像的局部特征,在尺度
- 问题如下当我使用Matplotlib绘制图形时,经常会遇到一些比例太小导致 百分比标签 以及 文本标签 重叠问题。这样的话非常影响美观,效果
- HTTP_X_FORWARDED_FOR与REMOTE_ADDR的区别.在Request.ServerVariables中并没有HTTP_X
- 问题:输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致。例如:import pa
- 今天帮同事处理一个棘手的事情,问题是这样的:无论在客户机用哪个版本的mysql客户端连接服务器,发现只要服务器端设置了character-s
- 1.安装wkhtmltopdf下载地址:https://wkhtmltopdf.org/downloads.html我测试用的是window
- 下面这段代码能够显示,当前用户所能够看到的所有的用户和表有兴趣的, 可以把每个表的内容加上<% Dim objOraSess
- 前言Python 这门语言最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。但有时候我们写代码,特别是 Python
- 下面是asp代码实现列出sql数据库中存储过程的功能,可自行添加其它功能:< HTML >< 
- 需求:(1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中(2)将这个txt文件发送给指定
- 如下所示:import pandas as pdfrom pandas import DataFrameseries = pd.read_c
- 一、简介从Python2.6开始,新增了str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 %