在测试时用到的一些mysql的小技巧(持续更新)

经常使用的快捷键:  

  1.ctrl+q 打开查询窗口
  2.ctrl+/ 注释sql语句
  3.ctrl+shift +/ 解除注释
  4.ctrl+r 运行查询窗口的sql语句
  5.ctrl+shift+r 只运行选中的sql语句
  6.F6 打开一个mysql命令行窗口
  7.ctrl+l 删除一行
  8.ctrl+n 打开一个新的查询窗口
  9.ctrl+w 关闭一个查询窗口

 

多表查询结果连接显示:

  UNION自动去除重复行;UNION ALL 重复行保留

 

limit和between的用法:

  select * from admin order by admin_id limit 100000,10  #跳过100000行显示前10行

  select * from admin where admin_id between 100000 admin 100010 order by admin_id #显示100000到100010之间的行数

  SELECT * FROM Persons WHERE LastName BETWEEN 'A' AND 'B'

 

用python连接并操作mysql

  导入pymysql模块,pip install pymysql

  

import pymysql.cursors

# 连接数据库
connect = pymysql.Connect(
        host = '120.26.90.177',
        port = 3306,
        user = 'test_admin',
        passwd = 'bdwork.com!@#',
        db = 'bdwork_test',
        charset = 'utf8'
)
# 获取游标
cursor = connect.cursor()

# 查询数据
sql = "SELECT realname,source from pre_xj_eventapply where uid in (314948,314739,314740,314839)"
cursor.execute(sql)
for row in cursor.fetchall():
    print(row)
print('共查找出', cursor.rowcount, '条数据')

# 关闭连接
cursor.close()
connect.close()
mysql

 

like在生产上尽量不要用,*也都直接替换成要查询的具体字段,这些都可以减轻数据库负担,加快查询速度。

 

查询当前时间:

  SELECT Now()

  

 

 

创建数据表:

  create table 表名(

    字段名 int(10) primary key not null unique,

    字段名 varchar(50) not null,

    字段名 varchar(50) not null

    );

 

查看创建的表格:

  DESC 表名

 



创建一个存储函数来统计表sch中的记录数:   create function count_sch()   returns int   return (select count(*) from sch);
#查看
  
  
select count_sch() as count_sch;


#创建的存储函数名称为count_sch,通过select count_sch()查看函数执行的情况,这个表中只有两条记录,得到的结果也是两条记录,说明存储函数成功的执行。

  SELECT DISTINCT 字段 FROM 表; # 去除重复
  SELECT TOP 50 PERCENT * FROM 表;  # 取表中前50%的数据

  SQL HAVING 语句 与WHERE关键字对比去记,因为WHERE无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。


#格式化显示时间
  DATE_FORMAT(FROM_UNIXTIME(字段名), '显示格式')


 

shift+home选中整行sql
shift+ctrl+r运行选中的sql


把当前时间字段减少6天
UPDATE asset_repayment_order  set repayment_time = DATE_sub(repayment_time, INTERVAL 6 DAY)
update 表 set 字段 = date_sub(字段,interval 天数 day)
说明:
增加当前时间,
select date_add('2000-02-28', interval 1 day);#结果为:'2000-02-29'

 

字符串转md5

 

 

 SELECT SUBSTR(17621211515,1,3)

截取字符串

例子:

 

 

 concat拼接

 

FROM子查询,任何查询语句都可以作为一张表进行二次查询

  SELECT a.`status` FROM (
  SELECT * from asset_borrow_order where `status` = 7) a

 

自连接,派生表连接

输出某一列的排名过程:

 

 

 

 

datediff(‘时间字段’,‘被减时间字段’)

计算日期格式差值(精确到天)

 

 

 

 

 

order by rand()

随机排序,可用于随机取值

 

 

 

 

 

 

 

截取字段

substring_index('需要截取的字段','截取符号',截取下标)

 

 

posted on 2018-09-06 10:04  妖小华  阅读(652)  评论(0编辑  收藏  举报

导航