zoukankan      html  css  js  c++  java
  • MySQL建表、插入语句等

    不定时更新MySQL的一些基础语句以及出现过的问题

    5.10

    建表语句

    CREATE TABLE `policy_landvalue` (
    `id` int(20) NOT NULL AUTO_INCREMENT,
    `article_title` varchar(255) NOT NULL COMMENT '文章标题',
    `resource_url` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '来源网站URL:0、http://www.hzxc.gov.cn/pub/protal/xcqzfmh/;1、http://www.gongshu.gov.cn/;2、http://www.shangcheng.gov.cn/;3、http://www.jianggan.gov.cn/;4、http://www.yuhang.gov.cn/;5、http://www.xiaoshan.gov.cn/;6、http://www.hzxh.gov.cn/col/col1177897/index.html;7、http://www.hhtz.gov.cn/;8、http://www.fuyang.gov.cn/',
    `resource_name` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '来源网站名称:0、下城区政府网站;1、拱墅区政府网站;2、上城区政府网站;3、江干区政府网站;4、余杭区政府网站;5、萧山区政府网站;6、西湖区政府网站;7、滨江区政府网站;8、富阳区政府网站',
    `page_level` varchar(255) NOT NULL COMMENT '网站级别',
    `policy_type_first` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '政策类型(一类):0、土地政策;1、发展战略政策;2、住房保障政策;3、房地产市场政策;4、税收政策;5、人才政策;6、城镇化政策;7、园区政策',
    `policy_type_second` tinyint(3) unsigned NULL DEFAULT '0' COMMENT '政策类型(二类):0、土地规划政策;1、发展规划政策;2、住房补贴政策;3、保障性住房建设政策;4、城中村改造、老城区改造、棚改、拆迁政策;5、限购、限贷政策;6、住房公积金政策;7、信贷政策(银行金融机构);8、房产税、契税、土地增值税政策;9、营业税、增值税政策;10、企业所得税政策;11、人才补贴、引进政策;12、户籍政策;13、入学政策;14、产业园区政策;15、经济开发区政策;16、工业园区政策;17、高新区政策',
    `pub_time` datetime DEFAULT NULL COMMENT '原文发布时间',
    `article_url` varchar(255) NOT NULL COMMENT '原文URL',
    `crawl_time` datetime DEFAULT NULL COMMENT '爬取时间',
    `criticality_rank` tinyint(3) unsigned NULL DEFAULT '0' COMMENT '重要性等级',
    `plusOrminus_class` tinyint(3) unsigned NULL DEFAULT '0' COMMENT '正负分类',
    `influentialLand_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '影响土地类型:0、工业、商服、居住;1、居住用地;2、商服用地;3、工业;4',
    PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=    '地价影响因素政策信息表'

    要注意的地方有:

    1、表名和数据名是``符号,而不是''(单引号),但后面COMMENT的注释是''(单引号),或者干脆表名和数据名不用``,但注释一定要单引号

    2、datetime不能是NOT NULL,不知道为什么。。

    python中的MySQL插入函数

    def get_sql(data):
        sql_1 = 'INSERT INTO fixed_asset_new ('
        sql_2 = ') VALUES ('
        for key, value in data.items():
            if data[key] != None:
                sql_1 = sql_1 + key
                # keys.append(key)
                # values.append("'"+str(data[key])+"'")
                if type(data[key]) == str:
                    sql_2 = sql_2 + "'" + data[key] + "'"
                else:
                    sql_2 = sql_2 + str(data[key])
                sql_1 = sql_1 + ','
                sql_2 = sql_2 + ','
        sql_1 = sql_1[:-1]
        sql_2 = sql_2[:-1]
        sql = sql_1 + sql_2 +')'
        return sql

    data是字典格式的数据,假如key是None,就不把这条数据写入SQL语句

    5.11

    昨天的建表语句漏了一个字段,补上:

    `article_text` text COLLATE utf8_bin NOT NULL COMMENT '原文全量文本',

    用来插入全文文本,最多估计在1w多个汉字,照理来说text是够用了,但还是报1064错误,显示文本内容过长,按照网上的办法,把D:mysql/my.ini文件里面的配置信息改了,然后重启数据库,但还是报错,后来在Navicat更新了一下字段类型,设计表>text,于是莫名其妙就可以插入大文本数据了

    注意:SQL插入语句中的文本字段如果用单引号' xxxx',那么xxxx中就不要有“ ”

    5.16

    查询语句

    "SELECT * FROM policy_landvalue WHERE article_url = '{}'".format(article_url)

    里面如果是文本内容,则一定要有' ',否则报错

    #UPDATE policy_landvalue SET resource_type=13,resource_name =13 WHERE page_level = '中国-浙江省-杭州市-市建委';
    #DELETE FROM policy_landvalue WHERE resource_name = 16;
    SELECT * FROM policy_landvalue WHERE resource_name = 19;
    #SELECT * FROM policy_landvalue WHERE article_url = 'http://xxgk.hzgjj.gov.cn/xxgk/jcms_files/jcms1/web1/site/art/2017/1/10/art_144_2610.html';

     5.21

    今天遇到了一个问题,不过现在实际做起来很简单,就是复制一张表的结构(最好保留索引和外键等),然后复制一部分数据

    复制表结构语句如下:

    CREATE TABLE 新表名 like 旧表名

    这样能保留原来的索引和外键;

    部分复制原来表的数据:

    INSERT INTO 新表名 SELECT * FROM 旧表名 WHERE id < 21;

    这里的条件可以随意选择

     5.24

    给数据库表新增多个字段

    ALTER TABLE temp_add ADD(
    cash_stock_sentences text COMMENT '匹配现金文本',
    cash_stock_paragraphs text COMMENT '原文现金文本',
    realEstate_sentences text COMMENT '匹配不动产文本',
    realEstate_paragraphs text COMMENT '原文不动产文本',
    movableProperty_sentences text COMMENT '匹配动产文本',
    movableProperty_paragraphs text COMMENT '原文动产文本'
    )

    如果新增单个字段的话,就是

    ALTER TABLE 表名 ADD 字段名 格式 COMMENT '备注'

     5.25

    更新数据,因为业务需要,把“中国-浙江省-杭州市-市建委”,“中国-浙江省-杭州市-市国土资源局”等字段统一改成“中国-浙江省-杭州市”

    UPDATE policy_landvalue SET page_level='中国-浙江省-杭州市' WHERE page_level='中国-浙江省-杭州市-市人民政府' 
    OR page_level='中国-浙江省-杭州市-市公积金中心' 
    OR page_level= '中国-浙江省-杭州市-市国土资源局'
    OR page_level = '中国-浙江省-杭州市-市建委';

    查询重复的字段

    SELECT * FROM policy_landvalue_copy WHERE article_url in (select article_url from policy_landvalue group by article_url having count(article_url) > 1);

    删除重复的字段 (目前还有问题)

    delete from policy_landvalue_copy where article_url in (select article_url from policy_landvalue_copy group by article_url having count(article_url) > 1) and article_url not in (select article_url from policy_landvalue_copy group by article_url having count(article_url)>1);
    人生苦短,何不用python
  • 相关阅读:
    MLlib--FPGrowth算法
    MLlib--SVD算法
    算法--访问单个节点的删除
    算法--环形链表插值
    算法--数组变树
    算法--滑动窗口
    RMAN备份失败之:mount: block device /dev/emcpowerc1 is write-protected, mounting read-only
    OPatch failed with error code 73
    Sybase ASE报错:server Error: 8242, Severity: 16, State: 1
    ORA-00257: archiver error. Connect internal only, until freed
  • 原文地址:https://www.cnblogs.com/yqpy/p/9023087.html
Copyright © 2011-2022 走看看