Day1-sqlite

DAY1

学会了
  • sqlite 的建表,增删改查
  • sqlite不能添加主键,删除列,alert命令被阉割后只能修改表名,新建列,而添加主键需按照格式创建新表,复制旧表过去sqlite11
  • 表的复制失败,可能因为之前的表没有主键,导致数据重复,无法复制到以重复列做主键的新表
  • 数据库命名,小写或_ ,尽量不大写,linux区分大小写,windows不区分
  • 复习了 IO流
  • idea注册码和webstorm一样,License server 输入 http://idea.iteblog.com/key.php
  • 判null
  • string.replace方法需返回给自己才能生效 line = line.replace(…);

制作天气功能

数据源

  • hongyang的《第一行代码》里给的自建接口似乎因为和风天气接口升级而挂了,一时没法筛选城市
    ,便根据hongyang自建接口的和风天气源
    提取城市列表,而网站给出的是txt格式,前公司的城市列表存的是json格式,再综合考虑一下内存问题(也就省了几kb吧。。不如处理图片内存去了。。)
    后,考虑使用数据库来存储。
    • 流程概括是.txt -> CSVToJSON ->.sqlite

步骤

  1. 和风天气源文档复制
  2. 粘贴到http://www.convertcsv.com/csv-to-json.htm,STEP5获取到CSV To Keyed JSON,另存为本地txt
  3. 通过自己的代码将txt转为db

SQL语句

  • 建表
CREATE TABLE HeFengWeatherCity(
  area_id varchar PRIMARY KEY ,
  area_en varchar,
  area_ch varchar,
  nation_id varchar,
  nation_name_en varchar,
  nation_name_ch varchar,
  province_name_en varchar,
  province_name_ch varchar,
  belong_area_name_en varchar,
  belong_area_name_ch varchar,
  latitude REAL,
  longitude REAL
);
  • 插入数据
INSERT INTO HeFengWeatherCity(area_id, area_en, area_ch, nation_id, nation_name_en, nation_name_ch, province_name_en, province_name_ch, belong_area_name_en, belong_area_name_ch, latitude, longitude)
VALUES (11,12,13,14,15,16,17,18,19,20,21,22);
  • 删除重复数据 delete from tbl_person where rowid not in(select max(rowid) from tbl_person group by id)
DELETE FROM OldHeFengWeatherCity WHERE ROWID NOT IN (SELECT max(ROWID) FROM OldHeFengWeatherCity GROUP BY area_id);
  • 查询表
SELECT * FROM HeFengWeatherCity;
  • 删除表
DROP TABLE OldHeFengWeatherCity;
点赞