所以对于中文乱码,需要去check的地方有如下3个:1.mysql窗口的字符编码(xshell连接的远程工具的字符集设置):2.数据库的字符编码(show variables like '%char%'):3.linux操作系统的字符编码(echo $LANG); 检查mysql服务器所在的linux os的字符集: cat /etc/sysconfig/i18n MySQL官方将prepare.execute.deallocate统称为PREPARE STATEMENT. 我习惯称其为[预处理…
前言 做CTF题的时候遇到的所以参考资料学习一波.... MySQL的SQL预处理(Prepared) 一.SQL 语句的执行处理 1.即时 SQL 一条 SQL 在 DB 接收到最终执行完毕返回,大致的过程如下: 1. 词法和语义解析: 2. 优化 SQL 语句,制定执行计划: 3. 执行并返回结果: 如上,一条 SQL 直接是走流程处理,一次编译,单次运行,此类普通语句被称作 Immediate Statements (即时 SQL). 2.预处理 SQL 但是,绝大多数情况下,某需求某一条…
mysql -h 127.0.0.1 -P 3306 -u root -p -D test --batch --skip-column-name --execute="select * from tab_important" D:数据库 batch:输出结果无线框 skip-column-name:输出结果无列名…
Add a Column to a table if not exists MySQL allows you to create a table if it does not exist, but does not provide a native way of a adding a column (i.e. a field) to an existing table with a test of whether the column already exists - so as to avoi…
最近在数据库上经常遇到死锁问题. 表现的问题有 1. 有一个查询为: 1) 一个复杂的 select 查处一组大数据 2) 使用事务 update 这组数据的状态 为了让锁定的时间变短, 我将这整个大事务切分成了多个小事务, 也就是每次查询并更新 1W 数据变为了每次查询并更新 100 数据, 但是需要查询更新 100 次, 总数据量还是 1W 这样就造成了一个问题, 因为这个 select 是个复杂查询, 这里 100 次 select 使得整个操作时间急剧上升. 所以我认为最好的做法是, 先…
在用mysql数据库建表和修改数据库数据时,出现  Unknown column 'bname' in 'where clause'和Unknown column 'bid' in 'field list'. 除了网友提供的诸多种情形和解决方案,答主列举一种特殊的,由懒而生的一个出错情景: 首先创建了一张bank表,插入了2条数据,用select语句查询如下图所示: 原本是想修改一条数据的,但是发现报了一个错: Unknown column 'bname' in 'where clause' 然…
linux安装了mysql之后初始化密码获取:出现了下面的内容,密码很尴尬,无法用root登录: grep 'temporary password' /var/log/mysqld.log [Note] A temporary password is generated for root@localhost: 4)ZqW0IooQ(a 出错如下: [root@iZuf655czz7lmtn8v15tsjZ mysql]# mysql -uroot -p 4)ZqW0IooQ(a -bash: s…
(转载)http://blog.chinaunix.net/uid-20665047-id-3137284.html column 'id' in field list is ambiguous 这个错误,是因为你查询语句里面有id字段的时候,没有说明是哪个表的id字段,应该加上表名(或者别名)来区分. 用表名进行区分的例子:select student.id, student.name, score.totalfrom student, scorewhere student.id = scor…
ALTER COLUMN:设置或删除列的默认值(操作速度非常快) 例子: alter table film alter column rental_duration set default 5; alter table film alter column rental_duration drop default; CHANGE COLUMN:列的重命名.列类型的变更以及列位置的移动 例子: ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32)…
1709: Index column size too large. The maximum column size is 767 bytes. 修改排序规则解决 utf8_general_ci…
[Err] 1052 - Column 'modify_time' in where clause is ambiguous 出错的语句: SELECT AVG(T.se)%60FROM( SELECT TIMESTAMPDIFF(SECOND,first_transfer_time,modify_time) se FROM xes_appeals INNER JOIN xes_appeal_templates WHERE xes_appeals.app_type = xes_appeal_te…
1.添加 格式:alter table 表名 add column 列名 列的数据类型;示例alter table test4 add column addr text; 2.删除 格式: alter table 表名 drop column 列名; 示例: alter table test4 drop column addr;…
ALTER COLUMN.MODIFY COLUMN 和 CHANGE COLUMN 语句修改列: ALTER COLUMN:改变.删除列的默认值(备注:列的默认值存储在 .frm 文件中). 这个语句会直接修改 .frm 文件而不涉及表数据,所以操作很快. -- 改变列的默认值 ALTER TABLE test ALTER COLUMN age SET DEFAULT 17; -- 删除列的默认值 ALTER TABLE test ALTER COLUMN age DROP DEFAULT;…
使用 INSERT INTO - SELECT FROM - ON DUPLICATE KEY UPDATE 时遇到了这个问题,百思不得其解…
MySQL 5.7引入了Generated Column,这篇文章简单地介绍了Generated Column的使用方法和注意事项,为读者了解MySQL 5.7提供一个快速的.完整的教程.这篇文章围绕以下几个问题展开: Generated Column是什么  Virtual Column与Stored Column的区别  如果我对Generated Column做一些破坏行为会怎么样  Generated Column上创建索引  Generated Column上创建索引与Oracle的函…
预制语句的SQL语法基于三个SQL语句: PREPARE stmt_name FROM preparable_stmt; EXECUTE stmt_name [USING @var_name [, @var_name] ...]; {DEALLOCATE | DROP} PREPARE stmt_name; 以下转自http://www.cnblogs.com/end/archive/2011/04/01/2002658.html MySQL官方将prepare.execute.dealloca…
今天在写多个删除功能的时候出现了这么一个错误:意思是删除操作的时候,没有找到对应的外键. Cannot delete or update a parent row: a foreign key constraint fails (`ssh03`.`role_privilege`, CONSTRAINT `FK45FBD628F05C38CB` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`)) Cannot delete or update…
在做项目的时候需要些分页,用的数据库是MySQL,之前看到的参考例子是用MS SQL做的,在MS SQL.Oracle里面有ROW_NUMBER() OVER函数可以在数据库里对数据进行分组.百度后的结论总结如下: (一)先说下在mysql里面分页时的sql语句,转载自http://topic.csdn.net/u/20090504/15/bfbc217b-4ae4-4f36-9810-21de077fb034.html第13.14楼: MySQL中的分页比较容易,只要在程序中中得到是从哪条记录…
Class cursor.MySQLCursor 具体方法和属性如下:Constructor cursor.MySQLCursorMethod MySQLCursor.callproc(procname, args=())Method MySQLCursor.close()Method MySQLCursor.execute(operation, params=None, multi=False)Method MySQLCursor.executemany(operation, seq_para…
简单的用set或者declare语句定义变量,然后直接作为sql的表名是不行的,mysql会把变量名当作表名.在其他的sql数据库中也是如此,mssql的解决方法是将整条sql语句作为变量,其中穿插变量作为表名,然后用sp_executesql调用该语句. 这在mysql5.0之前是不行的,5.0之后引入了一个全新的语句,可以达到类似sp_executesql的功能(仅对procedure有效,function不支持动态查询): PREPARE stmt_name FROM preparable…
语法 PREPARE statement_name FROM sql_text /*定义*/ EXECUTE statement_name [USING variable [,variable...]] /*执行预处理语句*/ DEALLOCATE PREPARE statement_name /*删除定义*/ 例 mysql> PREPARE prod FROM "INSERT INTO examlple VALUES(?,?)"; mysql> SET @p='1';…
Performing an In-place Upgrade This section describes how to perform an in-place upgrade. Review Before you Begin before proceeding. Note If you upgrade an installation originally produced by installing multiple RPM packages, upgrade all the packages…
MySQL DDL:DDL是一个令所有MySQL dDBA 诟病的一个功能,因为在MySQL中在对表进行dDDL时,会锁表,当表比较小比如小于1W行时,对前端影响较小,当时遇到千万级别的表,就会影响前端应用对表的写操作! InnoDB引擎是通过以下步骤来进行DDL的:1.按照原始表(original_table)的表结构和DDL语句,新建一个不可见的临时表(tmp_table)2.在原表上加write lock,阻塞所有更新操作(insert.delete.update等)3.执行insert…
问题: spark集成hive,启动spark-shell或者spark-sql的时候,报错: INFO MetaStoreDirectSql: MySQL check failed, assuming we are not on mysql: Lexical error at line 1, column 5. Encountered: "@" (64), after : "". 环境: spark-1.4 hive-1.2.1 mysql-5.1 jdbc驱动…
Mysql存储过程知识,案例: create procedure delete_setting(in p_settingid integer) begin delete from setting where settingid=p_settingid; end select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' show procedure status; show create pro…
#!/usr/bin/env python # -*- coding:utf-8 -*- __Author__ = "Zhang Xuyao" from sqlalchemy import create_engine # engine = create_engine("mysql+pymysql://root:123123@localhost/attendance?charset=utf8", echo=True) engine = create_engine(&q…
MYSQL 用户管理 1.权限表 MYSQL是一个多用户的数据库,MYSQL的用户可以分为两大类: (1)       超级管理员用户(root),拥有全部权限 (2)       普通用户,由root创建,普通用户只拥有root所分配的权限 1.1 权限表的位置 数据库:mysql 与权限相关的数据表:user,db,host,tables_priv,columns_priv,procs_priv等 1.2 user表 User表存储了: (1)用户的信息:hots(用户所在的主机),user…
简单的用set或者declare语句定义变量,然后直接作为sql的表名是不行的,mysql会把变量名当作表名.在其他的sql数据库中也是如此,mssql的解决方法是将整条sql语句作为变量,其中穿插变量作为表名,然后用sp_executesql调用该语句. 这在mysql5.0之前是不行的,5.0之后引入了一个全新的语句,可以达到类似sp_executesql的功能(仅对procedure有效,function不支持动态查询): PREPARE stmt_name FROM preparable…
Prepared SQL Statement:SQL的执行.预编译处理语法.注意点 一.SQL 语句的执行处理1.即时 SQL 一条 SQL 在 DB 接收到最终执行完毕返回,大致的过程如下: 1. 词法和语义解析: 2. 优化 SQL 语句,制定执行计划: 3. 执行并返回结果: 如上,一条 SQL 直接是走流程处理,一次编译,单次运行,此类普通语句被称作 Immediate Statements (即时 SQL).2.预处理 SQL 但是,绝大多数情况下,某需求某一条 SQL 语句可能会被反…
注意:本文不会将所有完整源码贴出,只是将具体的思路以及部分源码贴出,需要感兴趣的读者自己实验然后实现吆. 缘起 公司最近的项目需要将之前的部分业务的数据库连接方式改为jdbc,但由于之前的项目都使用sqlarchemy作为orm框架,该框架似乎没有支持jdbc,为了能做最小的修改并满足需求,所以需要修改sqlarchemy的源码. 基本配置介绍 sqlalchemy 版本:1.1.15 使用jaydebeapi模块调用jdbc连接mysql 前提: 1 学会使用jaydebeapi模块,使用方法…