Day 2 of learning Oracle SQL was less about writing fancy queries and more about understanding what I’m actually storing in a database.
Columns and data types sound basic — and they are — but this was one of those topics where I realised I’d been memorising names without really thinking about why they matter.
This post is me documenting what finally clicked, what confused me, and what I think beginners should actually focus on.
Columns Are Rules, Not Just Labels
Before now, I thought of columns like this:
“Just names for values in a table. Or features of data.”
But in Oracle, columns are more like rules:
- What kind of data is allowed here?
- How big can it be?
- Can it be empty?
- Will Oracle try to convert it automatically?
Once I started seeing columns as constraints on reality, data types suddenly felt more important than before.
What I Practiced Today
I spent most of the day:
- Creating tables manually
- Choosing data types on purpose
- Seeing what breaks when I choose the wrong one
Simple things, but very revealing.
Common Oracle Data Types
VARCHAR2
This is the one I’ll probably use the most.
name VARCHAR2(50)
What clicked for me:
-
VARCHAR2is variable-length text -
50means maximum, not fixed size - Oracle doesn’t waste space if the value is shorter
So emails, names, cities are all perfect for VARCHAR2.
NUMBER
At first, I assumed numbers had to be very specific.
But Oracle surprised me.
salary NUMBER
age NUMBER(3)
balance NUMBER(10,2)
What stuck:
-
NUMBERalone is very flexible -
NUMBER(10,2)means:- 10 total digits (Significant figures)
- 2 after the decimal (Decimal places)
This suddenly explained why money fields behave the way they do.
DATE
date_of_birth DATE
I expected it to store just a date.
But Oracle DATE actually stores:
- Date
- Time (hours, minutes, seconds)
Even if you don’t see the time, it’s there. Which explains why date comparisons can behave oddly if you’re not careful.
CHAR
gender CHAR(1)
What I learnt:
-
CHARis fixed length - Oracle pads unused space with blanks
It’s useful for things like flags (Y/N), but for most text, VARCHAR2 just makes more sense.
Creating a Table (Putting It Together)
This was one of the tables I created while practicing:
CREATE TABLE users (
user_id NUMBER PRIMARY KEY,
email VARCHAR2(100),
age NUMBER(3),
date_joined DATE
);
Seeing this helped me understand that Columns define structure and Data types define behavior
What Still Feels Weird
I’m still adjusting to:
- Choosing the right size for text fields
- Knowing when precision actually matters
- Remembering Oracle-specific names (
VARCHAR2instead ofVARCHAR, though both exist as datatypes)
But compared to Day 1? This already feels more intentional.
Why I’m Sharing This
Columns and data types are usually taught as:
“Here are the types. Memorise them.”
But as a beginner, this is about thinking ahead:
- Future queries
- Data integrity
- Avoiding silent bugs
If you’re new to Oracle and this topic felt boring — same here at first.
But it’s one of those foundations that quietly makes everything else easier.
What’s Next
I’m continuing my slow, honest approach to learning databases one concept at a time.
If you’re also learning SQL from scratch, you’re not alone. I’m documenting every step, confusion included.
— Jessica Aki
Data and Database Engineering Enthusiast
I’m documenting my journey into data engineering learning SQL, databases, and the systems behind modern data platforms.
Top comments (2)
This is a really good way to frame it. “Columns as rules” is the exact mental shift most beginners miss, and once it clicks, everything downstream starts making more sense.
I like that you’re focusing on why the data type matters instead of just listing them. That’s where silent bugs usually come from — not queries, but bad assumptions made at table design time.
Documenting what felt confusing instead of pretending it was obvious is also refreshing. This kind of foundation thinking pays off way more than memorising syntax.
This looks and feels great!