I constantly look to improve SQL-related skills and knowledge. Having a foundational understanding of MySQL, with moderate to heavy use (and some with PostgreSQL), I have had the Oracle Database in my eye for some time.

Oracle SQL used to feel less approachable to me. I am a Linux user and have found that depending on what Distro you are running, installing Oracle SQL — the XE Edition — can be easy-peasy or it can be, meh... (At least that was my experience.)

However, these days there is the Always Free Oracle Autonomous Database hosted on OCI which I recently…


Programming logic is foundational in any application or piece of software. Without it, software wouldn’t really do much of anything. Everything happens off of choice. In the end, some truthy or falsy value is what makes stuff work. For IF/THEN/ELSE logic in standard SQL, there is the CASE expression. There are 2 variations of the CASE Expression: Simple and Searched. In this post, I cover the Simple MySQL CASE expression with example queries.

Image by Nika Akin from Pixabay

OS and DB used:

  • Linux Mint 20 “Ulyana”
  • MySQL 8.0.23

Self-Promotion:

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


Be it running reports or displaying data in some other visualization, SQL SELECT column expressions should be meaningful and understandable. To provide those valuable query results, SQL Developers use a multitude of available functions, adjacent columns, or other means not readily apparent to end-users. All that being said, the column names often suffer the most as far as readability is concerned, taking on long function call names or other combined expressions. But, as luck would be on our side, there is an easy fix and that is aliasing columns using the AS keyword. …


Digital Owl’s Prose

Each SQL dialect is different in some way, shape, form, or fashion from the next flavor. Some dialects have this function, while others have that function. In this post, I cover porting over Oracle SQL to MySQL in order to count the number of occurrences of a specific weekday found in the current given month (at the time of writing) purely as a learning exercise focused on MySQL DATE functions and the WITH clause…

Image by tigerlily713 from Pixabay

OS and DB used:

  • Linux Mint 20 “Ulyana”
  • MySQL 8.0.23

Self-Promotion:

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


There are multiple fields within the Technical Writer profession one can explore. The same can be said for the Web Development field as well. How about where these 2 disciplines converge? What type of role is that? Where should the focus be placed if such a role exists? On the writing? Or the programming? These types of questions are a constant in my mind here lately and through writing and sharing this post, hopefully, you can help me answer some of them.

I seem to be at a crossroads. To be perfectly clear, I am not working in either field…


CodeIgniter’s Query Builder ORM has class methods for nearly any kind of database access/operation you can think of. In this post, I’ll cover some of the available methods for retrieving aggregate-level query results. The examples in this post map out Query Builder method chaining to produce results you would get from a raw MySQL query. Continue reading to see more…

drawing of campfire flames
drawing of campfire flames
Image by Clker-Free-Vector-Images from Pixabay

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.


Saved me some headache. I am glad you published this and that Google included it in my search results. Thanks again.


I write a lot of blog posts about MySQL, PHP, and Back-end Web Development. I look at blogging as a personal growth diary of how far I have come, as well as how much further I have to go.

Programming is hard. Remembering everything about programming is even harder. I don’t believe there is one single person who can remember every detail about programming. If such a person exists, then good for you.

All that said, I am not such a person. I need help with remembering things. …


Recently, I learned through some online reading that the TABLE statement is supported in MySQL. I was aware that PostgreSQL supported the TABLE command and used it from time to time. As time went on and I used MySQL more (nothing at all against PostgreSQL) I forgot about the TABLE statement. In this blog post, I’ll cover some rudimentary uses of the MySQL TABLE statement for any other developers who may not be aware that it too exists in MySQL…

Image by Pexels from Pixabay

OS and DB used:

  • Linux Mint 20 “Ulyana”
  • MySQL 8.0.23

Self-Promotion:

If you enjoy the content written here, by all…


There may be times you want to allow visitors the opportunity to attach a file to your form prior to sending it. While not applicable in all situations, including files with form data has its place.

Image by Christina Smith from Pixabay

For example, user profiles need avatars. And, in that case, you should allow only specific file types for them such as jpg, png, or gif.

On the other hand, if your form collects writing samples, both pdf and doc file types are popular choices and should be allowed whereas an image file type should be disallowed upon form submittal.

Perhaps the most important reason…

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