mysql update语句

MySql-Binlog协议

守給你的承諾、 提交于 2020-01-02 00:28:34
MySQL主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看) MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log) MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据 canal 工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议 MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal ) canal 解析 binary log 对象(原始为 byte 流) MySql-Binlog协议详解-流程篇 MySql-Binlog在MySql主从不同方面发挥着不可或缺的作用,同时我们也能通过Binlog实时监控数据的变化。本系列就讲述了怎样接收并解析Binlog。本篇就主要对接收binlog的流程做了一下探讨。 Binlog发送接收流程,流程如下图所示: (1)第一步和上篇blog一样,通过HandShake协议进行Client和DB的握手认证 (2)握手成功以后

mysql字段约束-索引-外键

ε祈祈猫儿з 提交于 2020-01-01 22:13:04
字符修饰符 1)null于not null 说明与使用 NULL 是空值的意思,就是这个字段没有值 先创建一个数据库,并进入 mysql > create database w1 mysql > use w1 ; 这里用例子举例,什么时用null和 not null 1.首先是not null的使用 可以看到,两个字段我类型后面,我加了, not null 关键词,这就是使用 mysql > create table name ( id int ( 10 ) not null , stname char ( 10 ) not null ) ; Query OK , 0 rows affected ( 0.34 sec ) 然后查看一下表结构,可以看到第三列NULL,两个字段都是NO,表示两个字段都不允许为 NULL 值的意思 mysql > desc name ; + --------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + --------+----------+------+-----+---------+-------+ | id | int ( 10 ) | NO | | NULL | | | stname | char ( 10

mysql c api

非 Y 不嫁゛ 提交于 2020-01-01 14:32:41
这里归纳了C API可使用的函数,并在下一节详细介绍了它们。 函数 描述 mysql_affected_rows() 返 回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。 mysql_autocommit() 切换 autocommit模式,ON/OFF mysql_change_user() 更改打开连接上的用户和数据库。 mysql_charset_name() 返 回用于连接的默认字符集的名称。 mysql_close() 关闭服务器连接。 mysql_commit() 提 交事务。 mysql_connect() 连接到MySQL服务器。该函数已不再被重视,使用 mysql_real_connect()取代。 mysql_create_db() 创建数据库。该函数已不再被重视,使用 SQL语句CREATE DATABASE取而代之。 mysql_data_seek() 在查询结果集中查找属性行编号。 mysql_debug() 用 给定的字符串执行DBUG_PUSH。 mysql_drop_db() 撤销数据库。该函数已不再被重视,使用SQL语句DROP DATABASE取而代之。 mysql_dump_debug_info() 让服务器将调试信息写入日志。 mysql_eof() 确 定是否读取了结果集的最后一行。该函数已不再被重视

mysql c api

余生长醉 提交于 2020-01-01 14:32:03
这里归纳了C API可使用的函数,并在下一节详细介绍了它们。 函数 描述 mysql_affected_rows() 返 回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。 mysql_autocommit() 切换 autocommit模式,ON/OFF mysql_change_user() 更改打开连接上的用户和数据库。 mysql_charset_name() 返 回用于连接的默认字符集的名称。 mysql_close() 关闭服务器连接。 mysql_commit() 提 交事务。 mysql_connect() 连接到MySQL服务器。该函数已不再被重视,使用 mysql_real_connect()取代。 mysql_create_db() 创建数据库。该函数已不再被重视,使用 SQL语句CREATE DATABASE取而代之。 mysql_data_seek() 在查询结果集中查找属性行编号。 mysql_debug() 用 给定的字符串执行DBUG_PUSH。 mysql_drop_db() 撤销数据库。该函数已不再被重视,使用SQL语句DROP DATABASE取而代之。 mysql_dump_debug_info() 让服务器将调试信息写入日志。 mysql_eof() 确 定是否读取了结果集的最后一行。该函数已不再被重视

mysql 需要掌握的重点

懵懂的女人 提交于 2020-01-01 09:11:14
1. 安装mysql; google it. 2. 新建database,table; create database database_name; create table table_name; 3. 查看现有database,table,以及table中各个column之间的关系 show databases; use database_name; show tables; desc table_name; 4. 修改现有table alter table table_name +action,其中action如下: 1‘,增加一个column add column column_name type; 2', 修改一个column modify column_name newtype; 3', 修改一个column的名字和类型 change oldname newName newtype; 4', 去掉一个column drop column column_name; 5', 重新命名table rename newTableName; 5. mysql中数据类型 文本数据类型:char和varchar,用法以及区别; 数值型数据类型:整数(int,smallint),浮点数(float,double),定点数 (decimal); 日期和时间:时间(time),日期

mysql高级内容

你离开我真会死。 提交于 2020-01-01 07:40:27
一. 创建一个数据库 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生表引用过来,关系也是一条数据;根据范式要求应该存储学生的编号,而不是学生的姓名等其它信息 同理,科目表也是关系列,引用科目表中的数据 创建表的语句如下 create table scores( id int primary key auto_increment, stuid int, subid int, score decimal(5,2) ); 二. 外键 思考:怎么保证关系列数据的有效性呢?任何整数都可以吗? 答:必须是学生表中id列存在的数据,可以通过外键约束进行数据的有效性验证 为stuid添加外键约束 alter table scores add constraint stu_sco foreign key(stuid) references students(id); 此时插入或者修改数据时,如果stuid的值在students表中不存在则会报错 在创建表时可以直接创建约束 create table scores( id int primary key auto_increment, stuid int, subid int, score decimal(5,2), foreign key(stuid)

MySQL数据库(5)- pymysql的使用、索引

眉间皱痕 提交于 2020-01-01 07:27:33
一、pymysql模块的使用 1、pymysql的下载和使用 之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就需要用到pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装。 1)pymysql模块的下载 pip3 install pymysql 2)pymysql模块的使用 现有数据库mydb,其中有一个userinfo表,表中数据如下: mysql> select * from userinfo; +----+------+-----+ | id | name | pwd | +----+------+-----+ | 1 | wll | 123 | | 2 | ssx | 456 | +----+------+-----+ 示例:使用Python实现用户登录,如果用户存在则登录成功,否则登录失败 import pymysql username = input('请输入用户名:') pwd = input('请输入密码:') # 1、连接 conn = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root', password = '123', db = 'mydb', charset = 'utf8' ) # 2

MySQL之基本语句

Deadly 提交于 2020-01-01 07:20:12
SQL是Structure Query language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言。在众多开源数据库中,MySQL正是其中最杰出的代表,MySQL是由三个瑞典人于20世纪90年代开发的一个关系型数据库。并用了创始人之一Michael Widenius女儿的名字My命名,这就是MySQL的由来,本次博客使用的是开源数据库MySQL,版本5.7.19,下面就开始吧! SQL分类 1.数据定义语句(Data Definition Language,DDL):主要是用来定义数据库、表、列等对象; 2.数据操作语句(Data Manipulation language,DML):用来添加、更新、删除和查询数据库记录,并检查数据完整性; 3.数据控制语句(Data Control language,DCL):定义了数据库、表、用户的访问权限和安全级别等; DDL语句 1.创建数据库 语法:create database dbname; 举例: mysql> create database test; Query OK, 1 row affected (0.01 sec) 查看当前系统中有哪些数据库: mysql> show databases; +--------------------+ | Database | +--------------------+

SQL基础-----DDL

一个人想着一个人 提交于 2020-01-01 07:19:58
1 (My)SQL入门    这里用了(My)SQL这样的标题,目的是介绍标准SQL的同时,也将MySQL在标准SQL上的扩展一同介绍给读者。 2: SQL分类   SQL语句主要可以划分为以下3个类别    . DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等。    . DML(Data Manipulation Languages)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。    . DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,主要的语句关键字包括grant、revoke等。 3:DDL语句   DDL是数据定于语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改等操作的语言。它和DML语言的最大区别是DML只是对表内部数据操作,而不涉及表的定义,结构的修改,更不会涉及其他对象。DDL语句更多的由数据库管理员(DBA)使用,开发人员一般很少使用。  

sql优化个人总结(全)

回眸只為那壹抹淺笑 提交于 2020-01-01 07:19:19
sql优化总结--博客 第一次自己写博客,以后要坚持每掌握一个技能点,就要写一篇博客出来,做一个不满足于一个 只会写if...else的程序员。 最近三个月入职了一家新的公司,做的是CRM系统,将公司多个平台的数据同步到CRM,进行 查询,统计和汇总。由于数据量比较庞大,大部分表数据上百万,甚至有的表数据上千万。所以 在系统中做sql优化比较多,特此写一篇博客总结一下关于sql优化方面的经验。 --导致查询缓慢的原因 1、数据量过大 2、表设计不合理 3、sql语句写得不好 4、没有合理使用索引 -- 针对SQL语句的优化 1、查询语句中不要使用 * 2、尽量减少子查询,使用关联查询(left join,right join,inner join)替代 3、减少使用IN或者NOT IN ,使用exists,not exists或者关联查询语句替代 4、or 的查询尽量用 union或者union all 代替 (在确认没有重复数据或者不用剔除重复数据时,union all会更好) 5、合理的增加冗余的字段(减少表的联接查询) 6、增加中间表进行优化(这个主要是在统计报表的场景, 后台开定时任务将数据先统计好,尽量不要在查询的时候去统计) 7、建表的时候能使用数字类型的字段就使用数字类型(type,status...),数字类型的字段作为条件查询比字符串的快 8