我的第二十一篇博客---Mysql强化及应用于python

使用python读取数据库:

from pymysql import connect
conn=connect(host=‘localhost‘,port=3306,database=‘数据库名‘,user=‘root‘,password=‘密码‘,charset=‘utf8‘)
#获取cursor对象
cur=conn.cursor()
#执行sql语句
sql="select *from stu"
cur.execute(sql)
#fetchall取多条数据
result=cur.fetchall()
#定义一个列表
list=[]
for i in result:
#定义一个字典来存放学生信息
dict={}
dict[‘name‘]=i[0]
dict[‘age‘]=i[1]
list.append(dict)
print(list)

sql语句强化:

求所有电脑产品的平均价格,并且保留两位小数:
select round(avg(price),2) avg_price from goods;

查询每种类型中最贵的信息
select *from goods
inner join
(
select name,max(price) as max_price from goods group by name
) as new
on new.name=goods.name and new.max_price=goods.price;

将分组结果写入到cate_goods数据表中
insert into cate_goods(name) select name from goods group by name;

同步表数据:
通过goods_cates数据表来更新goods表
update goods as g inner join goods_cates as c on g.cate_name=c.name set g.cate_name=c.id;

语法:
要更新数据的表:a
根据aa表进行更新a表的数据
他这个应该只改了部分数据,id没改,name改了 则更新数据:
update a inner join aa on a.id=aa.id set a.name=aa.name;

创建表的同时插入数据:
create table aaa(
id int,
name varchar(10)
)
select id,name from a;
这样就把a表里的id,name的值插入到aaa表里了

三大范式:

第一范式:
原子性 (确保表中的每列都是一种信息)

第二范式:
确保表中的每列都和主键相关

第三范式:
确保每列都和主键列直接相关,而不是间接相关

删除数据的时候控制条件里用到子查询 而且是要删除的表时不能用
delete from student where class_id=1 and score=(select e.score from (select max(score) score from student) e));

当主键设有unsigned 时
再设外键时 也要有unsigned 不然添加不上

一个很好的事务处理系统,必须具备这些标准特性:
原子性:
一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性

一致性:
数据库总是从一个一致性的状态转换到另一个一致性的状态。

隔离性:
通常来说,一个事务所做的修改在最终提交以前,

持久性

begin;
开始

commit;
结束
或者
rollback;
回滚

创建视图:
create view 视图名 as select ...;
删除视图:
drop view 视图名

查看索引
show index from 表名;

创建索引:
如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
字段类型如果不是字符串,可以不填写长度部分
create index 索引名称 on 表名(字段名称(长度))

删除索引:
drop index 索引名称 on 表名;

联合索引:
create index index_name_age on student(name,age);
单独用age的时候用不到索引
最左原则
查询时where 后条件有name的时候采用到了索引

create table q(
id int,
index(id)
);

修改引擎:
alter table s engine=InnoDB;

查看引擎:
show create table s;

创建表时修改引擎:
create table s(
id int
)engine=InnoDB;

原文地址:https://www.cnblogs.com/sll-csdn/p/10926044.html

时间: 2024-10-30 06:31:56

我的第二十一篇博客---Mysql强化及应用于python的相关文章

我的第二十篇博客---Mysql基本命令

explain select name from student where name='小明';查看查询了多少行才找到 alter database 数据库名 character set utf8;  将数据库的编码改为utf8create database 数据库名 charset=utf8;   创建数据库指定编码为utf8 当一个表数据全部删除时,id设有主键自增,truncate table 表名;下次id从1开始 原表数据全部删除 要是不想全部删除 则 alter table 表名

我的第三十一篇博客---mongo

mongo 进入Mongoshow dbs 展示出mongo里数据库有哪些db 显示当前数据库use admin 切换到admin这个数据库show collections 展示里面的集合 db.info.insert({'name':'zhangsan','age':20}) 向当前数据库info列里插入这项数据db.info.find() 查询info里的数据db.dropDatabase() 删除当前的数据库 mongodb集合的命令不手动创建集合:向不存在的集合中第一次加入数据时,集合会

我的第二十七篇博客---beautifulsoup与csv操作方法

Beautiful Soup和lxml一样,也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据lxml只会局部遍历,而Beautiful Soup是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml/Beautiful Soup 用来解析HTML比较简单,API非常人性化,支持CSS选择器,Python标准库中的HTML解析器,也支持lxml的解析器 bs4的基本使用实:首先必须要导入bs4库from b

我的第二十三篇博客---爬虫简介

网络爬虫(又被称为网页蜘蛛,网络机器人) 就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,按照一定的规则,自动地抓取互联网信息的程序.原则上,只要是客户端(主要指浏览器)能做的事情,爬虫都能够做. 爬虫分类:通用爬虫:通常指搜索引擎的爬虫(百度,谷歌) 聚焦爬虫:针对特定网站的爬虫 积累式爬虫:从开始运行到打到停止条件的过程中不断爬取目标数据,过程中会进行去重操作增量式爬虫:只爬取新产生的或者已经发生变化网页的爬虫深网爬虫:隐藏在搜索表单或登录表单之后的数据,只有用户提交一些关键词或登

Python开发【第二十一篇】:Web框架之Django【基础】

Python开发[第二十一篇]:Web框架之Django[基础] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-a

第二十一篇 Java 数据类型的定义 ,以及基础类型的自动转换和强制转换

大家好,今天呢我吧我所学到的一些知识点共享给大家,希望大家看完之后,要是有什么不懂的,请随时联系我,要是觉得我写的不是很好的 ,还希望你们能够谅解一下,因为小弟我刚学会写博客也没多久,很多格式和方法都不是很完善,希望大家多多包涵,好了 废话就不多说了,来谈一下今天我所学到的一些知识点吧: 今天我主要是学到了一些Java中的数据类型,其中,Java中的数据类型分为俩类------基础数据类和逻辑数据类,下面我所介绍的都是基本数据类的一些分类,至于逻辑类,由于使用次数过少,所以今天就不再这里多做介绍

一篇博客让你了解RxJava

RxJava可以说是2016年最流行的项目之一了,最近也接触了一下RxJava,于是想写一篇博客,希望能通过这篇博客让大家能对其进行了解,本篇博客是基于RxJava2.0,跟RxJava1.0还是有很多不同的 基础知识 RxJava的核心就是"异步"两个字,其最关键的东西就是两个: Observable(被观察者) Observer/Subscriber(观察者) Observable可以发出一系列的 事件,这里的事件可以是任何东西,例如网络请求.复杂计算处理.数据库操作.文件操作等等

[iOS]关于 App 混合(Hybrid)开发的优化,包括H5、Weex等(本篇博客主要针对 iOS 应用讲解,但该思想同样适用于Android)

我们知道混合开发,可以节省很多成本(时间成本,经济成本等等),所以有很多公司比较钟爱这种开发形式,今天所讲的优化方式,也是我在我们公司的应用中实际用了的,而且我写的这个优化的 SDK 已经开源到 github 上了,有兴趣的同学可以下载来看一下,有不足的地方欢迎指正.这里给出链接:https://. 转载请注明出处:http://www.cnblogs.com/shisishao/p/6830736.html -.首先,先介绍下什么是混合开发: 我们通常把移动开发分为Web.Native和Hyb

这篇 博客将讲解如何删除目录以及删除文

这篇 博客将讲解如何删除目录以及删除文件. 删除目录:rmdir (remove directory) 可以使用rmdir 命令删除一个目录.必须离开目录,并且目录必须为空目录,不然提示删除失败. 例:在目录B下,有一个C文件夹,我们mkdir D 创建一个新的文件夹D,在使用rmdir D 删除文件夹D,显示结果如下: 在下例中,我们想要删除文件夹C,命令行上输入rmdir C ,结果如下,会发现出现,rmdir: failed to remove `C': Directory not emp