What do we know about Cities in these address strings? City is in the end of the string but it can contain more than 1 word. So I think there is no way to formalize a method to cut a City name from the Address line using only this table.
I think the one way to do it is to find an universal City table for your area/country in the Internet for example in any format (ZIP codes, government statistics,...) and use this table to cut Cities from this table from the Address line.
For MySQL
SELECT TRIM(TRIM(TRAILING Cities.Name FROM Address) ), Cities.Name
from All_Students left join Cities
on All_Students.Address like CONCAT('% ',Cities.Name)
For MS SQL Server
SELECT LEFT(Address,LEN(Address)-LEN(Cities.Name)), Cities.Name
from All_Students left join Cities
on All_Students.Address like '% '+Cities.Name
To update in MS SQL as required in the comment use this :
UPDATE
A
SET
A.address = B.NewAddress,
A.City = B.City
FROM
Transformed_All_Student A
JOIN
(
SELECT Student_id,
LEFT(Address,LEN(Address)-LEN(Cities.Name)) as NewAddress,
Cities.Name as City
from All_Students left join Cities
on All_Students.Address like '% '+Cities.Name
) B
ON A.Student_ID = B.Student_id