Mysql总结

1、数据库的概念

"""
数据库:库(文件夹)、表(表结构文件、表数据文件(索引结构))、字段(数据的描述)、记录(数据的本体)
分类:效率问题(内存大于硬盘、非关系大于关系、key-value大于sql)
数据库连接:主机、端口、账号、密码、数据库
"""

2、用户

"""
创建对指定数据库权限的用户:grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码';
"""

3、基本操作

"""
库:创建、删除
表:完整创建表的语法、删除
字段:增alter add、删alter drop、改alter modify
数据:增删改查*****
insert into values|select
delete from
update set
select from
"""

4、单表查询

# sql中几乎所有的操作都是单表操作,多表也会连成单表,临时表也会创建视图

select distinct 字段 from 表 where group by having order by limit

""" distinct
两条几以上所查所有字段形成的记录全部相同,才认为相同
""" """ where和having可以对字段进行的筛选规则
比较:> < = >= <= !=
区间:between and | in | not in
逻辑: and or not
相似:like _%
正则:regexp
自定义区间:id in (2,3) | id not in (2,3) | id < all(2,3) | id < any(2,3)
""" """ group by
尽量对重复率较高的字段进行分组,分组的字段可以直接被查询
分组后只有聚合结果可以参与查询
如果分组情况下,一个字段值全相同,可以直接用max(字段)处理进行查询
联合分组,两个字段组合的综合结果作为分组依据
""" """ order by
升序:order by salary asc
降序:order by salary desc
多个排序条件:order by salary desc, name asc
""" """ limit
limit row
limit offset,row
"""

5、连表

"""
from 左表 inner|left|right join 右表 on 两个表之间的关联条件
inner:都是有用的
left:左边全有
right:右边全有 全连:left union right
"""

6、表关系

"""
外键:外键本身字段不一定唯一,关联字段一定唯一 一对一:外键随意
一对多:外键多一方
多对多:外键关系表中 foreign key(外键字段) references 被关联表(被关联字段)
on update cascade
on delete cascade
"""

7、子查询

"""
查询结果辅助另一条sql的增删改查 子查询一个字段,用一个字段进行筛选
where salary = (select salary from 表) # 结果一条
where salary in (select salary from 表) # 结果多条
where salary > all(select salary from 表) # 结果多条
where salary > any(select salary from 表) # 结果多条
where (dep,salary) in (select dep_name,max_salary from 表)
"""

视图

create view 视图名[(别名1,...,别名n)] as select 字段1,...,字段n from 表

# 视图与真实表共享数据,视图和真实表的数据会相互映射
# 视图的表结构只要存在,真实表的数据只要存在,该视图就可以使用

事务

""" 事务的四大特性
1.原子性:事务是一组不可分割的单位,要么同时成功,要么同时不成功
2.一致性:事物前后的数据完整性应该保持一致(数据库的完整性:如果数据库在某一时间点下,所有的数据都符合所有的约束,则称数据库为完整性的状态)
3.隔离性:事物的隔离性是指多个用户并发访问数据时,一个用户的事物不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离
4.持久性:持久性是指一个事物一旦被提交,它对数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响
"""

pymysql

"""
# 1)建立数据库连接对象 conn
# 2)通过 conn 创建操作sql的 游标对象
# 3)编写sql交给 cursor 执行
# 4)如果是查询,通过 cursor对象 获取结果
# 5)操作完毕,端口操作与连接
"""
import pymysql
conn = pymysql.connect(user='root', passwd='root', database='oldboy')
cursor = conn.cursor(pymysql.cursors.DictCursor)
sql = '%s %s'
cursor.execute(sql, (参数1,参数2))
cursor.executemany(sql, [(参数1,参数2),(参数1,参数2)]) # 增删改
conn.commit()
conn.rollback() # 查
cursor.fetchone()
cursor.fetchmany(n)
cursor.fetchall() cursor.scroll(num, 'relative|absolute')

索引

# 优化的是查询 不是增删改

mysql小结(了解)的更多相关文章

  1. mysql小结

    1.使用密码登录mysql mysql -u root -p 2.查看所有的数据库 show databases; 3.创建数据库 create database <数据库名>; 4.创建 ...

  2. mysql 小结

    Mariadb proxy maxscale01.test.com maxscale02.test.com Mariadb Galera Cluster db01.test.com db02.test ...

  3. JavaOO小结二,及MySQL小结

    流按照传输内容分有几种?各自的父类是什么? 流按照传输内容有 字节流.字符流.对象流.但其本质都是字节流.字符流和对象流是在字节流基础上作了一层封装,以便更好对字符和对象进行操作. 字节流的父类:In ...

  4. mysql通过mysql_install_db初始化数据目录时使用--user选项的作用是什么?

    需求描述: mysql数据库通过mysql_install_db初始化数据目录时,使用了--user选项,这里记录下该参数的作用 参数解释: 1.--user的作用:就是以哪个操作系统用户来执行mys ...

  5. PHP,mysql,Linux,CI框架学习总结

    PHP,mysql,CI框架学习总结 PHP标记 1.Xml风格<?php ?> 2.简短风格 <? ?> 需在php.ini中开启short_open_tag 3.asp风格 ...

  6. 【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)

    第3章 使用MySQL 文章目录 第3章 使用MySQL 连接 选择数据库 了解数据库和表 小结 简单记录 - MySQL必知必会 - [英]Ben Forta 将学习如何连接和登录到MySQL,如何 ...

  7. xtrabackup之Innobackupex增量备份及恢复

    演示增量备份 #启动一个全备 innobackupex \ > --defaults-/my.cnf \ > --host=127.0.0.1 \ > --user=xtrabk \ ...

  8. pymongo学习第1篇——增删改查

    参考文档: 1.https://docs.mongodb.org/getting-started/python/ 2.http://api.mongodb.org/python/current/api ...

  9. 转:攻击JavaWeb应用[3]-SQL注入

    转:http://static.hx99.net/static/drops/tips-236.html 攻击JavaWeb应用[3]-SQL注入 园长 · 2013/07/16 18:28 注:本节重 ...

随机推荐

  1. SpringBoot-dubbo自定义负载均衡实现简单灰度

    本文介绍如何利用dubbo自定义负载实现简单灰度(用户纬度,部分用户访问一个服务,其余访问剩余服务). 其实在这之前,对dubbo了解的也不是很多,只是简单的使用过,跑了几个demo而已,但是得知接下 ...

  2. UDF——在udf当中添加几个有意思的宏

    很多人的udf都不是自己写的,直接从网上复制粘贴的,编译的时候经常报错.我编写了下面这段示例代码: 我们使用小软件编译: https://www.cnblogs.com/liusuanyatong/p ...

  3. Java连载18-引用数据类型、三元运算符、控制语句if

    一.引用类型 1.String是sun在JAVASE中提供的字符串类型 2.String.class字码 3.String是引用数据类型,s是变量名,“abc”是字面值: String s = &qu ...

  4. 使用velero进行kubernetes灾备

    使用velero可以对集群进行备份和恢复,降低集群DR造成的影响.velero的基本原理就是将集群的数据备份到对象存储中,在恢复的时候将数据从对象存储中拉取下来.可以从官方文档查看可接收的对象存储,本 ...

  5. 虚拟机下怎么连接U盘,如何使用U盘?一策书(湘岳阳万江波)的随笔

    准备在虚拟机下,制作U盘启动盘.安装了U盘制作软件,插上U盘却无法识别到.打开虚拟机进行设置,添加USB设备,提示:已达到最大值.怎么回事呢? 原来还需要在宿主机上进行设置. 在宿主机上,运行:ser ...

  6. kafka压测

    原文并未提及kafka的版本 并且测试的消息大小都偏小  测试数据供参考 原文还测试了broker等    原文请移步文章末尾 4.1 producer测试 4.1.1 batch-size 测试结果 ...

  7. SQL ------------ 对表中字段的操作 alter

    ALTER TABLE 语句用于在现有表中添加.删除或修改列. 注意不同的数据库的语句有所不一样 增加和删除都基本一致. 进行修改表中字段的时候注意: 本文主要介绍  sqlserver/mysql/ ...

  8. mongodb数据库环境配置

    数据是每一前端人员必定接触的一样,所有的数据都是后端来编写,如果自己想练习项目,却没有数据,而是写一些假数据,去编写,或者通过json-server搭建一个数据,今天我们就通过MongoDB来搭建一个 ...

  9. tkmybatis VS mybatisplus

    本文是简单对比了以下官网上的内容 文章目录 TkMybatis Vs MybatisPlus 1.基础CRUD BaseMapper 2.代码生成器 3. 全局主键 Sequence主键 4. 热加载 ...

  10. 关于thinkphp3.2.3集成phpmailer

    关于thinkphp3.2.3集成phpmailer 1 我用的是phpmailer5.1的版本  先把文件解压缩放到这个位置 2 封装到函数里面 function email($email,$tit ...