UART vs I2C library help

I am confuse about the difference between UART and I2C. The documentation in Arduino reads that UART is USB transmit as serial communication. But what confuses me is that most sensors are I2C (or Wire) but are read using the serial monitor via USB.

Then what is the difference of the two?

UART is an asynchronous full-duplex serial interface. The Arduino UNO has one of it (pins 0 and 1) and that one is also connected to the on-board USB2Serial converter so anything you write to that interface is available on the serial monitor on the PC if the baud rate (speed) matches.

I2C is a synchronous half-duplex serial interface. The Arduino UNO also has one of it (pins SDA/SCL or A4/A5, internally connected). I2C is separated into one master and one to many slaves. The slaves have a unique ID so the master is able to communicate with a specific slave. The slave cannot send anything to the master without the master having it explicitly requested at that exact time. The master is providing the clock for the communication, not only for the direction master->slave but also for the opposite direction.

No sensor is read using the serial monitor via USB but it's possible to read a sensor using I2C on the Arduino and then write the received data to the serial interface (UART) to be shown on the serial monitor.

The following diagram describes the interfacing of Serial Monitor/IDE using UART Port and BME280 Sensor using I2C Interface with ATmega328P MCU of Arduino UNO Board.