不定时更新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 '' 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 '' 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 '' COMMENT '政策类型(一类):0、土地政策;1、发展战略政策;2、住房保障政策;3、房地产市场政策;4、税收政策;5、人才政策;6、城镇化政策;7、园区政策',
`policy_type_second` tinyint(3) unsigned NULL DEFAULT '' 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 '' COMMENT '重要性等级',
`plusOrminus_class` tinyint(3) unsigned NULL DEFAULT '' COMMENT '正负分类',
`influentialLand_type` tinyint(3) unsigned NOT NULL DEFAULT '' 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);

MySQL建表、插入语句等的更多相关文章

  1. 三种常用的MySQL建表语句

    MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1(    ...

  2. 基于表的数据字典构造MySQL建表语句

    表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...

  3. MySQL 建表语句 create table 中的列定义

    MySQL 建表语句 create table 中的列定义: column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value ...

  4. MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual.......

    使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 建表语句: DROP DATABASE IF EXISTS javawe ...

  5. 【记录】Mysql 建表注意事项

    博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE ...

  6. MySQL建表DDL规范(欢迎补充)

    MySQL建表DDL规范(欢迎补充) 基本规范: 表名和字段名全大写,一般表名以T开头 脚本需支持可重复执行,带IF NOT EXISTS ,但不可带DROP语句 字符集使用utf8mb4 (CHAR ...

  7. oracle中复制表和数据 && 多表插入语句

    创建测试表和测试数据 create table test  (id number,name varchar(10));  insert into  test values(1,'liufang');  ...

  8. mysql建表出现Timestamp错误

    mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTA ...

  9. 【转载】mysql建表date类型不能设置默认值

    如题,mysql建表date类型的不能设置一个默认值,比如我这样: CREATE TABLE `new_table` ( `biryhday` datetime NULL DEFAULT '1996- ...

  10. 抓取oracle建表语句及获取建表ddl语句

    抓取oracle建表语句及获取建表ddl语句 1.抓取代码如下: 1.1.产生表的语法资料 DECLARE-- v_notPartTable VARCHAR2(1000):= '&2'; -- ...

随机推荐

  1. float 浮点数与零值0比较大小 ZZ

    float x: 千万不要写x==0; 写出float x 与“零值”比较的if语句——一道面试题分析 写出float  x 与“零值”比较的if语句 请写出 float  x 与“零值”比较的 if ...

  2. centos修改主机名 root@后面的名字

    阿里云买的新的ESC,名字都是一串字符,不利于平时使用.我们可以重命名主机来标记. centos6 [root@centos6 ~]$ hostname # 查看当前的hostnmae centos6 ...

  3. 树莓派raspberry pi配置无线路由器AP

    raspi-config进入系统配置面板 进行 Expand Filesystem  扩展文件系统否则备份系统的时候备份文件会急速膨胀. (1)配置网络环境nano /etc/network/inte ...

  4. centos7下docker二进制安装

    问题描述: 内网离线环境下,安装docker.二进制来的还是快点,或者内网搭建yum的epel仓库! 环境: centos7.x docker-18.9.0 x86_64  static //二进制 ...

  5. 3分钟搞明白信用评分卡模型&模型验证

    信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二分类变量的广 ...

  6. Native App开发 与Web App开发(原生与web开发优缺点)

    Native App开发 Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS.Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是 ...

  7. Effective Java 第三版——63. 注意字符串连接的性能

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  8. 初尝 nginx

    第一次尝试用 nginx,记录下几个简单命令: // 启动 start nginx // 测试并设置配置文件 nginx -t -c conf\nginx.conf // 修改配置文件后重载 ngin ...

  9. AWS免费套餐服务器部署NETCORE网站

    之前的linode充了5美元,一个月就用完了,还是创建的最便宜的服务器的!!! 以前一直想用用aws的所谓的免费套餐服务器的,现在linode过期了,可以试着用用了 下面是我的操作流程,包含错误及解决 ...

  10. mac关闭占用某个端口的进程

    在启动项目的时候有时候会提示端口被占用,但是怎么都找不到那个关闭进程的地方,可以直接通过命令行关闭这个进程: 比如要关闭:8000端口的进程: 1. 查找端口进程: lsof -i: 会把所有的占用8 ...