SQL与python相结合的相关数据处理分析

来源:互联网 发布:编程中绝对值怎么表示 编辑:程序博客网 时间:2024/06/15 22:16

SQL与python相结合的相关数据处理分析:

     本人也是根据相关的项目进行的相应学习,对SQL与python相结合做简单的介绍;
     SQL常用语法(网上查找的SQL语法资料):

1、mysql> show databases;   #显示当前数据库服务器中的数据库列表2、mysql> create database 库名;   #建立数据库:3、mysql> use 库名;mysql> create table  表名 (字段名 varchar(20), 字段名 char(1)); #建立数据表4、mysql> drop database 库名;#删除数据库5、mysql> drop table 表名;#删除数据表6、mysql> delete from 表名;#将表中记录清空7、mysql> insert into 表名 valuse ("性别","M");#往表中插入记录8、mysql-> update 表名 set 字段名1='a',字段名2='b' where 字段名3='c';#更新表中数据9、mysql> load data local infile "e:/mysql.txt" into table 表名;#用文本方式将数据装入数据表中10、mysql> use 数据库名;mysql> source d:/mysql.sql;#导入.sql文件命令11、mysql> update mysql.user set password=password('新密码') where user='root';mysql> flush privileges;#<span style="font-family: Arial, Helvetica, sans-serif;">命令行修改root密码</span>

1、创建数据库命令:create database <数据库名>例如:建立一个名为xhkdb的数据库mysql> create database xhkdb; 2、显示所有的数据库命令:show databases (注意:最后有个s)mysql> show databases;3、删除数据库命令:drop database <数据库名>例如:删除名为 xhkdb的数据库mysql> drop database xhkdb;4、连接数据库命令: use <数据库名>例如:如果xhkdb数据库存在,尝试存取它:mysql> use xhkdb;屏幕提示:Database changed5、当前选择(连接)的数据库mysql> select database();6、当前数据库包含的表信息:mysql> show tables; (注意:最后有个s)
<h2>表操作,操作之前应连接某个数据库</h2>
1、建表命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);mysql> create table MyClass(> id int(4) not null primary key auto_increment,> name char(20) not null,> sex int(4) not null default ''0'',> degree double(16,2));2、获取表结构 命令: desc 表名,或者show columns from 表名mysql>DESCRIBE MyClassmysql> desc MyClass; mysql> show columns from MyClass;3、删除表命令:drop table <表名>例如:删除表名为 MyClass 的表mysql> drop table MyClass;4、插入数据命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]例如,往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Lucy的成绩为66, 编号为2 的名为Joan 的成绩为82,编号为3 的名为Wang 的成绩为96.mysql> insert into MyClass values(1,'Lucy',66),(2,'Joan',82), (2,'Wang', 96);5、查询表中的数据1)、查询所有行命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >例如:查看表 MyClass 中所有数据mysql> select * from MyClass;2)、查询前几行数据例如:查看表 MyClass 中前2行数据mysql> select * from MyClass order by id limit 0,2;6、删除表中数据命令:delete from 表名 where 表达式例如:删除表 MyClass中编号为1 的记录mysql> delete from MyClass where id=1;7、修改表中数据:update 表名 set 字段=新值,… where 条件mysql> update MyClass set name=''Mary'' where id=1;8、在表中增加字段:命令:alter table 表名 add 字段 类型 其他; 例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0 mysql> alter table MyClass add passtest int(4) default ''0''9、更改表名:命令:rename table 原表名 to 新表名; 例如:在表MyClass名字更改为YouClass mysql> rename table MyClass to YouClass;更新字段内容update 表名 set 字段名 = 新内容update 表名 set 字段名 = replace(字段名,''旧内容'',''新内容'');

SQL数据处理运用的比较多的语句如下:

select  *    from 表 ;  #输出表中的整个数据!select  表.字段    from 表 ;   #输出表中某个字段的整个数据!select  (distinct 字段)  from 表A where 表A.字段 in (select 字段 from 表B);    #输出表A与表B某个字段的(去重)数据!式中的字段都是相同字段;where为条件语句
<span style="white-space:pre"></span>select  count(字段)    from 表 ;   #输出表中某个字段的统计个数(按行计数)!如果需要去重,添加distinct 字段;如上面的用法
<span style="white-space:pre"></span>create index index_字段名 on 表(字段); #index_字段名这个是自己去定义的名字,这个语句看似很简单,如果处理大数据的时候,处理数据没有建立字段索引,查找就会很耗时间,多于自己处理的数据一定去建立相应的索引;下面语句介绍如何去查看数据字段是否建立索引;
        show fields in 表\G;  #字段查看,也可以查看索引;
        相应的统计计算根据上面的语句,不断去变形;

python利用SQL中mySQL进行相应的统计数据分析

       安装了mysqldb,利用python语言如下:
<pre name="code" class="python"># -*- coding: utf-8 -*-'''Created on 2015月9月29日process Data@author: Administrator'''import MySQLdbimport jsonimport os,sysdef processData(filename):    reload(sys)    sys.setdefaultencoding('utf-8')#这两句是处理数据中有中文,防止出现乱码    try:        connect=MySQLdb.connect(user='用户',host='ip',passwd='密码',db='数据库名',charset='utf8')#charset="utf8(编码)"        cur=connect.cursor()        fr=open(filename,'r')        numlines=0        for line in fr:            line1=line.split()            aname=line1[0]            cur.execute('select  * from 表A  where  A.字段 in (select 字段 from 表B)')            result=cur.fetchall()            print 'numlines:',numlines            fr2=open('/data/home/adInit'+'/'+aname+'.csv','a')            for record in result:                fr2.write(json.dumps(record,ensure_ascii=False)+'\n')#将数据库中运行的结果写入保存的文件,这里也对中文数据进行了处理,防止乱码数据;            fr2.close()            numlines+=1        fr.close()        cur.close()        connect.close()    except MySQLdb.Error, e:        print 'Mysql Error %d:%s'%(e.args[0],e.args[1])def producefilename():    filename= ('/data/home/Init.csv')    processData(filename)if __name__ == '__main__':    producefilename()


     上面的程序,将SQL与python相结合,利用xshell软件登陆集群(win7系统),在集群节点上运行相应的python程序加快了数据处理的运算速度;上面简单的介绍数据的预处理;用lsload查看节点的状态,根据节点的状态,用(ssh  节点 )转换节点运行相应的程序;讲的比较浅显适合初学者去了解SQL如何里用Python去处理数据,我也是初学者!如果没有什么收获给您带来的不便敬请谅解!


   

0 0