長江河口南岸に位置し、河口島である崇明島、長興島、横沙島などを含む。北部から東部は江蘇省・西南部は浙江省と接する。東は東シナ海(東海)に面する。市街地は長江の支流である黄浦江を遡ったところにある。黄浦江の河口は呉淞口と称して港があり、崇明島などの島や市外への航行に用いられている。
中国の戦国時代、今の上海あたりは春申君の封地だったため、今も申と称す。また滬(魚を捕る道具)とも呼ばれる。
上海の地は唐代には華亭県の一部だったが、蘇州河の南に上海浦という村ができ、宋代に上海鎮とよばれるようになった。これに対し黄浦江下流の現虹口区あたりには下海廟も存在した。1292年に上海県となったが、もともと江蘇省に属した。
アヘン戦争を終結させた1842年の南京条約により上海は条約港として開港した。これを契機としてイギリス、フランスなどの租界が形成された。1865年に香港上海銀行が設立されたことを先駆として、欧米の金融機関が本格的に上海進出を推進した。1871年には香港と上海を結ぶ海底通信ケーブルが開通し、日本の長崎にも延伸された。1920年代から1930年代にかけて上海は極東最大の都市として発展し、イギリス系金融機関の香港上海銀行を中心にアジア金融の中心となった。上海は魔都或いは東洋のパリとも呼ばれナイトクラブ・ショービジネスが繁栄した。こうした上海の繁栄は、民族資本家(浙江財閥など)の台頭と労働者の困窮化をもたらし、労働運動が盛んになっていた。
1925年に上海から始まった五・三〇運動は、中国における大規模な民族運動とされるが、同時に労働者・社会主義運動の台頭を示した事態であった。こうした状況を懸念した浙江財閥は、蒋介石と提携し反共クーデタ(上海クーデター)を決行させた。なお、中華民国の下で1927年に上海特別市となり、1930年5月、上海直轄市が成立している。
1932年には上海事変が起こり、日本軍機の爆撃を受け、1937年に勃発した日中戦争で日本軍に占領された。1949年の中華人民共和国成立により、外国資本は香港に撤収したが、1950年代から1960年代にかけては工業都市として発展した。
1978年の改革開放政策により、再び外国資本が流入して目覚しい発展を遂げた。現在も1992年以降本格的に開発された浦東新区が牽引役となって高度経済成長を続けている。また上海市指導部から江沢民、朱鎔基、呉邦国、曽慶紅、黄菊ら中華人民共和国の国家主席、総理などの指導部を輩出している。1928年の外灘。この一帯は元々租界地区であったことから、「外国人の河岸」(外灘)が名前の由来となった。
2007年末の人口は1858万人、この内上海市戸籍を持つ人が1378.86万人(820万人が都心部に住む)、上海市居住証、暫住証を持つの中国人と香港、マカオ、台湾以外の外国人(10万人以上)が479万人。その以外の出稼ぎ労働者(いわゆる"民工")が660万人以上。合わせて総人口2500万人。過去30年で上海毎年30万人(殆ど無戸籍人口)ずつ増加する。
上海は中国国内唯一人口マイナス成長の地域、1993から連続15年戸籍人口減りつつである。2007年生まれた子供が10.08万人,出生率7.34%、死亡人口10.22万人、死亡率7.44%、人口自然成長率が-0.1%。2007年男性平均寿命78.87歳,女性平均寿命83.29歳、戸籍人口平均寿命81.08歳。2007年には60歳以上の高齢者の人口比率が20.8%になる。百歳以上の老人が758名、最高齢者が109歳。現在上海市家庭総数の61.06%に当たる305万世帯が一人っ子家庭である。高齢化と少子化問題は市政府に対して大きな課題となる。近年中国の優秀人材に戸籍発給(いわゆる"新上海人")また上海人に二人の子産むなどの人口政策を出す。
上海の原住民が松江あたりにいる。清の時代上海県ができた。1840年アヘン戦争以後経済急速に発展し、隣の地方からどんどん移民された。現在の上海人8割以上は北の江蘇省と南の浙江省からの移民。特に江蘇省揚子江(長江)の南と浙江省北部の江南地方から出身する人上海人の半分以上を占める。従って、上海の文化にも大きな影響を与える。上海語は寧波語、蘇州語と上海本地語の集合である。商売にうまい江蘇人と政治に敏感する浙江人が近代上海の歴史を作った。
江蘇省揚子江北出身の人が"蘇北人"、"江北人"と呼ばれる。蘇北人は上海の滬北または上海駅の近くのスラム地域に住んでおる。蘇北人は戦乱と天災を避難するため上海にやってきた。蘇北語は呉方言ではない。蘇北人の気がはやくて性格悪いと言われる。メインは散髪屋、靴磨くなどの仕事をする。彼らの社会地位が低くて、他の上海人に蔑視される。普段蘇北人同士しか結婚できない。
清の末期、太平天国など一連の革命運動また商売のため、広東省からの移民もやってきた。広東人は運輸、デパート経営などの仕事をする。現在上海市で祖先が広東省出身の人が約150万人。
近年経済発展に伴うたくさんの出稼ぎ労働者が中国各地から上海に来て仕事をする、その数約660万人以上(正確な数字把握難しい)。出稼ぎ労働者の出身はいずれも普通語を喋る四川省、江蘇省蘇北、安徽省、東北地方(旧満州)の者が多い。