The wpdb object can be used to run arbitrary queries against the WordPress database. Let's say you want to list the most recent 4 posts:
$results = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE `post_type`='post' LIMIT 4" );
The $wpdb->posts variable will output the table name for posts. It's usually wp_posts, but if you're using a custom database prefix this could be different.
However, if you're trying to grab post data (or custom post data or meta information or user data or ... anything built-in to WordPress), you should really be using WP_Query.
Here's the same query above, re-written for WP_Query:
$query = new WP_Query(
array(
'post_type' => 'post',
'posts_per_page' => 4
)
);
The advantage of using WP_Query is that it will automatically join against the post meta table and return an array of WP_Post objects that you can work with and loop through.
wpdb classfor custom queries in wordpress. You may also want to try theWP_Queryclass.shortcodesto start. This question is pretty broad and looks like several questions in one. See also: how to ask a good questionfunctions.phpfile. Allowing PHP code to be added directly in the WP editor is a security nightmare, to put it mildly.