ROUND(SUM(data_length) /1024/1024, 1) AS "Data MB", ?ROUND(SUM(index_length)/1024/1024, 1) AS "Index MB", ?ROUND(SUM(data_length + index_length)/1024/1024, 1) AS "Total MB", ?COUNT(*) "Num Tables" ?FROM ?INFORMATION_SCHEMA.TABLES ?WHERE ?table_schema not in ("information_schema", "performance_schema") ?GROUP BY ?ENGINE;?3、使用prepare stmt from准备一个动态sql语句时。主要(1)被准备的语句定义时必须是会话级的变量不能是local变量,须要加@进行定义。准备后的语句直到会话结束才会丢失。能够使用deallocate prepare stmt消除分配的语句表名不确定,检查这个表最大id。从id+1開始插入10行数据BEGIN-- 在存储过程中,一般的sql中values能够是变量,可是表名、字段名不能是变量declare v_xname varchar(20) default ‘testincre1‘;delete from test.testincre1 where id=1;select ifnull(max(id),0)+1 into @incre from test.testincre1;set @end=@incre+10;repeat?set @sql=concat(‘insert into test.‘,v_xname,‘ values(@incre,‘‘yangsq‘‘,now());‘);?select @sql;?prepare stmt from @sql;?execute stmt;?deallocate prepare stmt;set @incre=@incre+1;until @incre=@end end repeat;END4、sql_slave_skip_counterLast_SQL_Error: Error ‘Unknown table ‘sakila.testrepldb‘‘ on query. Default database: ‘sakila‘. Query: ‘DROP TABLE `testrepldb` /* generated by server */‘mysql> start slave sql_thread; 报错:会重复运行引起错误的sql,可是io_thread仍然正常会接受2015-07-08 10:42:25 12378 [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 02015-07-08 10:42:25 12378 [Note] Slave SQL thread initialized, starting replication in log ‘mysql-bin.000012‘ at position 4449, relay log ‘./yaolansvr_slave01-relay-bin.000014‘ position: 2832015-07-08 10:42:25 12378 [ERROR] Slave SQL: Error ‘Unknown table ‘sakila.testrepldb‘‘ on query. Default database: ‘sakila‘. Query: ‘DROP TABLE `testrepldb` /* generated by server */‘, Error_code: 10512015-07-08 10:42:25 12378 [Warning] Slave: Unknown table ‘sakila.testrepldb‘ Error_code: 10512015-07-08 10:42:25 12378 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log ‘mysql-bin.000012‘ position 4449select @@sql_slave_skip_counter;stop slave;--或者stop slave sql_threadset global sql_slave_skip_counter=1;start slave;--log-error:2015-07-08 10:53:30 12378 [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 02015-07-08 10:53:30 12378 [Note] Slave SQL thread initialized, starting replication in log ‘mysql-bin.000012‘ at position 4449, relay log ‘./yaolansvr_slave01-relay-bin.000014‘ position: 2832015-07-08 10:53:30 12378 [Note] ‘SQL_SLAVE_SKIP_COUNTER=1‘ executed at relay_log_file=‘./yaolansvr_slave01-relay-bin.000014‘, relay_log_pos=‘283‘, master_log_name=‘mysql-bin.000012‘, master_log_pos=‘4449‘ and new position at relay_log_file=‘./yaolansvr_slave01-relay-bin.000014‘, relay_log_pos=‘410‘, master_log_name=‘mysql-bin.000012‘, master_log_pos=‘4576‘?5、从 sqlserver 查询mysql 报错 从数据类型 dbtype_dbtimestamp 转化为 datetime 时出错mysql某表datetime类型数据是0028-01-01 00:00:00。插入sqlserver datetime报错,sqlserver datime支持的日期类型范围是1753 年 1 月 1 日到 9999 年 12 月 31 日6、replicate的相关參数比較--replicate-do-table:没有like pattern的功能,多个表须要指定多次--replicate-wild-do-table:用like pattern的功能Example: --replicate-wild-do-table=foo%.bar% replicates only updates that use a table where the database name starts with foo and the table name starts with bar
小编还为您整理了以下内容,可能对您也有帮助:
DAY01-mysql加强
SQL语言按照实现的功能不同,主要分为3类:数据操纵语言(DML),数据定义语言(DDL),数据控制语言(DCL)。
DISTINCT 关键字可以用于一列,也可以用于多列。
只有当job 和 deptno中的一条数据重复,才认为是重复的数据。
SELECT DISTINCT DEPTNO,JOB FROM emp
对 NUMBER 型数据 使用(+ - * /)算数操作符创建表达式;
对 DATE 型数据使用(+ -)算数操作符创建表达式。
-- 查询所有员工的年薪(使用别名) SELECT SAL*12 AS SALOFYEAR FROM emp
演示:
SELECT * FROM dept WHERE BINARY DNAME = 'sales'
= & != & <> & > & >= & < & <=
BETWEEN ... AND ...:在两值之间,闭区间包含
-- 查询工资在 2000-3000 之间的员工信息 SELECT * FROM emp WHERE SAL BETWEEN 2000 AND 3000
IN:匹配列出的值;如:IN(1, 2, 3, 4)
-- 查询工资为 800 或 1600 或 3000 的员工 SELECT * FROM emp WHERE SAL IN (800,1600,3000)
LIKE :匹配字符串模式 如:_ (占位符一个字符)、%(通配符多个字符)
-- 根据关键字模糊查询(员工名称和职位)根据sal 值查询 sal=800
SELECT * FROM emp WHERE (ENAME LIKE '%S%' OR JOB LIKE '%C%') AND SAL = 800 注意括号
IS NULL:是否为空
空值不等于零或空格,也不表示空字符串,也就是没有值
任何类型的字段都可以允许空值作为值的存在
包括空值的任何算术表达式都等于空
函数 IFNULL(expr1, expr2),若 expr1 不是 NULL,IFNULL() 返回expr1,否则它返回expr2
-- 查询所有员工的年薪((月薪 + 奖金) * 12)
SELECT (SAL + IFNULL(COMM,0)) * 12 FROM emp
AND:如果组合的条件都是 true,返回 true;
OR: 之一是 true ,返回 true;
NOT:如果下面的条件是 false,返回 true。
优先级规则:比较运算符 > NOT > AND > OR。
ASC:升序,缺省
DESC:降序
ORDER BY :其子句出现在 SELECT 语句后执行,
可以使用别名,但不能使用加了引号的别名或列名来排序,没有效果
需要查询的数据分散在多张表中,只有联合多张表才能查询出期望的数据
其意思:在数学中,假设集合 A = {a, b},集合 B = {0, 1, 2},则两个集合的笛卡尔积为 {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
解决方案:在WHERE加入有效的连接条件 ----> 等值连接,注意:连接 n 张表,至少需要n - 1个连接条件。
SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名] ,…]
FROM 表名称 [别名], [表名称 [别名] ,…]
[WHERE 条件(S)/等值连接]
[ORDER BY 排序字段 [ASC|DESC] [,排序字段 [ASC|DESC] ,…]];
可读性高
SELECT table1.column, table2.column
FROM table1 [INNER] JOIN table2 ON table1.column1 = table2.column2
WHERE 条件
解决什么:
SELECT table1.column, table2.column
FROM table1 LEFT [OUTER] JOIN table2 ON table1.column1 = table2.column2
WHERE 条件
SELECT table1.column, table2.column
FROM table1 RIGHT [OUTER] JOIN table2 ON(table1.column1 = table2.column2)
WHERE 条件
SELECT emp.EMPNO, emp.ENAME, emp.SAL, dept.DNAME FROM dept RIGHT JOIN emp ON emp.DEPTNO = dept.DEPTNO
查询的结果:没有的值就是null
单行函数:将每条数据进行的计算,然后每条数据得到一条结果;
多行函数:多条数据同时计算,最终得到一条结果数据。也成为聚集函数、分组函数,主要用于完成一些统计功能等等。
COUNT():查询表中的数据记录;
AVG():求出平均值;
SUM():求和;
MAX():求出最大值;
MIN():求出最小值。
-- 查询员工最高工资和最低工资差距
SELECT MAX(SAL) - MIN(SAL) FROM emp
把表分组,再进行操作
-- 按照职位分组,求出每个职位的最高和最低工资
SELECT JOB,MAX(SAL) max, MIN(SAL) min FROM emp GROUP BY JOB ORDER BY SAL
本地时间:
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW()), HOUR(NOW()), MINUTE(NOW()), SECOND(NOW())
DATE_FORMAT(date, format):把日期转换为字符串。
按查询结果分类:
单行单列:只包含一个字段的查询,返回的查询结果也只包含一行数据;
多行单列:只包含了一个字段,但返回的查询结果可能多行或者零行;
多行多列:包含多个字段的返回,查询结果可能是单行或者多行,好比是一张表。
一般用于 WHERE 之后的子查询,子查询结果是一行一列记录。
使用单行记录比较运算符:=、>、>=、<、<=、<>。(单行单列才能用)
-- 查询出工资比 MARTIN 还要高的全部雇员信息
SELECT * FROM emp WHERE sal > (SELECT sal FROM emp WHERE ename = 'MARTIN')
一般也用于 WHERE 子句中,子查询结果只有一列,但是有多行。
IN:与列表中的任意一个值相等
-- 查询工资等于部门经理(职位是 MANAGER)的员工信息。
SELECT * FROM emp WHERE SAL IN (SELECT SAL FROM emp WHERE JOB = 'MANAGER')
-- 查询出每个部门的编号、名称、部门人数、平均工资 部门名称
SELECT e.DEPTNO, d.DNAME, COUNT(*), AVG(e.SAL), e.ENAME FROM emp e JOIN dept d ON e.DEPTNO = d.DEPTNO GROUP BY e.DEPTNO
如何使用VC开发MySQL
我也是找的你看看有用没。。。。。
一、MySQL的安装
可以考虑安装mysql-5.0.41-win32(可到http://www.newhua.com/soft/3573.htm处下载),当然你有更新的版本更好,注意选择“完全安装”(只有这样才会安装VC编译时需要的头文件等)。安装后期会进行服务器配置,你可以设置你的服务器登陆密码,也可以不设置密码。
二、VC6.0的设置
(1)打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories
for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。(我的是D:\Program
Files\MySQL\MySQL Server 5.0\include)。
(2)在上面说到的“Show directories for:”下拉列表中选中“Library
files”,然后添加你本地安装MySQL的Lib目录路径。Lib目录下还有debug和opt两个目录,建议选debug。(我的是D:\Program
Files\MySQL\MySQL Server 5.0\lib\debug)。
(3)在“Project settings->Link:Object/library moles”里面添加“libmysql.lib”。
(4)在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h" // 如果编译出错,则把该行放到#include "mysql.h"之前
#pragma comment(lib,"libmySQL.lib") // 如果在附加依赖项里已增加,则就不要添加了
(5)建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。
三、数据库、表的创建
打开“开始->所有程序->MySQL->MySQL Server 5.0->MySQL Command Line
Client.exe”,如果没有设置密码就直接按回车,会提示服务器启动成功。
mysql> SHOW DATABASES;//显示所有的数据库,注意一定要 敲“;”后再按回车
mysql> CREATE DATABASE mydb;//创建数据库mydb
mysql> USE mydb;//选择你所创建的数据库mydb
mysql> SHOW TABLES; //显示数据库中的表
mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200), remark VARCHAR(200));//创建一个表mytable: 用户名;访问列表;备注
mysql> DESCRIBE mytable;//显示表的结构
四、VC编程
MYSQL mysql; //数据库连接句柄
mysql_init (&mysql);
if(!mysql_real_connect(&mysql,"localhost","root",NULL,"mydb",3306,NULL,0)) {//mydb为你所创建的数据库,3306为端口号,可自行设定
AfxMessageBox("数据库连接失败");
return FALSE;
}
(1)实现添加 功能
CString strUsername,strList,strRemark,strSQL;
strSQL.Format("insert into mytable(username,visitelist,remark) values(\'%s\',\'%s\',\'%s\')", strUsername,strList,strRemark);//注意一定要写在一行,而且必须要有\'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("增添失败");
}
(2)实现修改功能
CString strUsername,strList,strRemark,strSQL,str_PreName;//str_PreName用于记录想要修改的行,详情请看源代码
strSQL.Format("update mytable set username=\'%s\',visitelist=\'%s\', remark=\'%s\' where username=\'%s\'",strUsername,strList,strRemark,str_PreName);
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("修改失败");
}
(3)实现删除功能
CString strSQL;
strSQL.Format("delete from mytable where username=\'%s\'",str_PreName);//必须要有\'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("删除失败");
}
(4)读取表格内容到CListCtrl控件m_list
m_list.DeleteAllItems();
char *ch_query;
ch_query="select * from mytable";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0){
AfxMessageBox("数据库中表格出错");
}
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql))){
AfxMessageBox("读取数据集失败");
}
int i=0;
while(row=mysql_fetch_row(result)){
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);
m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);
m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);
(5)关闭数据库
mysql_close(&mysql);//最好写到OnDestroy()函数中
五、结束语
本文在几位网友的工作基础上详细介绍了MySQL的安装、调试,以及如何用VC进行编译,实现数据的“添加、修改、删除”等功能,可以为在MySQL的VC编程中感到困惑的朋友们提供一点帮助,在此向几位网友表示感谢!
在mysql数据库中有日期,格式为2010-01-01形式,现在要在数据库中选出所有月份为01 的字段,应该怎么办呢
select * from 表 where 时间字段 like '_ _ _ _-01-_ _'追问谢谢啊,不过'_ _ _ _-01-_ _'应该是没有空格的。另外在问一下,如果中间的01是表单提交上来的,就是由用户自己填的,该怎么办。已经截取了用户提交的字符了,比如定义为 time,那应该怎么写呢。在jsp中。。。
追答我是怕你看不清才那么写成 _ _ 的
把time转换为字符串型
select * from 表 where 时间字段 like '_ _ _ _-'+提交月份+'-_ _' (月格式要mm的)
在mysql数据库中有日期,格式为2010-01-01形式,现在要在数据库中选出所有月份为01 的字段,应该怎么办呢
select * from 表 where 时间字段 like '_ _ _ _-01-_ _'追问谢谢啊,不过'_ _ _ _-01-_ _'应该是没有空格的。另外在问一下,如果中间的01是表单提交上来的,就是由用户自己填的,该怎么办。已经截取了用户提交的字符了,比如定义为 time,那应该怎么写呢。在jsp中。。。
追答我是怕你看不清才那么写成 _ _ 的
把time转换为字符串型
select * from 表 where 时间字段 like '_ _ _ _-'+提交月份+'-_ _' (月格式要mm的)
MySQL问题计算点击率 id01 点击量99 展现量880 求点击率
“点击率”来自于英文“Click-through Rate”(点进率) 以及“Clicks Ratio”(点击率),是指网站页面上某一内容被点击的次数与被显示次数之比,即clicks/views,它是一个百分比。反映了网页上某一内容的受关注程度,经常用来衡量广告的吸引程度。
2、点击率的计算
网站的点击率是某一个内容被点击的次数在网站被浏览次数中所占比例,目前可以用百度统计来监测。
3、公式
点数数÷访问数
例如,如果该网页被打开了1000次,而该网页上某一广告被点击了10次,那么该广告的点击率为:1%追问MySQL数据库 应该如何操作呢
MySQL问题计算点击率 id01 点击量99 展现量880 求点击率
“点击率”来自于英文“Click-through Rate”(点进率) 以及“Clicks Ratio”(点击率),是指网站页面上某一内容被点击的次数与被显示次数之比,即clicks/views,它是一个百分比。反映了网页上某一内容的受关注程度,经常用来衡量广告的吸引程度。
2、点击率的计算
网站的点击率是某一个内容被点击的次数在网站被浏览次数中所占比例,目前可以用百度统计来监测。
3、公式
点数数÷访问数
例如,如果该网页被打开了1000次,而该网页上某一广告被点击了10次,那么该广告的点击率为:1%追问MySQL数据库 应该如何操作呢
2020-01-20:mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据。数据库不能停?
思路:不要直接都目标表进行操作,可以采用中间表的方式。
1、依据旧表创建一个与之表结构完全一致的新表。
2、给新表增加一个字段。
3、将旧表数据insert到新表,删除旧表后将新表重命名为旧表。
Java连MySQL,mysql-connector-java-5.1.13-bin.jar究竟要怎么安装?
mysql-connector-java-5.1.13-bin.jar如下配置:
1.如果你使用Eclipse的话就点中你的项目->project->properties->java build path->libraries->add external jars 然后将你解压出的mysql-connector-java-5.1.21.jar文件添加进去。
2.或者拷到你JDK的lib目录下,在环境变量的classpath中加入mysql-connector-java-5.1.21.jar的路径,即其后写入“;%JAVA_HOME%libmysql-connector-java-5.1.21-bin.jar”即可。
MySql安装说明
1.如果是用 MySQL + Apache,使用的又是 FreeBSD 网络操作系统的话,安装时候你应按注意到FreeBSD的版本问题,在 FreeBSD 的 3.0 以下版本来说,MySQL Source 内含的 MIT-pthread 运行是正常的,但在这版本以上,你必须使用 native threads,也就是加入一个 with-named-thread-libs=-lc_r 的选项。
2.如果在 COMPILE 过程中出了问题,请先检查你的 gcc版本是否在 2.81 版本以上,gmake 版本是否在3.75以上。
3.如果不是版本的问题,那可能是你的内存不足,请使用 ./configure--with-low-memory 来加入。
4.如果要重新做你的 configure,那么你可以键入 rm config.cache 和 make clean 来清除记录。
5.把 MySQL 安装在 /usr/local 目录下,这是缺省值,您也可以按照你的需要设定你所安装的目录。