
Shangqiu (商丘; pinyin: Shāngqiū) er en kinesisk by på præfekturniveau i provinsen Henan i det centrale Kina. Præfekturet har et areal på 10,704 km2, og en befolkning på 8.220.000 mennesker (2002).
Arkæologiske fund viser at byens historie går tilbage til første del af Shang-dynastiet.
Shangqiu består af to bydistrikter, et byamt og seks amter:
Den vigtige jernbanelinje Jingjiubanen stopper her på sin rute fra Beijing til Kowloon i Hongkong. Denne linje går passerer blandt andet Hengshui, Heze, Xinzhou, Jiujiang, Nanchang, Heyuan, Huizhou og Shenzhen.
Shangqiu er også station Longhaibanen, Kinas vigtigste jernbanelinje i øst-vestlig-retning, som går fra Lianyungang til Lanzhou via blandt andet Xuzhou, Kaifeng, Zhengzhou, Luoyang og Xi'an.
Kinas rigsvej 105 går også gennem byen. Den begynder i Beijing, går mod syd og ender ved kysten i Zhuhai i provinsen Guangdong. Den passerer større byer som Tianjin, Dezhou, Jining, Jiujiang, Nanchang og Guangzhou.
Kinas rigsvej 310 går gennem området. Den begynder i Lianyungang i Jiangsu, går vestover og ender i Tianshui i provinsen Gansu. Den passerer større byer som Xuzhou, Shangqiu, Kaifeng, Zhengzhou, Luoyang og Xi'an.