Data seldom remains unchanged. Applications manipulate data that is in constant change.

Users change profile information. Managers assign or reassign projects to employees. Bank accounts are updated with withdrawals and deposits.

You get the picture.

Data is constantly changing.

Are you a Medium member? If so, receive a notification by email whenever I publish a blog post here. Not a member? No worries! Use my sign-up link (I will get a commission at no extra cost to you) and join. I really enjoy reading all the great content here and I know you will too!!!

SQL UPDATE Command

In SQL, the UPDATE command…


In the post, CodeIgniter 4 CRUD Series with MySQL: Create, I covered creating new rows of data in a MySQL database table using the CodeIgniter\Model built-in insert() method. There was quite a lot of boilerplate needed for setup to get the project off the ground and running.

This second post should be more direct with all the base scaffolding in place and taken care of.

Reading Data

Now that project data exists in the database, chances are someone will want to see it. Typically, reading the data is 1 of a couple of different operations:

  • One scenario is that all available data…


CRUD operations — Create, Read, Update, and Delete — are integral in any application in which data persists. Introducing a new row or rows of data is under the domain of Create and will be covered in this post.

CodeIgniter 4 is a powerful PHP web development framework that enables developers to build web applications quickly, optionally following the MVC architecture pattern. In addition to the many built-in helper libraries, one of the key components is the CodeIgniter Model. Models come enriched with database CRUD operation methods common across applications and used throughout the development life cycle.

Are you a…


Digital Owl’s Prose

One of the most universal data interchange formats in the world is the CSV file. Data professionals use CSV’s without a thought. Equally, those not even in the ‘ data field’ use CSV’s on a daily basis. Do you have the SQL query results for that report and need to share them in CSV format? Using the Oracle SQL Developer IDE, it is a breeze…

Self-Promotion: If you enjoy the content written here, by all means, share this blog and your favorite post(s) with others who may benefit from or like it as well.


At some point in the programming workflow, you have to work with character and text data. I’m sure some languages are better at parsing strings than others. However, most all programming languages have constructs or functions available for processing string data. In this post, I’m covering the Oracle SQL INSTR() function, which returns the specific location — as a numeric value — of a string within a string (substring).

Follow me here on Medium and get an email notification when I publish posts!

Self-Promotion:

If you enjoy the content written here, by all means, share my blog and your favorite…


If you are working with SQL relational databases, at some point you are going to use JOINs. Normalized data is organized and spread across multiple tables, oftentimes linked by a common column key (or multiple keys). We use JOINs to bring the data together. Therefore JOINs are an important concept to grasp. There are SQL JOIN articles and guides across the internet far and wide and I am adding one more into the mix…

Self-Promotion:

If you enjoy the content written here, by all means, share this blog and your favorite post(s) with others who may benefit from or like…


Many of you may know that I am an avid walker. I enjoy walking and hiking for the health and mental benefits. I’m also finicky about the footwear I wear on my walks. I recently used the LEAD() Window function on some of the walking data I track and discovered gaps in the ranges of dates that I wore a particular brand of shoe. Continue reading and see the example queries I came up with to solidify learning concepts about LEAD()

Follow me here on Medium and get an email notification when I publish posts!

Self-Promotion:

If you enjoy the…


Sometimes when querying SQL tables, you wish to find rows that are missing as opposed to the rows which are present. In this post, I’ll demonstrate 2 queries you can use to determine rows that are present in one table but missing in another table…

Self-Promotion:

If you enjoy the content written here, by all means, share this blog and your favorite post(s) with others who may benefit from or like it as well. Since coffee is my favorite drink, you can even buy me one if you would like!

Note: For the example queries in this post I am…


Suppose you have a comma-separated list composed of numbers and you want it sorted in order from smallest to largest. Continue reading and see a working example I came up with as I continue studying Oracle SQL…

Self-Promotion:

If you enjoy the content written here, by all means, share this blog and your favorite post(s) with others who may benefit from or like it as well. Since coffee is my favorite drink, you can even buy me one if you would like!

Note: As with anything, just because you can do something doesn’t necessarily mean you should do it. This…


Although I primarily work with MySQL/MariaDB these days on back-end web development projects, I am studying Oracle SQL with the end goal to become certified. I recently watched a great YouTube video and decided to try my hand porting over the Oracle SQL queries to comparable MySQL for a learning exercise. This blog post details the queries I came up with for the end results. Continue reading for some fun recursive CTE’s using the SUBSTRING() character function and interesting output display variations.

Self-Promotion:

If you enjoy the content written here, by all means, share this blog and your favorite post(s)…

Joshua Otwell

SQL and PHP/CodeIgniter Developer. Growing through Technical Writing and Blogging my journey and passion at https://joshuaotwell.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store