
mysql
C-haidragon
我的视频学习地址:https://edu.youkuaiyun.com/lecturer/5805?spm=1003.2001.3001.4144
展开
-
数据库简介(python 版)
数据库简介人类在进化的过程中,创造了数字、文字、符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准确查找,成为了一个重大难题计算机诞生后,数据开始在计算机中存储并计算,并设计出了数据库系统数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性当前使用的数据库,主要分为两类文档型,如sqlite,就是一个文件,通过对文件的复制完成数据原创 2017-10-27 09:56:36 · 322 阅读 · 0 评论 -
子查询
子查询查询支持嵌套使用查询各学生的语文、数学、英语的成绩select sname,(select sco.score from scores sco inner join subjects sub on sco.subid=sub.id where sub.stitle='语文' and stuid=stu.id) as 语文,(select sco.score from sco原创 2017-10-28 10:04:11 · 280 阅读 · 0 评论 -
内置函数
字符串函数查看字符的ascii码值ascii(str),str是空串时返回0select ascii('a');查看ascii码值对应的字符char(数字)select char(97);拼接字符串concat(str1,str2...)select concat(12,34,'ab');包含字符个数length(str)select length('abc');截取字符串原创 2017-10-28 10:05:17 · 835 阅读 · 0 评论 -
视图
视图对于复杂的查询,在多次使用后,维护是一件非常麻烦的事情解决:定义视图视图本质就是对查询的一个封装定义视图create view stuscore as select students.*,scores.score from scoresinner join students on scores.stuid=students.id;视图的用途就是查询select原创 2017-10-28 10:09:11 · 246 阅读 · 0 评论 -
事务
事务当一个业务逻辑需要多个sql完成时,如果其中某条sql语句出错,则希望整个操作都退回使用事务可以完成退回的功能,保证业务逻辑的正确性事务四大特性(简称ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致隔离性(Isolatio原创 2017-10-28 10:10:13 · 216 阅读 · 0 评论 -
交互(python 版)
安装引入模块安装mysql模块sudo apt-get install python-mysql在文件中引入模块import MysqldbConnection对象用于建立与数据库的连接创建对象:调用connect()方法conn=connect(参数列表)参数host:连接的mysql主机,如果本机是'localhost'参数port:连接的原创 2017-10-29 09:25:07 · 663 阅读 · 0 评论 -
增改删(python 版)
增加创建testInsert.py文件,向学生表中插入一条数据#encoding=utf-8import MySQLdbtry: conn=MySQLdb.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cs1=conn.cursor()原创 2017-10-29 09:26:38 · 313 阅读 · 0 评论 -
查询(python 版)
查询一行数据创建testSelectOne.py文件,查询一条学生信息#encoding=utf8import MySQLdbtry: conn=MySQLdb.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cur=conn.cursor(原创 2017-10-29 09:28:42 · 265 阅读 · 0 评论 -
封装(python 版)
封装观察前面的文件发现,除了SQL语句及参数不同,其它语句都是一样的创建MysqlHelper.py文件,定义类#encoding=utf8import MySQLdbclass MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'): self.host=host原创 2017-10-29 09:29:48 · 418 阅读 · 0 评论 -
实例:用户登录(python 版)
实例:用户登录创建用户表userinfos表结构如下idunameupwdisdelete注意:需要对密码进行加密如果使用md5加密,则密码包含32个字符如果使用sha1加密,则密码包含40个字符,推荐使用这种方式create table userinfos(id int primary key auto_increment,uname varchar(20),u原创 2017-10-29 09:31:21 · 3493 阅读 · 0 评论 -
自关联
自关联设计省信息的表结构provincesidptitle设计市信息的表结构citysidctitleproidcitys表的proid表示城市所属的省,对应着provinces表的id值问题:能不能将两个表合成一张表呢?思考:观察两张表发现,citys表比provinces表多一个列proid,其它列的类型都是一样的意义:存储的都是地区信息,而且每种信息的数据量有原创 2017-10-28 10:02:24 · 358 阅读 · 0 评论 -
连接查询
先看个问题问:查询每个学生每个科目的分数分析:学生姓名来源于students表,科目名称来源于subjects,分数来源于scores表,怎么将3个表放到一起查询,并将结果显示在同一个结果集中呢?答:当查询结果来源于多张表时,需要使用连接查询关键:找到表间的关系,当前的关系是students表的id---scores表的stuidsubjects表的id---scores表的sub原创 2017-10-28 10:00:22 · 277 阅读 · 0 评论 -
关系
关系创建成绩表scores,结构如下id学生科目成绩思考:学生列应该存什么信息呢?答:学生列的数据不是在这里新建的,而应该从学生表引用过来,关系也是一条数据;根据范式要求应该存储学生的编号,而不是学生的姓名等其它信息同理,科目表也是关系列,引用科目表中的数据创建表的语句如下create table scores(id int primary key a原创 2017-10-28 09:57:48 · 282 阅读 · 0 评论 -
安装(python 版)
安装安装sudo apt-get install mysql-server mysql-client然后按照提示输入管理服务启动service mysql start停止service mysql stop重启service mysql restart允许远程连接找到mysql配置文件并修改sudo vi /etc/my原创 2017-10-27 09:57:24 · 249 阅读 · 0 评论 -
数据完整性(python 版)
数据完整性一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束字段类型在mysql中包含的数据类型很多,这里主要列出来常用的几种数字:int,decimal字符串:varchar,text日期:datetime布尔:bit约束主键pr原创 2017-10-27 09:58:40 · 934 阅读 · 0 评论 -
使用图形窗口连接(navicat)
使用图形窗口连接下发windows的navicat点击“连接”弹出窗口,按照提示填写连接信息,如下图连接成功后,会在连接名称下面显示出当前的数据库双击选中数据库,就可以编辑此数据库下次再进入此软件时,通过双击完成连接、编辑操作数据库操作在连接的名称上右击,选择“新建数据库”,弹出窗口,并按提示填写在数据库上右击,选择“删除数据库”可以完成删除操作表操作原创 2017-10-27 10:00:14 · 1268 阅读 · 0 评论 -
使用命令连接
使用命令连接命令操作方式,在工作中使用的更多一些,所以要达到熟练的程度打开终端,运行命令mysql -uroot -p回车后输入密码,当前设置的密码为mysql连接成功后如下图退出登录quit或exit登录成功后,输入如下命令查看效果查看版本:select version();显示当前时间:select now();注意:在语句结尾要使用原创 2017-10-27 10:06:07 · 392 阅读 · 0 评论 -
条件查询
条件使用where子句对表中的数据筛选,结果为true的行会出现在结果集中语法如下:select * from 表名 where 条件;比较运算符等于=大于>大于等于>=小于小于等于不等于!=或查询编号大于3的学生select * from students where id>3;查询编号不大于4的科目select * from subjects where原创 2017-10-27 10:09:53 · 516 阅读 · 0 评论 -
聚合查询
聚合为了快速得到统计数据,提供了5个聚合函数count(*)表示计算总行数,括号中写星与列名,结果是相同的查询学生总数select count(*) from students;max(列)表示求此列的最大值查询女生的编号最大值select max(id) from students where gender=0;min(列)表示求此列的最小值查询未删除的学生最小编号select原创 2017-10-27 10:14:23 · 372 阅读 · 0 评论 -
分组查询
分组按照字段分组,表示此字段相同的数据会被放到一个组中分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中可以对分组后的数据进行统计,做聚合运算语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3...查询男女生总数select gender as 性别,count(*)from studentsgroup by ge原创 2017-10-28 09:53:19 · 363 阅读 · 0 评论 -
排序查询
排序为了方便查看数据,可以对数据进行排序语法:select * from 表名order by 列1 asc|desc,列2 asc|desc,...将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推默认按照列值从小到大排列asc从小到大排列,即升序desc从大到小排序,即降序查询未删除男生学生信息,按学号降序select * from stud原创 2017-10-28 09:55:22 · 344 阅读 · 0 评论 -
分页查询
获取部分行当数据量过大时,在一页中查看数据是一件非常麻烦的事情语法select * from 表名limit start,count从start开始,获取count条数据start索引从0开始示例:分页已知:每页显示m条数据,当前显示第n页求总页数:此段逻辑后面会在python中实现查询总条数p1使用p1除以m得到p2如果整除则p2为总数页如果不整除则p2原创 2017-10-28 09:56:30 · 287 阅读 · 0 评论 -
简单聊天室
用qt 与 python加 mysql 实现的简单聊天 实现功能有 一对一 群聊,传文件,视频聊天,通信加密,好友注册到 mysql,也写了下调百度 api,成功移植到 android ios下载地址 https://download.youkuaiyun.com/download/sinat_35360663/10330453...原创 2018-04-06 16:40:05 · 389 阅读 · 0 评论