问个入门的 SQL 语句问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Hansah
V2EX    MySQL

问个入门的 SQL 语句问题

  •  
  •   Hansah 2017-12-31 13:39:33 +08:00 4416 次点击
    这是一个创建于 2855 天前的主题,其中的信息可能已经有所发展或是发生改变。
    故事是这样的。。。。

    我创建了一个表:
    CREATE TABLE Hotel ([id] integer primary key autoincrement,[Name] varchar(250),[Since] text,[Class] varchar(50));


    然后往里面插入数据
    INSERT INTO Hotel (Name,Since,Class) VALUES ('{-var.酒店名-}','{-var.开业时间-}','{-var.酒店级别-}')


    我后面想加新的数据进去,比如酒店地址什么的,是直接用 insert 插入

    INSERT INTO Hotel (address) VALUES ('{-var.地址-})

    还是先 create 建个同名的表再插入?像这样

    CREATE TABLE Hotel ([address] varchar(250);

    INSERT INTO Hotel (address) VALUES ('{-var.地址-})
    11 条回复    2018-01-20 14:05:36 +08:00
    u1ucky
        1
    u1ucky  
       2017-12-31 13:47:30 +08:00 via Android
    看你用什么数据库了。

    比如 H2 可以直接插入,表不存在则自动创建。

    而 MySQL 需要先建表,若不确定表是否存在可以用 create table if not exists tablename
    Hansah
        2
    Hansah  
    OP
       2017-12-31 13:59:02 +08:00
    @aimkiray 用的是 SQLite,SQLite 是怎么规定的?
    precisi0nux
        3
    precisi0nux  
       2017-12-31 14:17:29 +08:00 via iPhone
    imnpc
        4
    imnpc  
       2017-12-31 14:19:48 +08:00
    这种需求应该是新增字段 然后插入数据的吧
    u1ucky
        5
    u1ucky  
       2017-12-31 15:03:19 +08:00 via Android
    @siknet 非生产环境试一试不就知道啦
    jworg
        6
    jworg  
       2017-12-31 15:07:49 +08:00
    Mysql 初学者表示,现在不应该 ALTER 改变结构添加字段吗,感觉没有建两张表的必要
    ryh
        7
    ryh  
       2017-12-31 15:36:52 +08:00   1
    你要先清楚你本身的数据存在一对多的情况吧,
    比如同一个品牌的酒店的不同分店
    但一般情况下一个酒店肯定只有一个地址,
    就用 alter table 添加 address 字段好了。

    但地址本身细化的话,你可以处理成 n 个(Poi 地标 https://zh.wikipedia.org/zh-cn/兴趣点 )
    比如 2 个门,比如停车场入口什么的(看需求了)

    另 mysql 有时候表名、字段名有些大小写的坑,最好全部小写比较稳妥
    soooon
        8
    soooon  
       2017-12-31 16:23:40 +08:00
    这个属于改变表结构的需求了,专业的做法是用 alter table add column ... 语句 并且保留该数据库脚本。建议先弄清楚 DDL,DML 的区别。另外,现在只需要打开浏览器写 SQL 就能完成系统开发了: https://enhancer.io
    Hansah
        9
    Hansah  
    OP
       2017-12-31 16:25:04 +08:00
    @ryh 嗯,确实存在你的这个情况,我试试 ALTER 循环追加好了。
    Hansah
        10
    Hansah  
    OP
       2017-12-31 16:30:58 +08:00
    @soooon 因为是用在爬虫里的数据库,后期爬到的数据并没有个固定数,所以只能往数据库里添加
    THaGKI9
        11
    THaGKI9  
       2018-01-20 14:05:36 +08:00 via iPhone
    @siknet 那不如上 nosql ? mongo 处理这种数据就非常舒服
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2139 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 01:01 PVG 09:01 LAX 18:01 JFK 21:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86