当前位置:首页 » 编程语言 » sql数据处理模块
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql数据处理模块

发布时间: 2022-11-15 06:16:58

㈠ 处理数据批量生成sql插入语句

处理数据批量生成sql插入语句
最近在做一个天气预报模块,首先需要将客户端公网ip转换成所在城市,然后将所在城市名转换成对应的城市代码,在网上找到了城市代码,但是需要处理一下,看了看,有三百多城市及对应的城市代码,想存到数据库。就想着做一个数据处理自动生成sql语句的工具,提高效率。
1 直辖市
2 "北京","上海","天津","重庆"
3 "101010100","101020100","101030100","101040100"
4
5 特别行政区
6 "香港","澳门"
7 "101320101","101330101"
8
9 黑龙江
10 "哈尔滨","齐齐哈尔","牡丹江","大庆","伊春","双鸭山","鹤岗","鸡西","佳木斯","七台河","黑河","绥化","大兴安岭"
11 "101050101","101050201","101050301","101050901","101050801","101051301","101051201","101051101","101050401","101051002","101050601","101050501","101050701"
12
13 吉林
14 "长春","延吉","吉林","白山","白城","四平","松原","辽源","大安","通化"
15 "101060101","101060301","101060201","101060901","101060601","101060401","101060801","101060701","101060603","101060501"
16
17 辽宁
18 "沈阳","大连","葫芦岛","盘锦","本溪","抚顺","铁岭","辽阳","营口","阜新","朝阳","锦州","丹东","鞍山"
19 "101070101","101070201","101071401","101071301","101070501","101070401","101071101","101071001","101070801","101070901","101071201","101070701","101070601","101070301"
20
21 内蒙古
22 "呼和浩特","呼伦贝尔","锡林浩特","包头","赤峰","海拉尔","乌海","鄂尔多斯","通辽"
23 "101080101","101081000","101080901","101080201","101080601","101081001","101080301","101080701","101080501"
24
25 河北
26 "石家庄","唐山","张家口","廊坊","邢台","邯郸","沧州","衡水","承德","保定","秦皇岛"
27 "101090101","101090501","101090301","101090601","101090901","101091001","101090701","101090801","101090402","101090201","101091101"
28
29 河南
30 "郑州","开封","洛阳","平顶山","焦作","鹤壁","新乡","安阳","濮阳","许昌","漯河","三门峡","南阳","商丘","信阳","周口","驻马店"
31 "101180101","101180801","101180901","101180501","101181101","101181201","101180301","101180201","101181301","101180401","101181501","101181701","101180701","101181001","101180601","101181401","101181601"
32
33 山东
34 "济南","青岛","淄博","威海","曲阜","临沂","烟台","枣庄","聊城","济宁","菏泽","泰安","日照","东营","德州","滨州","莱芜","潍坊"
35 "101120101","101120201","101120301","101121301","101120710","101120901","101120501","101121401","101121701","101120701","101121001","101120801","101121501","101121201","101120401","101121101","101121601","101120601"
36
37 山西
38 "太原","阳泉","晋城","晋中","临汾","运城","长治","朔州","忻州","大同","吕梁"
39 "101100101","101100301","101100601","101100401","101100701","101100801","101100501","101100901","101101001","101100201","101101101"
40
41 江苏
42 "南京","苏州","昆山","南通","太仓","吴县","徐州","宜兴","镇江","淮安","常熟","盐城","泰州","无锡","连云港","扬州","常州","宿迁"
43 "101190101","101190401","101190404","101190501","101190408","101190406","101190801","101190203","101190301","101190901","101190402","101190701","101191201","101190201","101191001","101190601","101191101","101191301"
44
45 安徽
46 "合肥","巢湖","蚌端口","安庆","六安","滁州","马鞍山","阜阳","宣城","铜陵","淮北","芜湖","毫州","宿州","淮南","池州"
47 "101220101","101221601","101220201","101220601","101221501","101221101","101220501","101220801","101221401","101221301","101221201","101220301","101220901","101220701","101220401","101221701"
48
49 陕西
50 "西安","韩城","安康","汉中","宝鸡","咸阳","榆林","渭南","商洛","铜川","延安"
51 "101110101","101110510","101110701","101110801","101110901","101110200","101110401","101110501","101110601","101111001","101110300"
52
53 宁夏
54 "银川","固原","中卫","石嘴山","吴忠"
55 "101170101","101170401","101170501","101170201","101170301"
56
57 甘肃
58 "兰州","白银","庆阳","酒泉","天水","武威","张掖","甘南","临夏","平凉","定西","金昌"
59 "101160101","101161301","101160401","101160801","101160901","101160501","101160701","101050204","101161101","101160301","101160201","101160601"
60
61 青海
62 "西宁","海北","海西","黄南","果洛","玉树","海东","海南"
63 "101150101","101150801","101150701","101150301","101150501","101150601","101150201","101150401"
64
65 湖北
66 "武汉","宜昌","黄冈","恩施","荆州","神农架","十堰","咸宁","襄阳","孝感","随州","黄石","荆门","鄂州"
67 "101200101","101200901","101200501","101201001","101200801","101201201","101201101","101200701","101200201","101200401","101201301","101200601","101201401","101200301"
68
69 湖南
70 "长沙","邵阳","常德","郴州","吉首","株洲","娄底","湘潭","益阳","永州","岳阳","衡阳","怀化","韶山","张家界"
71 "101250101","101250901","101250601","101250501","101251501","101250301","101250801","101250201","101250701","101251401","101251001","101250401","101251201","101250202","101251101"
72
73 浙江
74 "杭州","湖州","金华","宁波","丽水","绍兴","衢州","嘉兴","台州","舟山","温州"
75 "101210101","101210201","101210901","101210401","101210801","101210501","101211001","101210301","101210601","101211101","101210701"
76
77 江西
78 "南昌","萍乡","九江","上饶","抚州","吉安","鹰潭","宜春","新余","景德镇","赣州"
79 "101240101","101240901","101240201","101240301","101240401","101240601","101241101","101240501","101241001","101240801","101240701"
80
81 福建
82 "福州","厦门","龙岩","南平","宁德","莆田","泉州","三明","漳州"
83 "101230101","101230201","101230701","101230901","101230301","101230401","101230501","101230801","101230601"
84
85 贵州
86 "贵阳","安顺","赤水","遵义","铜仁","六盘水","毕节","凯里","都匀"
87 "101260101","101260301","101260208","101260201","101260601","101260801","101260701","101260501","101260401"
88
89 四川
90 "成都","泸州","内江","凉山","阿坝","巴中","广元","乐山","绵阳","德阳","攀枝花","雅安","宜宾","自贡","甘孜州","达州","资阳","广安","遂宁","眉山","南充"
91 "101270101","101271001","101271201","101271601","101271901","101270901","101272101","101271401","101270401","101272001","101270201","101271701","101271101","101270301","101271801","101270601","101271301","101270801","101270701","101271501","101270501"
92
93 广东
94 "广州","深圳","潮州","韶关","湛江","惠州","清远","东莞","江门","茂名","肇庆","汕尾","河源","揭阳","梅州","中山","德庆","阳江","云浮","珠海","汕头","佛山"
95 "101280101","101280601","101281501","101280201","101281001","101280301","101281301","101281601","101281101","101282001","101280901","101282101","101281201","101281901","101280401","101281701","101280905","101281801","101281401","101280701","101280501","101280800"
96
97 广西
98 "南宁","桂林","阳朔","柳州","梧州","玉林","桂平","贺州","钦州","贵港","防城港","百色","北海","河池","来宾","崇左"
99 "101300101","101300501","101300510","101300301","101300601","101300901","101300802","101300701","101301101","101300801","101301401","101301001","101301301","101301201","101300401","101300201"
100
101 云南
102 "昆明","保山","楚雄","德宏","红河","临沧","怒江","曲靖","思茅","文山","玉溪","昭通","丽江","大理"
103 "101290101","101290501","101290801","101291501","101290301","101291101","101291201","101290401","101290901","101290601","101290701","101291001","101291401","101290201"
104
105 海南
106 "海口","三亚","儋州","琼山","通什","文昌"
107 "101310101","101310201","101310205","101310102","101310222","101310212"
108
109 新疆
110 "乌鲁木齐","阿勒泰","阿克苏","昌吉","哈密","和田","喀什","克拉玛依","石河子","塔城","库尔勒","吐鲁番","伊宁"
111 "101130101","101131401","101130801","101130401","101131201","101131301","101130901","101130201","101130301","101131101","101130601","101130501","101131001"
112
113 西藏
114 "拉萨","阿里","昌都","那曲","日喀则","山南","林芝"
115 "101140101","101140701","101140501","101140601","101140201","101140301","101140401"
116
117 台湾
118 "台北","高雄"
119 "101340102","101340201"

城市代码

一看上去很乱的,而且对应关系是每个省城市一行,代码一行,分别用引号引起,用逗号分隔,每行间都没有符号分隔,省名没有用引号。首先是想着把省名去掉,因为每个城市名都是不相同的。想着每两行两行的去处理,但是也要费不少功夫,还容易出错。就想个索性一次性的全处理的算法。

ps:界面很简单,上面是输入数据,中间是转换,下面是输出数据。

后台主要代码:
[csharp] view plain

private void button1_Click(object sender, EventArgs e)
{
string data = textBox1.Text.Replace("r", "").Replace("n", "").Replace("t", "").Replace(" ", "").Replace(" ", "").Replace(" ", "");
MatchCollection matchsdata = matches(data, ""[sS]*?"");
string[,] temps = new string[matchsdata.Count / 2, 2];
int count0 = 0;
int count1 = 0;
string input = string.Empty;
foreach (Match m in matchsdata)
{
string tempdata = m.Value.Replace(""", "");
try
{
int tryp = int.Parse(tempdata);
temps[count1, 1] = tempdata;
count1++;
}
catch (Exception ex)
{
temps[count0, 0] = tempdata;
count0++;
}
}
for (int i = 0; i < (matchsdata.Count / 2); i++)
{
input += "insert into tbl_CityCode(c_city,c_code) values( + temps[i, 0] + , + temps[i, 1] + )rn";
}
textBox2.Text = input;
}

public static MatchCollection matches(string str, string exp)
{
return Regex.Matches(str, exp, RegexOptions.IgnoreCase);
}

首先是将输入的数据处理,去除换行符,空格什么的。然后你应该是会得到一行数据,然后通过正则表达式匹配出所有带引号的数据,你会发现需要的数据全部都是用引号引起来的,但是怎样区分城市名和城市代码呢,它们是混在一起的。不用担心,你发现了吗?城市名是字符串,城市代码是一串数字,我们只要将匹配出的数据数组遍历,每一行数据都去转换成int类型,这样城市名的行就会报错,在catch中捕捉,这一行就是城市名,没错的就是城市代码,把数据一次存到一个二维数组,对应的列中就行了。这样就会获得了相对应的城市名和城市代码。生成的sql语句要对应相应的数据库表。
表结构:
转换完了将生成的sql语句放到查询器中执行就ok了。共处理了349个城市。
最后不放心自己的算法,随机抽查了几条数据,没有错误。

<script type="text/javascript"><!-- google_ad_client = "ca-pub-1944176156128447"; /* cnblogs 首页横幅 */ google_ad_slot = "5419468456"; google_ad_width = 728; google_ad_height = 90; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

㈡ 如何用SQL对一下数据进行处理

得写个存储过程才行,单条语句是不能完成的

㈢ 如何在EXCEL中使用SQL进行数据处理与分析

在EXCEL中使用SQL进行数据处理与分析步骤有:

工具原料:excel2013版本

  1. 打开“excel”,在“数据”选项卡中,找到“自其他来源”;




    ㈣ sql数据库后台处理的方法

    private const int MaxPool = 10000; //最大连接数
    private const int MinPool = 0; //最小连接数
    private const bool Asyn_Process = true; //设置异步访问数据库
    private const bool Mars = true; //在单个连接上得到和管理多个、仅向前引用和只读的结果集(ADO.NET2.0)
    private const int Conn_Timeout = 15; //设置连接等待时间
    private const int Conn_Lifetime = 15; //设置连接的生命周期
    //private string ConnString = ""; //连接字符串
    // private SqlConnection SqlDrConn = null; //连接对象
    private static SqlConnection connection;
    public static SqlConnection Connection
    {
    get
    {
    //string connectionString = ConfigurationManager.ConnectionStrings["Notoko"].ConnectionString;
    //string connectionString = ConfigurationSettings.AppSettings["ConnectionString"];
    //string connectionString = "Data Source=.;Initial Catalog=notoko;Integrated Security=True;User ID=sa;Pwd=123";

    string connectionString = "Data Source=.;"
    + "integrated security=True;"
    + "database=notoko;"
    + "User ID=sa;"
    + "Pwd=123;"
    + "Max Pool Size=" + MaxPool + ";"
    + "Min Pool Size=" + MinPool + ";"
    + "Connect Timeout=" + Conn_Timeout + ";"
    + "Connection Lifetime=" + Conn_Lifetime + ";"
    +"Asynchronous Processing=" + Asyn_Process + ";";
    connection = new SqlConnection(connectionString);
    if (connection == null)
    {
    connection.Open();
    }
    else if (connection.State == System.Data.ConnectionState.Closed)
    {
    connection.Open();
    }
    else if (connection.State == System.Data.ConnectionState.Broken)
    {
    connection.Close();
    connection.Open();
    }
    return connection;
    }
    }
    public static int ExecuteCommand(string safeSql)
    {
    SqlCommand cmd = new SqlCommand(safeSql, Connection);
    int result = cmd.ExecuteNonQuery();
    return result;
    connection.Close();
    connection.Dispose();
    } public static int ExecuteCommand(string sql, params SqlParameter[] values)
    {
    SqlCommand cmd = new SqlCommand(sql, Connection);
    cmd.Parameters.AddRange(values);
    return cmd.ExecuteNonQuery();
    connection.Close();
    connection.Dispose();
    } public static string ReturnStringScalar(string safeSql)
    {
    SqlCommand cmd = new SqlCommand(safeSql, Connection);
    try
    {
    string result = cmd.ExecuteScalar().ToString();
    return result;
    }
    catch (Exception e)
    {
    return "0";
    }
    connection.Close();
    connection.Dispose();
    } public static int GetScalar(string safeSql)
    {
    SqlCommand cmd = new SqlCommand(safeSql, Connection);
    try
    {
    int result = Convert.ToInt32(cmd.ExecuteScalar());
    return result;
    }
    catch (Exception e)
    {
    return 0;
    }
    connection.Close();
    connection.Dispose();
    }
    public static int GetScalar(string sql, params SqlParameter[] values)
    {
    SqlCommand cmd = new SqlCommand(sql, Connection);
    cmd.Parameters.AddRange(values);
    int result = Convert.ToInt32(cmd.ExecuteScalar());
    return result;
    connection.Close();
    connection.Dispose();
    } public static SqlDataReader GetReader(string safeSql)
    {
    SqlCommand cmd = new SqlCommand(safeSql, Connection);
    SqlDataReader reader = cmd.ExecuteReader();
    return reader;
    reader.Close();
    reader.Dispose();
    connection.Close();
    } public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
    {
    SqlCommand cmd = new SqlCommand(sql, Connection);
    cmd.Parameters.AddRange(values);
    SqlDataReader reader = cmd.ExecuteReader();
    return reader;
    reader.Close();
    reader.Dispose();
    connection.Close();
    connection.Dispose();
    } public static DataTable GetDataSet(string safeSql)
    {
    DataSet ds = new DataSet();
    SqlCommand cmd = new SqlCommand(safeSql, Connection);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    connection.Close();
    connection.Dispose();
    return ds.Tables[0];
    } public static DataTable GetDataSet(string sql, params SqlParameter[] values)
    {
    DataSet ds = new DataSet();
    SqlCommand cmd = new SqlCommand(sql, Connection);
    cmd.Parameters.AddRange(values);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    connection.Close();
    connection.Dispose();
    return ds.Tables[0]; }
    }

    ㈤ 谁有SQL数据库操作模块

    每种数据库管理系统都带有一系列的管理工具软件和开发软件。比如Oracle数据库管理系统就集成了基本的管理工具(SQL Plus等管理开发工具)。此外还有很多第三方的开发管理工具如PL/SQL。

    ㈥ sql表数据处理

    select distinct price from t1 where price<>0 and month<currentMonth orderby month desc
    currentMonth为当前月份

    ㈦ sql 中 什么是分布式处理数据

    分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。

    分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。

    分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。

    分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。

    分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。

    ---------------

    分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。

    分布式数据库系统已经成为信息处理学科的重要领域,正在迅速发展之中,原因基于以下几点:

    1、它可以解决组织机构分散而数据需要相互联系的问题。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。

    2、如果一个组织机构需要增加新的相对自主的组织单位来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。

    3、均衡负载的需要。数据的分解采用使局部应用达到最大,这使得各处理机之间的相互干扰降到最低。负载在各处理机之间分担,可以避免临界瓶颈。

    4、当现有机构中已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。

    5、相等规模的分布式数据库系统在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。

    特点

    1、在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自主权。

    2、在分布式数据库系统中数据独立性概念也同样重要,然而增加了一个新的概念,就是分布式透明性。所谓分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。

    3、集中式数据库系统不同,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性。其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。当然,在分布式系统中对最佳冗余度的评价是很复杂的。

    分布式系统的类型,大致可以归为三类:

    1、分布式数据,但只有一个总? 据库,没有局部数据库。

    2、分层式处理,每一层都有自己的数据库。

    3、充分分散的分布式网络,没有中央控制部分,各节点之间的联接方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式联接等。

    ---------------------

    什么是分布式智能?
    NI LabVIEW 8的分布式智能结合了相关的技术和工具,解决了分布式系统开发会碰到的一些挑战。更重要的是,NI LabVIEW 8的分布式智能提供的解决方案不仅令这些挑战迎刃而解,且易于实施。LabVIEW 8的分布式智能具体包括:

    可对分布式系统中的所有结点编程——包括主机和终端。尤为可贵的是,您可以利用LabVIEW图形化编程方式,对大量不同类型的对象进行编程,如桌面处理器、实时系统、FPGA、PDA、嵌入式微处理器和DSP。
    导航所有系统结点的查看系统——LabVIEW Project Explorer。您可使用Project Explorer查看、编辑、运行和调试运行于任何对象上的结点。
    经简化的数据共享编程界面——共享变量。使用共享变量,您可轻松地在系统间(甚至实时系统间)传输数据且不影响性能。无通信循环,无RT FIFO,无需低层次TCP函数。您可以利用简单的对话完成共享变量的配置,从而将数据在各系统间传输或将数据连接到不同的数据源。您还可添加记录、警报、事件等数据服务――一切仅需简单的对话即可完成。
    实现了远程设备及系统内部或设备及系统之间的同步操作——定时和同步始终是定义高性能测量和控制系统的关键问题。利用基于NI技术的系统,探索设备内部并编写其内部运行机制,从而取得比传统仪器或PLC方式下更为灵活的解决方案。

    --------------------

    在分布式计算机操作系统支持下,互连的计算机可以互相协调工作,共同完成一项任务。

    也可以这么解释:
    一种计算机硬件的配置方式和相应的功能配置方式。它是一种多处理器的计算机系统,各处理器通过互连网络构成统一的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。这样就加快了系统的处理速度,简化了主机的逻辑结构.

    86小小祝你好运

    ㈧ 数据处理简单对比:Excel,SQL,Python

    无论是什么工具,做数据分析的时候一定会涉及到两类工作:

    这篇文章简单对比一下Excel、SQL和Python在这两类任务上的实现过程,从而对比其异同。

    如图所示,所涉及的共有三个表:

    可以看到,score表通过sno和student表连接、通过cno和course表连接。

    另外,这张截图截自Excel,主要是为了方便后面Excel部分的讨论。

    现在,我想要合并三张表,得到新表merge_table,表包含的列一次为:sno,cno,degree,sname,cname。

    即,新表中包含score表的所有列,student表的sname列,以及course表的cname列。

    为了讨论方便,先上结果:

    首先,在 A17:E17 单元格创建所需列名,然后通过简单复制粘贴得到 A18:C28 这三列的数据。

    D、E列的数据可以通过以下两种方法实现:

    两种方法实现逻辑和结果都一样,但前者调用的时候比后者稍复杂。为了说明,D列数据的提取我使用了方法1,E列数据的提取我使用了方法2。

    D列:

    首先在 D18 单元格输入以下函数(函数中的单元格所对应的数据请看图01)

    接着下拉函数至 D28 。

    E列:

    在 E18 单元格输入以下函数(函数中的单元格所对应的数据请看图01)

    接着下拉函数至 E28 。

    注意,如果要提取某个表中的多个列的数据,比如除了sname,我还想得到ssex、sbirthday和class的数据,由于这些列是一同储存在student表中的,用 VLOOPKUP() 显然更高效。

    如果想要加快效率,还可以在原student表上新增一行,用数字x来表示第x列,然后在调用 VLOOPKUP() 时,直接把第三个参数指向这一行。

    在合并关联表上,SQL非常便捷。实现的语句有两个(先创建或者导入原数据表):

    两种方法返回的结果相同,结果如下:

    我用的MySQL,不知道为什么合并后行的顺序变了=。=

    在Python中,首先导入 numpy 和 pandas 模块:

    接着导入数据表。

    之后通过以下语句实现merge_table表的建立:

    结果如下:

    现在假设score表多了一行数据:

    如图所示,蓝色部分为多出的数据,且课程6-106在course表中不存在。请无视逻辑问题,主要是为了方便讨论:)

    遇到这种情况,上述的实现方法会出现一个问题:

    因为课程号6-106在course表里并不存在,所以函数在返回值的时候出错了。

    解决的办法有一个,就是在原函数上嵌套 IF() 函数。比如我把 E29 的函数更改为:

    如果函数计算结果错误,则返回0。

    在SQL中,如果出现此类情况, LEFT JOIN 会返回NULL值:

    如果想把NULL值替换为0,查询合并表的时候可以加上 isnull() 函数(MySQL中此函数写作 ifnull() ):

    如果函数计算结果错误,则返回0

    返回结果和Excel的差不多,就不上图了。

    Python中情况类似:

    如果想把NaN值替换为0,只需要在创建merge_table表之后,添加一行语句:

    返回结果也不上图了,和Excel的一样。

    面对合并表中数据不匹配,SQL和Python中都可以在合并表的时候把多出项忽略不计,只要把 LEFT JOIN 换成 INNER JOIN 就行了。但Excel不能自动删除多出项所在行。

    为了方便,现在做一个透视表,该表返回 选了课的同学的学号和其平均课程成绩

    三个软件对于透视表的实现都很友好,并且效率相近。

    Excel在数据透视表工具下把列各种拖拽就行了。

    另外,Excel的数据透视表可以选择返回合计(Grand Total)或者不返回。

    语句:

    结果:

    语句:

    结果:

    一般做透视表的最终目的是作图,毕竟一图胜千语。

    从这个目的出发,Python比SQL、Excel更实用,一来Python比Excel作图高效很多,二来SQL不能作图。

    通过上述对比可以发现,Excel合并关联表比SQL、Python要低效得多,而且在“数据不匹配”问题上解决得不好;而在另一方面,三者在创建透视表上表现相似,就看你习惯用哪个了:)

    ㈨ sql数据处理

    select 答案列,count(*) from 表1 group by 答案列

    然后你再对这个查询出来的结果做一下处理就可以了