Python之操作MySQL数据库

一.MySQL数据库启动与登陆

  安装这里就不细说了。安装完成之后记得将安装路径配置进环境变量。然后进入到命令行下启动数据库。注:MySQL数据库安装完成后默认的是开启状态。

  • 开启MySQL数据库,注:此处输入的服务名是安装时候设置的服务名称,MySQL5.7的版本默认的服务名称是MySQL57

  • 关闭MySQL数据库服务

  • 登陆MySQL数据库

二.建表

  • 显示数据库
show databases;
  • 创建数据库
create database lianxi DEFAULT character set utf8
  • 使用数据库
use lianxi;
  • 多表之一对多
create table user_info(
id int not null auto_increment primary key,
name char(20),
age int,
gender char(1),
deparment_id int,
constraint 约束名称 foregin key(deparment_id) references dep_info(id)
)engine = innodb default charset=utf8;

create table dep_info(
id int not null auto_increment primary key,
title char(32),
)engine=innode default charset=utf8;
  • 多表之多对多(关系表)
create table boy(
id int not null auto_increment primary key,
name char(32)
)engine = innodb default charset=utf8;

create table girl(
id int not null auto_increment primary key,
name char(32)
)engine = innodb default charset=utf8;

create table b2g(
id int not null auto_increment primary key,
b_id int,
g_id int,
constraint 约束名称1 foregin key(b_id) references boy(id),
constraint 约束名称2 foregin key(g_id) references girl(id)
)engine = innodb default charset = utf8;

应用场景:
1、根据具体业务
2、HTML的场景
创建的时候只需要输入数据的情况下:单表
创建的时候必须要我们选择一个其他数据的场景下:一对多
创建的时候针对某些字段可以进行多选的情况下:多对多

  • 删除数据库
drop database db_name;

三.增删改查

  • 插入:
insert into table_name(field) values(value),(value2) ;--> 两个(value)表示插如多行数据
insert into table_name(cname) select field from table_name; --> 把select查到的结果,当作数据来赋值给value
  • 清空表
delete from table_name; --> 自增列会继续之前的ID
truncate table table_name; --> 物理删除,速度快,重新计算ID
  • 删除某一条
delete from table_name where filed = values and/or ...  --> 只删除符合条件的数据
delete from table_name where filed in (1,2,3,4);
delete from table_name where id between 5 and 10;
  • 修改
update table_name set field = ‘value‘; --> 更新所有数据的field字段的值,加 where 只修改匹配到的行
update table_name set id = 8 , name = ‘daxin‘ where age = 18;
  • 查询
select * from table_name where id > 2;
select field as ‘别名‘ from table_name --> 加别名
select * from table_name where id in (1,2);
select * from table_name where cid in (select tid from teacher);
  • 条件查询
select * from table_name order by field asc/desc(正序/倒序)
select * from table_name order by field asc limit 1 取第一个值
select * from table_name limit 1,2(起始位置,找几个)
select * from table_name where field like ‘%key%‘ --> 查找field字段包含key的数据
% 表示任意个任意字符, _表示任意一个字符
  • 分组
select * from table_name group by field --> 分组显示,会去重,需要使用聚合函数来统计重复的次数
select field,count(id) from table_name group by field --> 对id字段进行聚合(其他的还有min(),max(),sum(),avg()等)
  • 例子
1、获取每个班级多少人
SELECT class.caption,count(sid) from class
LEFT join student on student.class_id = class.cid group by class.caption;

2、获取每个班级有多少人并且选出认识大于2的班级

注意:如果针对 group by 的结果进行筛选,那么需要使用 having 不能在使用 where 了.

SELECT class.caption,count(sid) as number from class
LEFT join student on student.class_id = class.cid
group by class.caption
HAVING number >= 2;

3、每个课程的不及格的人数

select course.cname,count(sid) from score
left join course on score.corse_id = course.cid
where number < 60
group by course.cname;

四.连表

select student.sid,student.sname,class.caption from student LEFT JOIN class on student.class_id = class.cid ;
把class表中的字段放在student表的左边,并且进行 student.class_id = class.cid 匹配后显示,数据量以from指定的表为基准
left join:
以 from 指定的表为基准,对数据进行显示
right join: -->不常用
以 join 后面的表为基准进行显示。
inner join:(join 使用的就是)
只保留连个表中都有数据的条目
例子:
1、id=1的老师任教的课程名称
2、老师姓名瞎猫任教的课程命令
3、已选课程id=1,所有学生的姓名
4、已选体育课,所有学生的姓名
5、已选波多任教任意课程,所有学生姓名

union:
把两个SQL的结果进行组合(上下合并)
select * from student
union / union all
select * from teacher;
注意上下两个表中的列数要统一
注意:
1、如果所有数据都一致,那么union会对结果进行去重
2、union all ,会保存所有的

五.基本数据类型

MySQL的数据类型大致分为:数值、时间 和 字符串。
数字:
整数
tinyint 小整数,数据类型用于保存一些范围的整数数值范围。
smallint
int
bigint
小数
float 浮点型(长度越长越不精准)
double 浮点型(双精度,精度比float稍高) 范围比float更大
decimal 精准(内部使用字符串进行存储的) -> 适合对精度有要求的
字符串
char(19)[字符长度] 定长字符串 --> 占用空间大,但是效率高
varchar(19)[字符长度] 不定长字符串 --> 占用空间是可变的,但是效率低
注意:最大可以存放255个字符
text() 65535个字符
mediumtext() 16777215个字符
longtext() 4294967254个字符
二进制:
TinyBlob
Blob
MediumBlob
LongBlob
存文件:虽然可以用二进制进行存储,但是一般是存储文件在服务器上的路径(URL)
时间:
date YYYY-MM-DD
time HH:MM:SS
year YYYY
DATETIME YYYY-MM-DD HH:MM:SS -->常用
TIMESTAMP 时间戳格式

  

时间: 2024-10-24 11:44:34

Python之操作MySQL数据库的相关文章

python 之操作mysql 数据库实例

对于python操作mysql 数据库,具体的步骤应为: 1. 连接上mysql host 端口号 数据库 账号 密码2. 建立游标3. 执行sql(注意,如果是update,insert,delete 需要进行提交才能生效.)4. 获取结果5. 关闭连接.关闭游标 一.默认获取的结果是元祖 1 conn = pymysql.connect(host='localhost',user='root',passwd='123456',port=3306,db='sakila',charset='ut

Python之 操作 MySQL 数据库

什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. 安装 Python MySQLdb 模块 linux版本:(配置好yum源) pip install MySQL-pythonyum install MySQL-python 如何加载MySQLdb? 为了用DB-API编写MySQL脚本,必须确保已经安装了MySQL.复制以下代码,并执行: #!/usr/bin/

python 安装操作 MySQL 数据库.

以ubuntu和mysql为例 检查自己的机器上面有没有安装数据库 1 [email protected]:~$ sudo service mysql start 2 [sudo] xpower 的密码: 尝试输入命令打开 MySQL 不同的版本会有不同的效果 , 我的什么反馈也没有这就说明已经安装并且启动成功了 ( 没有消息就是最好的消息 ) 有的 ubuntu 会有反馈 , 自己看反馈内容 . 很容易判断 . 安装MySQL(安装过程中可能需要填写一点东西 . 建议填写一下 . ) 1 [e

python 连接操作mysql数据库

开发数据库程序流程: 1.创建connection对象,获取cursor 2.使用cursor执行SQL 3.使用cursor获取数据.判断执行状态 4.提交事务 或者 回滚事务 import: 数据库连接对象:connection 数据库交互对象:cursor #sql查询语句 sql='select * from user ' #sql语句执行 cursor.execute(sql) #获取返回数据总条数 rs=cursor.rowcount print rs #获取返回的第一条数据,此时游

使用pandas操作MySQL数据库

转载(有添加.修改)作者:但盼风雨来_jc链接:https://www.jianshu.com/p/238a13995b2b來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识 ORM技术   对象关系映射技术,即ORM(Object-Relational Mapping)技术,指的是把关系数据库的表结构映射到对象上,通过使用描述对象和数据库之间映射的元数

python操作mysql数据库

连接数据库 输入值 存入数据库 关闭 import string import mysql.connector conn=mysql.connector.connect(user='root',password='test',database='dalian',use_unicode=True) cursor=conn.cursor() a=raw_input('enter an id: ') b=raw_input('enter a name: ') while(a!='quit' or b!

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

使用python操作mysql数据库

这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector-python 是MySQL官方的Python驱动 https://dev.mysql.com/doc/connector-python/en/ 安装: pip install mysql-connector 示例代码: https://github.com/mike-zhang/pyExample

Python MySQLdb模块连接操作mysql数据库实例_python

mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档. 由于python的数据库模块有专门的数据库模块的规范,所以,其实不管使用哪种数据库的方法都大同小异的,这里就给出一段示范的代码: #-*- encoding: gb2312 -*- import os, sys, string impo