1、 使用shell把“12306用户名和密码库-不要使用记事本打开会卡死-解压后可使用word或ultraedit打开.rar”中的所有记录成生sql语句,然后把sql导入数据库,成一个uPwd_12306表。字段自己定义。
扩展:请分析一下“12306用户名和密码库”中密码的形成特点并总结。
2、复制出“12306用户名和密码库-不要使用记事本打开会卡死-解压后可使用word或ultraedit打开.rar”所有邮箱和密码字段,使用u_id,邮箱,密码字段创建一个独立的表uPwd。对uPwd表创建索引,方便后期自己后期暴力破解帐号时,查找用户名和密码
3、查看uPwd_12306表中是否有自己的姓名的记录
4、查找出uPwd_12306表中所有90后记录并成生视图uPwd_90。(出生年>=1990)

1.先将文件copy过来

解决中文乱码问题:

[root@ygy130 ~]# find / -name vimrc
/etc/vimrc

[root@ygy130 ~]# vim /etc/vimrc

set fileencodings=utf-8,gb2312,gbk,gb18030

set termencoding=utf-8

set fileformats=unix

set encoding=prc

写脚本

[root@ygy130 ~]# vim make_12306_table.sh

#!/bin/bash
#made by ygy -
#translate Convert a newline symbol,
# Write SQL sentences such as insert into table_name values('a','b'); file=/home/yy/
#convert \r to ''
sed -i 's/\r//' "$file".txt mysql -e 'create database if not exists 12306_data;' -usystem -p123456
echo 'DROP TABLE IF EXISTS uPwd_12306;'>"$file"12306_mid.sql
echo "CREATE TABLE uPwd_12306 (
uid int primary key auto_increment,
uname varchar() not null default '',
paw varchar() not null DEFAULT '',
realname varchar() not null DEFAULT '',
gmsfhm varchar() not null DEFAULT '',
other varchar() not null DEFAULT '',
tel varchar() not null DEFAULT '',
email varchar() not null DEFAULT ''
);">>"$file"12306_mid.sql sed 's/----/'\',\''/g' "$file"12306.txt |awk '{print "insert into uPwd_12306(uname,paw,realname,gmsfhm,other,tel,email) values('\''"$"'\'');"}'>>"$file"12306_mid.sql
mysql -usystem -p123456 12306_data < "$file"12306_mid.sql

运行报错

上网查了下原因,因为数据太多。要修改一下下面的配置,对应linux是my.cnf

重启mysql

[root@ygy130 ~]# service mysqld restart

再次运行

[root@ygy130 ~]# ./make_12306_table.sh

ERROR 1064 (42000) at line 2279: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '210504197710140512','licheng1977','13942443523','licheng19771014@163.com');

报错,我查看一下中间文件

发现这条数据是中文是乱码。

明明已经转了编码,为什么有的字是乱码。

经过研究,原先上传的12306.txt的编码是utf8,使用notepad++打开,中文是乱码,

将格式转成ansi后,中文能正确显示出来,因此,将显示正确的内容剪切,然后调整编码格式为utf8,再把剪切的内容粘贴上去。

然后再把这个转码后的12306.txt上传到linux。

这个方法可行,尝试的其他方法都没有行得通。

再次运行

[root@ygy130 ~]# ./make_12306_table.sh

经过等待后,进入mysql验证一下。

验证成功!

2.

mysql> create table if not exists uPwd  ( uid int(10) primary key, upwd varchar(25), email varchar(40));

导入数据

mysql> insert into uPwd ( uid, upwd, email)select uid,paw,email from uPwd_12306;

Query OK, 131653 rows affected (0.52 sec)

Records: 131653  Duplicates: 0  Warnings: 0

3. mysql> select * from uPwd where email like '4145965';

4. mysql> create view uPwd_90 as select * from uPwd_12306 where substring(gmsfhm,7,4)>=1990;

Query OK, 0 rows affected (0.00 sec)

2-17作业 数据库和shell综合练习的更多相关文章

  1. 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数

    第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all;  ...

  2. SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...

  3. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  4. 全自动安装mongoDB数据库的shell脚本

    最近在研究mongoDB数据库,写了个全自动安装mongoDB数据库的shell脚本,仅供参考,欢迎拍砖,内容如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本 ...

  5. 第六次作业:Alpha阶段综合报告(Java-Team)

    团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://github.com/WHUSE201 ...

  6. 第七次作业:Beta阶段综合报告(Java-Team)

    团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://github.com/WHUSE201 ...

  7. Java第八次作业--数据库编程

    Deadline: 2017-5-18 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握应用JDBC访问数据库的基本步骤 掌握DriverManager类.Connection接 ...

  8. 【大数据应用技术】作业八|爬虫综合大作业Molly134

    本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 前言:本次作业是爬取CBO中国票房2010-2019年每年 ...

  9. Linux下自动还原MySQL数据库的Shell脚本

    创建shell脚本topjui_source.exp,内容如下: #!/usr/bin/expect spawn echo "###### running... ######" s ...

随机推荐

  1. Git与远程仓库关联以及关联错误解决方法

    假设你github的用户名是  helloworld  ,你在上面创建了一个 名为 hello 的 repository. 一. 与本地仓库进行关联 1.1用原生ssh进行关联,速度快: git re ...

  2. jvm 语法糖

    jvm 语法糖主要包括:   1. 泛型 相同擦除类型参数,返回值不同也可以编译成功, 对比方法重载矛盾.     原因:class文件格式中,只要描述符不是完全一致的两个方法就可以共存.     擦 ...

  3. JVM--Java类加载机制

    一.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其存放在运行时数据区的方法区内,然后在java堆区创建一个java.lang.Class对象,用来封装类在方法区内 ...

  4. 181. Flip Bits【LintCode, by java】

    Description Determine the number of bits required to flip if you want to convert integer n to intege ...

  5. 浅谈PCA

    最近在回顾PCA方面的知识,发现对于之前的很多东西有了新的理解,下面和大家分享下我的一些个人的理解 1.我们为什么要用PCA,它能解决我什么问题? PCA(Principal Component An ...

  6. 深度学习图像分割——U-net网络

    写在前面: 一直没有整理的习惯,导致很多东西会有所遗忘,遗漏.借着这个机会,养成一个习惯. 对现有东西做一个整理.记录,对新事物去探索.分享. 因此博客主要内容为我做过的,所学的整理记录以及新的算法. ...

  7. JS中Text节点总结

    文本节点有Text类型表示,包含的是可以找字面解释的纯文本内容.纯文本中可以包含转移后的HTML字符,但不能包含HTML代码.Text节点具有以下属性: 1.nodeType的值为3. 2.nodeN ...

  8. Lecture Sleep(尺取+前缀和)

    Description 你的朋友Mishka和你参加一个微积分讲座.讲座持续n分钟.讲师在第i分钟讲述ai个定理.   米什卡真的对微积分很感兴趣,尽管在演讲的所有时间都很难保持清醒.给你一个米什卡行 ...

  9. 20172330 2017-2018-1 《Java程序设计》第九周学习总结

    20172330 2017-2018-1 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本周的学习包括两章内容,分别为异常和递归. 异常 错误和异常都是对象,代表非正常情况或者无 ...

  10. Web界面和Winform界面生成,代码生成工具

    在上面一篇随笔<代码生成工具之界面快速生成>介绍了代码生成工具Database2Sharp的界面生成操作,其中介绍了Web界面(包括列表界面.内容显示.内容编辑界面的生成,另外还介绍了Wi ...