Data is split across tables so nothing is stored twice: orders holds a customer_id, and the customer's name lives in customers. A join puts them back together:
SELECT o.order_id, c.first_name, o.total
FROM orders AS o
JOIN customers AS c ON o.customer_id = c.customer_id;
ON says how rows match: an order goes with the customer who has the same customer_id. JOIN on its own means INNER JOIN: only rows with a match in both tables come back.
o and c are aliases, short names for the tables. When both tables have a column with the same name, like customer_id, you must say which one you mean (o.customer_id), or the database reports an ambiguous column.
Watch the row count. Joining orders to customers should give one row per order. If you get far more, the ON condition is probably matching the wrong columns. In the schema browser, a link icon marks a column that points at another table.