› 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 · Dec 31, 2017 · 5023 views
    This topic created in 3200 days ago, the information mentioned may be changed or developed.
    故事是这样的。。。。

    我创建了一个表:
    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 replies  •  2018-01-20 14:05:36 +08:00
    u1ucky
        1
    u1ucky  
       Dec 31, 2017 via Android
    看你用什么数据库了。

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

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

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

    另 mysql 有时候表名、字段名有些大小写的坑,最好全部小写比较稳妥
    soooon
        8
    soooon  
       Dec 31, 2017
    这个属于改变表结构的需求了,专业的做法是用 alter table add column ... 语句 并且保留该数据库脚本。建议先弄清楚 DDL,DML 的区别。另外,现在只需要打开浏览器写 SQL 就能完成系统开发了: https://enhancer.io
    Hansah
        9
    Hansah  
    OP
       Dec 31, 2017
    @ryh 嗯,确实存在你的这个情况,我试试 ALTER 循环追加好了。
    Hansah
        10
    Hansah  
    OP
       Dec 31, 2017
    @soooon 因为是用在爬虫里的数据库,后期爬到的数据并没有个固定数,所以只能往数据库里添加
    THaGKI9
        11
    THaGKI9  
       Jan 20, 2018 via iPhone
    @siknet 那不如上 nosql ? mongo 处理这种数据就非常舒服
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   746 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 20:59 · PVG 04:59 · LAX 13:59 · JFK 16:59
    ♥ Do have faith in what you're doing.