
Shangqiu (kinesisk: 商丘; pinyin: Shāngqiū) er en kinesisk by på prefekturnivå i provinsen Henan i det sentrale Kina. Befolkningen anslås (2005) til 184 000.
Arkeologiske funn viser at byens historie går tilbake til første del av Shang-dynastiet.
Shangqiu var hovedstad for den kinesiske oldtidsstaten Song.
Shangqiu består av to bydistrikter, ett fylke og seks fylker:
Den viktige jernbanelinjen Jingjiubanen stopper her på sin ferd fra Beijing vestbanestasjon til Kowloon i Hongkong. Denne linjen går gjennom blant annet Hengshui, Heze, Xinzhou, Jiujiang, Nanchang, Heyuan, Huizhou og Shenzhen.
I Shangqiu stanser også togene på Longhaibanen, i øst-vest-retning Kinas viktigste jernbanelinje, som går fra Lianyungang til Lanzhou via blant annet Xuzhou, Kaifeng, Zhengzhou, Luoyang og Xi'an.
Kinas riksvei 105 går også gjennom byen. Denne viktige trafikkåren begynner i Beijing, går sørover og ender ved kysten i Zhuhai i provinsen Guangdong. Den går innom større byer som Tianjin, Dezhou, Jining, Jiujiang, Nanchang og Guangzhou.
Kinas riksvei 310 går gjennom området. Denne viktige trafikkåren begynner i Lianyungang i Jiangsu, går vestover og ender i Tianshui i provinsen Gansu. Den går innom større byer som Xuzhou, Shangqiu, Kaifeng, Zhengzhou, Luoyang og Xi'an.