mysql函数

mysql bin-log学习笔记

北慕城南 提交于 2019-12-05 11:23:59
一、bin-log介绍 MySQL的二进制日志可以说是MySQL最重要的日志了,它事件形式记录了所有的DDL和DML更新数据语句,以及所执行消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗 。其有两个重要的使用场景: 1、主从复制时备机通过dump master节点的bin-log文件来进行数据同步 2、通过使用MySQLBinlog工具做数据恢复。 bin-log包括两类文件: 索引文件(文件名后缀为.index):用于记录所有的二进制文件, 日志文件(文件名后缀为.00000*):记录数据库所有的DDL和DML(导致数据更新)语句事件。 二、Binlog的开启 linux配置开启mysql bin-log日志服务 三、bin-log的三种级别及其对比 1、statement 语句级:记录每次执行导致数据改变的sql语句。 优点:节省存储空间 缺点:可能产生数据不一致问题, 比如: 系统时间获取、随机数函数、自定义函数下使用binlog日志进行数据恢复,由于网络延迟可能产生数据不一致问题。 2、row 行级:记录更新后的数据 优点:其可以精准的记录数据变化,解决主从复制数据不一致问题 缺点:占用较大空间,特别是在批量数据插入、更新的情况下。 3、mixed statement的升级版

深入浅出MySQL学习笔记(一)

拜拜、爱过 提交于 2019-12-05 11:23:27
参考文献 1. 博客1 2. 博客2 第一章、mysql的安装与配置 第二章、SQL基础 sql分类: (1)DDL:数据库定义语言,用于定义表,列,索引等数据库对象. create,drop,alter等 (2)DML:数据库操纵语言,增删改查数据库的记录insert,delete,update,select等 (3)DCL:数据库控制语言,定义了数据库的表,字段,用户的访问权限和安全级别 grant,revoke等 1.DDL语句 (1)创建数据库:create database test1; (2)删除数据库:drop database test1; (3)创建表:create table user (name varchar(10), age int(2)); (4)删除表:drop table user; (5)修改表: alter table user modify name varchar ( 20 ) ; 修改字段定义 alter table user add column sex varchar ( 10 ) ; 加一列 alter table user drop column age ; 删一列 Alter table user change age age1 int ( 4 ) ; 将 age 改名为 age1,同时修改字段类型为 int ( 4 )

mysql 查询数据

两盒软妹~` 提交于 2019-12-05 11:22:10
单表查询 查询所有字段    SELECT 字段 1,字段 2,字段 3...FROM 表名;    SELECT id,stuName,age,sex,gradeName FROM t_student ; SELECT stuName,id,age,sex,gradeName FROM t_student ;   SELECT * FROM 表名; SELECT * FROM t_student 查询指定字段   SELECT 字段 1,字段 2,字段 3...FROM 表名; SELECT stuName,gradeName FROM t_student; Where条件查询    SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 条件表达式; SELECT * FROM t_student WHERE id=1;SELECT * FROM t_student WHERE age>22; 带IN关键字查询    SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] IN (元素 1,元素 2,元素 3); SELECT * FROM t_student WHERE age IN (21,23); SELECT * FROM t_student WHERE age NOT IN (21,23);

mysql的命令入门

一曲冷凌霜 提交于 2019-12-05 11:12:26
mysql入门实践 学习教程 教程链接地址 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。 文件中读写数据较慢,所以使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。 所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 RDBMS即关系数据库管理系统(Relational Database Management System)的特点: 数据以表格的形式出现 每行为各种记录名称 每列为记录名称所对应的数据域 许多的行和列组成一张表单 若干的表单组成database 简单入门 mysql学习的好书 知乎推荐的学习书籍 mysql -u root -p 进行登录 show databases; 查看有哪些数据库。 use mysql;进入mysql的数据库。 插入新的用户,INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'jianglong05', PASSWORD('JJjl930112'), 'Y', 'Y', 'Y'); 在同一个数据库中不能创建两个相同名称的表

MySql学习笔记

吃可爱长大的小学妹 提交于 2019-12-05 11:07:44
show命令 show status用于显示服务器状态信息 show grants显示授予用户的安全权限。 show errors和show warnings用来显示服务器错误或者警告信息。 limit语句的替换信息 为了区别limit 3,4的含义是从行4开始的3行还是从行3开始的4行,这个容易把人搞糊涂,出于这个原因,MySql 5支持如下的语法: limit 4 offset 3 等价于 limit 3,4 like语句的注意点 在like语句中,是不区分大小写的。 如果要搜索的字符后面含有空格,使用like ‘%keyword’ 是匹配不到 keyword 的。 like ‘%’也不能匹配null mysql中的正则表达式 至3.23.4后,正则表达式不区分大小写,如果要区分大小写,可使用BINARY关键字 如: where pro_name regexp binary 'keyword' 针对特殊字符,如 .、- 需要使用 \\ 为前导, \\- 表示 - , \\. 表示 . 匹配字符类:常用的有如下 定位元字符: [[:<:]] 表示词的开始 [[:>:]] 表示词的结尾 可以在不使用数据表的情况下验证正则表达式。 regexp检查如果没有匹配将返回0,如果匹配将返回1. 如下: SELECT 'hello123' REGEXP '[[:digit:]]' 将返回1

MySQL :LAST_INSERT_ID()函数总结

回眸只為那壹抹淺笑 提交于 2019-12-05 09:55:32
作用:当对table进行insert操作时,返回具有Auto_increment(自动增长)特性的属性列的最新值。 该函数的特点 1、每当断开本次连接之后又重新连接时,该函数的返回值会被重置为0. 2、仅与调用该函数的client有关。举个例子,在当前connect的client中,我调用LAST_INSERT_ID()函数,返回值为5,若是我在另一个终端中又对数据库建立连接并且对表进行了insert操作后;在原终端中调用LAST_INSERT_ID()函数,返回值依旧为5. 3、该函数只返回自动生成的具有Auto_Increment特性的属性列的最新值,如果我自己手动插入一行,该行的Auto_Increment特性的属性列的值是人为指定的,并非数据库自动生成的,则LAST_INSERT_ID()函数的返回值不变。 验证: 刚开始连接数据库: 可以看出LAST_INSERT_ID()被重置为0了。 children表的原始状态: 在另一个终端修改children表后,children表的状态: 插入一行后调用LAST_INSERT_ID()函数 再插入一行,但是改行的childNo时人工指定的而非系统自动生成的。 可以看出函数的返回值并没有变化。 再插入一行: 来源: https://www.cnblogs.com/XiaoXiaoShuai-/p/11920495.html

mysql物理设计

╄→尐↘猪︶ㄣ 提交于 2019-12-05 09:49:47
定义数据库,及表的命名规范: 1,数据库,表及字段的命名要遵循可读性原则, 表意性原则, 长名原则(不尽量或者不使用缩写,使用长一些的命名,这样以后会看起来更明白,但是也不太非常的长) 通一 主键的名称,比如是 id或者是 _id 等,这样比较好管理。表里面的字段命名也不需要带上表名什么的。什么意思就是什么意思就好,没必要搞得这样子。不过表命名可以 可是 模块的名称 作为前缀 ,比如有一个 模块 crm ,那么 crm 模块里面 用到的表是 user ,那么表名 就起为 crm_user这样比较好识别和 管理。 个人认为尽量不要使用 uuid 的bigint ,一般的小中型项目,int无符号都可以满足了。 对于分布式的主键呢。 一般都是使用 varchar 的 UUID,这样比较方便管理和使用对于分布式来说。 但是对于一些对接其他系统的场景,ID可能会让你痛不欲生,而洗数据也是体力活儿。如果ID过长极容易产生前端显示问题,毕竟js的long是15位的。所以实际运用中ID长度也要严格把控。所以UUID 才保存为varchar类型,而不是 bigint 这样比较方便写代码和传给客户端,不用进行 类型转换了。 文/codertom(简书作者) 原文链接:http://www.jianshu.com/p/a3828b42fce8 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”

Mysql占位符插入

安稳与你 提交于 2019-12-05 08:59:11
mysql数据执行 con.execute('insert into Login values(%s, %s)' % \ (user_id, password)) con.execute('insert into Login values('%s', '%s')' %(user_id, password)) cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael']) 爬虫 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup import lxml import json import re import time import tushare as ts import pandas as pd import pymysql from sqlalchemy import create_engine pymysql.install_as_MySQLdb() def Tstockbasic(conn): # 调用stock_basic,获取股票代码、股票名称、所属行业、上市日期、上市场所 cursor = conn.cursor() # 读取数据库已存储数据 sql_stk_data = pd.read

MySQL_笔记

百般思念 提交于 2019-12-05 07:33:32
MySQL数据库软件 1. 安装 * 参见《MySQL基础.pdf》 2. 卸载 1. 去mysql的安装目录找到my.ini文件 * 复制 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" 2. 卸载MySQL 3. 删除C:/ProgramData目录下的MySQL文件夹。 3. 配置 * MySQL服务启动 1. 手动。 2. cmd--> services.msc 打开服务的窗口 3. 使用管理员打开cmd * net start mysql : 启动mysql的服务 * net stop mysql:关闭mysql服务 * MySQL登录 1. mysql -uroot -p密码 2. mysql -hip -uroot -p连接目标的密码 3. mysql --host=ip --user=root --password=连接目标的密码 * MySQL退出 1. exit 2. quit * MySQL目录结构 1. MySQL安装目录:basedir="D:/develop/MySQL/" * 配置文件 my.ini 2. MySQL数据目录:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 几个概念 * 数据库:文件夹 * 表:文件 * 数据:数据

MySQL学习笔记(二)

左心房为你撑大大i 提交于 2019-12-05 06:47:18
三、约束 MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 常用五类约束: not null :非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合的数据不能重复 primary key :主键约束,指定某列的数据不能重复、唯一 foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据 //check:检查,指定一个表达式,用于检验指定数据 MySQL不支持check约束,但可以使用check约束,而没有任何效果; 四、 大聚合函数 Orders表 O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Carter 3 2008/10/05 700 Bush 4 2008/09/28 300 Bush 5 2008/08/06 2000 Adams 6 2008/07/21 100 Carter 1.count 函数(返回匹配指定条件的行数) count(*) 对表中行的数目进行统计,不管列中是否包含null值 还是非空值 SELECT COUNT(*) AS