shell中使用SQL实现查询
先把文本进行格式处理,然后以空格为分隔符,取第二个空格后的字串,排序,去重,再降序排列,取前5个
arr=($(cat 0100055F_Detail.txt|sed -e '/:/d'|awk -F ' ' '{print$2}'|sort|uniq -c|sort -nr|head -5|awk '{print $2}'))
len=${#arr[@]} 获取数组长度
for((i=0;i<$len;i++))
do
echo ${arr[$i]}
mysql -uroot -p123456 -e "select location from IPLocation.IPLocation where IP_address='${arr[$i]}'"|sed 's/\t/,/g' >> table.csv 执行查询:-u后是用户名,-p后事密码,-e表示执行;
done
cat table.csv|sed -e '/location/d'>table1.csv
paste -d ',' result.csv table1.csv >last.csv 两个文件按列合并,并且两文件的结合列中用逗号分隔。
相关文档:
一、加快sql的执行速度
1.select 语句中使用sort,或join
如果你有排序和连接操作,你可以先select数据到一个临时表中,然后再对临时表进行处理。因为临时表是建立在内存中,所以比建立在磁盘上表操作要快的多。
如:
SELECT time_records.*, case_name
from time_records, OUTER cases
WHERE time_re ......
这个题目听起来十分拗口,英文应该这样写“How to find the service pack version installed on SQL Server using”,这个问题我一直在找,SQL Server一直没有像其他软件一样可以直接查看到版本+补丁号的方法,今天到一个老外的网站终于找到了:
有两种方法:
第一步:使用SQL语句查询
select @@version ......
DBMS_CHANGE_NOTIFICATION
对象(表)数据更新通知
DBMS_APPLICATION_INFO
设置/读取SESSION APPLICATION信息,操作V$SESSION_LONGOPS
DBMS_ALERT
告警
DBMS_DATAPUMP
数据迁移
DBMS_DB_VERSION
数据库版本定义
DBMS_DDL
Compiles、wrapped、Reorganizes 对象
DBMS_DEBUG
ORACLE DEPL/SQL debugger 工具
DB ......
CREATE procedure SqlPager_Ex
@sqlstr varchar(8000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数,
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursorope ......