Kuasai tipe data SQL di MySQL, PostgreSQL & SQL Server. Pelajari memilih format numerik, teks, dan tanggal yang tepat untuk mengoptimalkan kinerja dan integritas data.
Saat pertama kali bekerja dengan SQL, mudah untuk menganggap tipe data sebagai label sederhana. Satu kolom menyimpan angka, teks, tanggal, atau tipe data khusus. Namun, tipe data lebih dari sekadar label. Ini adalah seperangkat aturan yang mendefinisikan apa itu sebuah nilai di mata basis data.
Dalam praktiknya, tipe data membentuk cara SQL “memahami” informasi di basis data Anda. Ini adalah seperangkat instruksi yang memberi SQL konteks yang dibutuhkan untuk membaca, membandingkan, dan memproses data Anda secara akurat.
Dalam tutorial ini, kita akan melihat kategori utama tipe data SQL dan bagaimana perilakunya di berbagai sistem manajemen basis data. Saya mendorong Anda untuk mengikuti contoh-contohnya sepanjang materi.
Jika Anda belum banyak bekerja dengan tabel basis data sebelumnya,kursus SQL Fundamentals kami memberikan dasar yang jelas dan ramah pemula untuk memahami bagaimana himpunan data seperti ini disusun.
Apa Itu Tipe Data SQL?
Tipe data menggambarkan format data Anda: jenis nilai yang dapat ditampung kolom, bagaimana nilai tersebut disimpan secara internal, dan operasi apa yang masuk akal untuk dijalankan di atasnya.
Ini berarti pilihan tipe data Anda memengaruhi lebih dari sekadar desain tabel. Ia dapat memengaruhi kebutuhan penyimpanan, kinerja kueri, perilaku pengurutan, operasi matematika, dan bahkan bagaimana sistem yang berbeda menafsirkan nilai yang sama.
Berikut tabel sederhana yang menggunakan beberapa tipe sekaligus:
CREATETABLE employees (
id INT,
name VARCHAR(50),
start_date DATE,
active BOOLEAN,
salary DECIMAL(10,2));Didukung oleh
Setiap kolom dalam tabel ini mendefinisikan jenis data yang dapat ditampungnya.
Kolom id akan menyimpan bilangan bulat, memberi setiap karyawan pengenal unik.
Kolom name dapat menampung hingga 50 karakter teks, sehingga Anda dapat menyimpan nama pendek.
Kolom start_date diperuntukkan tanggal kalender.
Kolom active akan menyimpan nilai benar atau salah, memudahkan pelacakan karyawan yang saat ini aktif.
Terakhir, kolom salary akan menyimpan jumlah uang dengan presisi 10 digit, menyisakan dua digit setelah koma desimal untuk sen.
Bersama-sama, kolom-kolom ini membentuk tabel terstruktur yang menegakkan aturan tentang jenis nilai yang diizinkan di setiap bidang. Ini membuat data lebih dapat diprediksi dan lebih mudah digunakan.
Mari tambahkan beberapa data contoh dan lihat seperti apa tabel hasilnya, menggunakan PostgreSQL.
Sistem basis data yang berbeda mengikuti prinsip yang sama namun bervariasi dalam penamaan dan fiturnya. Misalnya, SQL Server menggunakan BIT alih-alih BOOLEAN, dan MySQL memperlakukan BOOLEAN sebagai bilangan bulat kecil.
Kategori Tipe Data SQL
Ada empat kategori utama tipe data: numerik, karakter, tanggal, dan khusus. Mari kita lihat masing-masing secara rinci.
Tipe data numerik
Tipe numerik menyimpan bilangan bulat atau desimal. Tipe numerik tertentu akan menentukan jangkauan, presisi, dan ukuran penyimpanan dari angka yang disimpan. Tipe data yang paling umum dalam kategori ini adalah:
bilangan bulat, seperti INT, SMALLINT, dan BIGINT, untuk bilangan bulat,
desimal, seperti DECIMAL(p, s) dan NUMERIC(p, s), untuk nilai desimal yang presisi,
dan float, seperti FLOAT dan DOUBLE, untuk nilai perkiraan yang dapat menimbulkan perbedaan pembulatan kecil
Mari kita buat tabel contoh untuk mendemonstrasikan berbagai tipe data numerik:
Seperti yang Anda lihat, kolom pertama dibatasi untuk bilangan bulat, yang kedua untuk desimal dengan dua digit setelah titik desimal, dan yang ketiga adalah bilangan desimal dengan jumlah digit tak tentu.
Sekilas, DECIMAL dan FLOAT mungkin terlihat sama. Namun ada perbedaan penting: DECIMAL menyimpan angka presisi dengan jumlah tempat desimal tertentu, sedangkan FLOAT menyimpan nilai perkiraan yang dapat sedikit bervariasi menurut sistem.
Penting untuk menggunakan desimal ketika presisi diperlukan dan hanya mengandalkan float jika kesalahan pembulatan kecil dapat diterima.
Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Numerik
INT, SMALLINT, BIGINT
Bilangan bulat dengan ukuran bervariasi
1, 42, 1000
Numerik
DECIMAL(p,s), NUMERIC(p,s)
Nilai desimal presisi dengan ketelitian tetap
19.99, 250.56
Numerik
FLOAT, DOUBLE
Nilai desimal perkiraan. Dapat menimbulkan perbedaan pembulatan kecil
3.1415, 2.71828
Tipe data karakter dan string
Tipe karakter menyimpan teks. Ada beberapa tipe berbeda yang berbeda dalam kinerja dan efisiensi penyimpanan.
CHAR(n) untuk himpunan karakter berukuran tetap. Ini berguna untuk data yang selalu memiliki ukuran sama, seperti kode negara bagian atau singkatan bandara.
VARCHAR(n) untuk himpunan karakter berukuran variabel. Ini berguna untuk nama, alamat email, dan teks yang dimasukkan pengguna lainnya.
TEXT dan tipe serupa digunakan untuk blok teks tak terstruktur yang besar, seperti artikel blog atau deskripsi produk.
Beberapa sistem, seperti SQL Server, bahkan mendukung tipe string Unicode, seperti NCHAR dan NVARCHAR, yang berguna ketika data Anda mencakup teks dalam berbagai sistem tulisan, seperti Latin, Tionghoa, atau Sirilik.
Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Karakter / String
CHAR(n)
Teks panjang tetap
'US', 'CA'
Karakter / String
VARCHAR(n)
Teks panjang variabel
'Alice Johnson', 'Bob Smith'
Karakter / String
TEXT
Blok teks tak terstruktur berukuran besar
'Preferred contact by email.', 'Requires invoice copy for each order.'
Karakter / String
NCHAR(n), NVARCHAR(n)
Teks Unicode panjang tetap atau variabel
'Å', 'É', 'München', 'São Paulo'
Mari lihat seperti apa ini dengan tabel contoh yang mendemonstrasikan berbagai tipe data string:
CREATETABLE customers (
id INT,
country_code CHAR(2),
name VARCHAR(100),
notes TEXT);INSERTINTO customers VALUES(1,'US','Alice Johnson','Preferred contact by email.'),(2,'CA','Bob Smith','Requires invoice copy for each order.');SELECT*FROM customers;Didukung oleh
Berikut seperti apa tabel ini pada akhirnya. Anda dapat melihat perbedaan panjang yang tersandi dalam setiap tipe data string.
id
country_code
name
notes
1
US
Alice Johnson
Preferred contact by email.
2
CA
Bob Smith
Requires invoice copy for each order.
Di sini, CHAR(2) menegakkan panjang yang konsisten, sementara VARCHAR dan TEXT memberikan lebih banyak fleksibilitas.
Tipe data tanggal dan waktu
Tipe data tanggal dan waktu memungkinkan penyimpanan dan pengkuerian informasi temporal secara akurat. Pemula mungkin berpikir mereka dapat menggunakan tipe data numerik atau string untuk menyandikan informasi jenis ini. Namun, hal itu dapat menyebabkan masalah saat analisis data di hilir. Menggunakan tipe data kalender khusus dapat membuat semuanya lebih mulus.
Tiga tipe yang paling umum digunakan adalah:
DATE, yang menyandikan tahun, bulan, dan hari,
TIME, yang menyimpan jam, menit, dan detik,
dan DATETIME atau TIMESTAMP, yang menyimpan gabungan tanggal dan waktu.
Basis data modern bahkan dapat mendukung detik pecahan atau tipe data yang sadar zona waktu, seperti TIMESTAMPTZ di PostgreSQL, yang menyimpan cap waktu dalam UTC dan secara otomatis mengonversinya ke zona waktu sesi Anda saat diambil.
Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Tanggal / Waktu
DATE
Tanggal kalender (tahun, bulan, hari)
'2025-11-26'
Tanggal / Waktu
TIME
Waktu dalam sehari (jam, menit, detik)
'09:30:00', '18:45:30'
Tanggal / Waktu
DATETIME, TIMESTAMP
Gabungan tanggal dan waktu
'2025-11-20 14:15:00', '2025-11-21 09:00:00'
Tanggal / Waktu
TIMESTAMPTZ
Gabungan tanggal dan waktu dengan zona waktu (PostgreSQL)
'2025-11-21 09:00:00+00'
Mari buat tabel sederhana untuk mendemonstrasikan tipe data temporal ini:
CREATETABLE events (
event_id INT,
event_date DATE,
start_time TIME,
created_at DATETIME);INSERTINTO events VALUES(1,'2025-11-26','09:30:00','2025-11-20 14:15:00'),(2,'2025-12-01','18:45:30','2025-11-21 09:00:00');SELECT*FROM events;Didukung oleh
Berikut seperti apa tabelnya:
event_id
event_date
start_time
created_at
1
2025-11-26
09:30:00
2025-11-20 14:15:00
2
2025-12-01
18:45:30
2025-11-21 09:00:00
Anda dapat melihat bagaimana memilih tipe tanggal atau cap waktu yang tepat dapat memengaruhi jenis data yang dapat Anda simpan.
Tipe data Boolean dan khusus lainnya
Tidak semua jenis data dapat masuk rapi ke salah satu kategori sebelumnya. Untuk itu, SQL menyertakan seperangkat tipe tujuan khusus untuk kasus penggunaan tertentu. Beberapa yang paling umum Anda lihat mencakup:
Nilai Boolean (BOOLEAN, BOOL, atau BIT, tergantung sistem) untuk mencatat benar atau salah,
Data biner (BLOB) untuk gambar, file, atau objek terserialisasi,
Teks besar (CLOB) untuk dokumen berukuran penuh,
JSON (di MySQL dan PostgreSQL) untuk data tanpa skema atau bertingkat
ARRAY (hanya di PostgreSQL) untuk daftar
UUID untuk pengenal unik yang tidak bergantung pada urutan numerik, seperti token sesi atau kode pelacakan global.
Tipe khusus memungkinkan Anda menyimpan data yang lebih kaya atau lebih fleksibel ketika tabel tradisional saja tidak menangkap strukturnya.
Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Khusus / Boolean / Lainnya
BOOLEAN, BOOL, BIT
Nilai benar atau salah
TRUE, FALSE
Khusus / Boolean / Lainnya
BLOB
Objek biner besar (gambar, file)
[binary image data]
Khusus / Boolean / Lainnya
CLOB
Dokumen teks berukuran besar
'Full contract text...'
Khusus / Boolean / Lainnya
JSON
Data terstruktur atau bertingkat
'{"name": "Alice"}'
Khusus / Boolean / Lainnya
ARRAY
Daftar nilai (hanya PostgreSQL)
[1,2,3]
Khusus / Boolean / Lainnya
UUID
Pengenal unik global
'550e8400-e29b-41d4-a716-446655440000'
Tipe Data SQL di Berbagai Sistem
Sistem manajemen basis data berbeda dalam detail bagaimana mereka menggunakan tipe data ini. Meskipun kategori besarnya tetap sama, nama dan perilaku persisnya bervariasi antar sistem.
Sistem yang berbeda merancang tipe datanya dengan prioritas masing-masing, itulah mengapa perilakunya berbeda. Beberapa perbedaan kecil, seperti kata kunci yang digunakan. Lainnya mengubah cara data berperilaku dalam praktik, seperti batas panjang teks, bagaimana boolean disimpan, atau apakah sistem mendukung format khusus.
MySQL menekankan kecepatan dan kesederhanaan, sehingga menggunakan pilihan yang praktis dan ringan seperti TINYINT (yang secara teknis disimpan sebagai angka) untuk nilai Boolean. Ia lebih mengutamakan kinerja dan kompatibilitas luas daripada semantik tipe yang ketat.
PostgreSQL bertujuan mematuhi standar dan mudah diperluas. Ini tercermin dari penggunaan tipe BOOLEAN sejati dan set opsi tipe data yang lebih kaya, seperti ARRAY dan JSONB untuk menyimpan data terstruktur atau bertingkat langsung dalam kolom.
SQL Server dibangun untuk kinerja yang dapat diprediksi di lingkungan perusahaan dan integrasi mendalam dengan ekosistem Microsoft. Inilah mengapa ia menawarkan tipe yang terdefinisi kuat seperti BIT untuk Boolean dan VARCHAR(MAX) untuk teks besar.
Tabel di bawah ini memberikan perbandingan berdampingan tentang bagaimana tiga sistem SQL utama mengimplementasikan konsep umum.
Konsep
MySQL
PostgreSQL
SQL Server
Numerik (bilangan bulat)
Menggunakan INT untuk bilangan bulat serbaguna
Menggunakan INTEGER untuk bilangan bulat
Menggunakan INT untuk bilangan bulat
Bilangan desimal / presisi tetap
Menggunakan DECIMAL(p, s) untuk nilai numerik presisi
Menggunakan NUMERIC(p, s) untuk penyimpanan presisi eksak
Menggunakan DECIMAL(p, s) untuk nilai numerik presisi
String teks panjang standar
Menggunakan VARCHAR(n) untuk teks panjang variabel
Menggunakan VARCHAR(n) untuk teks panjang variabel
Menggunakan VARCHAR(n) untuk teks panjang variabel
Penyimpanan teks besar
Menggunakan TEXT untuk bidang teks panjang
Menggunakan TEXT untuk bidang teks panjang
Menggunakan VARCHAR(MAX) untuk bidang teks panjang
Nilai Boolean
Menyimpan boolean sebagai TINYINT(1) (0 atau 1)
Menggunakan nilai BOOLEAN native (true/false)
Menggunakan BIT (0 atau 1) untuk data mirip boolean
Primary key auto-increment
Menggunakan kata kunci AUTO_INCREMENT
Menggunakan SERIAL atau IDENTITY untuk bilangan bulat yang dibuat otomatis
Menggunakan IDENTITY untuk bilangan bulat yang dibuat otomatis
String karakter sangat besar
Menggunakan LONGTEXT untuk teks yang sangat besar
Memungkinkan VARCHAR yang sangat besar tanpa batas praktis
Menggunakan VARCHAR(MAX) untuk teks besar atau tak berbatas
Penyimpanan JSON
Mendukung JSON untuk data JSON terstruktur
Mendukung JSON (teks) dan JSONB (dioptimalkan biner)
Mendukung JSON (disimpan sebagai teks)
Penyimpanan array
Tidak mendukung tipe array
Mendukung ARRAY untuk menyimpan daftar dalam satu kolom
Tidak mendukung tipe array
Apa artinya dalam praktik
Tujuan desain mendasar setiap sistem dan jenis beban kerja yang mereka optimalkan untuk didukung secara langsung memengaruhi cara mereka dibangun untuk beroperasi.
Perbedaan ini berarti bahwa meskipun banyak keterampilan SQL umum mudah ditransfer antar sistem, detail seperti ukuran teks maksimum, kata kunci auto-increment, atau dukungan untuk struktur kompleks dapat bervariasi.
Jika Anda hanya menggunakan satu sistem, mudah untuk menjadi ahli dalam detail spesifik sistem manajemen basis data Anda. Namun, berganti pekerjaan atau departemen mungkin mengharuskan Anda beralih ke sistem manajemen basis data berbeda dengan aturan berbeda.
Untuk alasan ini, saat mempelajari SQL, akan membantu untuk mengenali konsep bersama di balik tipe data daripada hanya mengandalkan detail satu sistem.
Memilih Tipe Data yang Tepat
Memilih tipe data terkadang sangat mudah. Namun kadang perlu sedikit pertimbangan. Pilihan yang baik membuat data Anda lebih mudah diquery, menjaga penyimpanan tetap efisien, dan membantu menghindari bug di hilir. Kategori besarnya kemungkinan akan ditentukan oleh jenis data yang Anda miliki.
Data numerik
Misalnya, anggaplah Anda menyimpan data pengukuran. Jelas, Anda akan menginginkan tipe numerik, bukan kalender atau string. Namun seberapa presisi pengukuran yang ingin Anda simpan? Apakah bilangan bulat cukup, atau Anda memerlukan desimal? Apakah Anda menginginkan jumlah digit signifikan yang tetap?
Kemudian pertimbangkan penyimpanan dan efisiensi. Memilih tipe bilangan bulat sekecil mungkin yang dapat menampung data Anda dengan aman akan membantu menjaga tabel tetap efisien. Tipe yang lebih kecil menggunakan lebih sedikit penyimpanan dan dapat meningkatkan kinerja, terutama pada tabel besar. Biasanya Anda akan memilih tipe yang cukup besar untuk jangkauan yang diharapkan tanpa jauh melampaui apa yang realistis dibutuhkan.
Saat bilangan bulat tidak memadai, Anda memiliki pilihan DECIMAL atau FLOAT. Tipe floating point memperkirakan nilai alih-alih menyimpannya secara eksak, yang dapat menyebabkan kesalahan pembulatan pada pekerjaan finansial, ilmiah, atau pekerjaan lain yang sensitif terhadap akurasi.
DECIMAL dan NUMERIC menyimpan nilai eksak, sehingga lebih baik untuk apa pun yang melibatkan harga atau rasio. Namun, DECIMAL cenderung memiliki kebutuhan penyimpanan lebih besar daripada FLOAT, bergantung pada berapa banyak tempat desimal yang Anda simpan.
Data karakter dan string
Untuk data string, pikirkan seberapa besar Anda menginginkan setiap masukan.
Biasanya, Anda ingin menentukan ukuran bidang VARCHAR secara realistis alih-alih default ke panjang maksimum. Batas yang terlalu besar biasanya tidak meningkatkan fleksibilitas, tetapi dapat menyesatkan pengembang di masa depan tentang ukuran data yang diharapkan.
Pikirkan masukan yang Anda harapkan, baik itu nama, email, atau judul produk, dan sesuaikan ukuran kolom.
Data tanggal dan waktu
Untuk data kalender, bantu untuk presisi tentang apa yang Anda simpan.
Jika Anda hanya memerlukan tanggal atau hanya waktu, biasanya lebih baik menggunakan DATE atau TIME daripada DATETIME. Pilihan ini membuat maksud Anda jelas dan mengurangi kemungkinan kekeliruan di kemudian hari. Ini juga memberi basis data sedikit ruang untuk mengoptimalkan kueri khusus tanggal atau waktu.
Data Boolean
Sebisa mungkin, gunakan tipe yang sesuai domain seperti BOOLEAN alih-alih solusi alternatif seperti bilangan bulat atau string. Tipe native menyertakan validasi bawaan, semantik yang lebih jelas, dan dukungan dari fungsi basis data yang mengharapkan jenis data tertentu.
Di bawah ini ringkasan tujuan penyimpanan data umum dan tipe data SQL yang disarankan untuk mengatasinya.
Tujuan
Tipe data yang disarankan
Alasan
Menyimpan nilai numerik eksak (uang, pengukuran)
DECIMAL atau NUMERIC
Menyimpan nilai presisi tanpa isu pembulatan floating-point
Menyimpan teks pendek atau menengah
VARCHAR(n)
Penyimpanan efisien dengan ukuran yang dapat diprediksi dan panjang fleksibel
Menyimpan teks panjang dan tak terstruktur
TEXT atau CLOB
Dirancang untuk blok teks seperti deskripsi atau dokumen
Menyimpan informasi hanya tanggal atau hanya waktu
DATE atau TIME
Menghindari kompleksitas yang tidak perlu dan mencerminkan makna data yang sebenarnya
Menyimpan nilai fleksibel mirip dokumen
JSON atau JSONB
Berguna untuk struktur bertingkat atau yang berkembang yang tidak cocok dengan kolom tetap
Bagi pembaca yang ingin menyegarkan kembali materi pengelompokan dan pemfilteran data,kursus Intermediate SQL membahas keterampilan inti tersebut.
Jebakan Umum dan Praktik Terbaik
Bahkan skema basis data sederhana pun dapat mengalami masalah jika tipe data tidak dipilih dengan cermat.
Truncation
Misalnya, jika Anda memiliki kolom untuk nama yang hanya mengizinkan 5 karakter, Anda mungkin berakhir dengan “Micha” alih-alih “Michael”. Ini adalah masalah umum yang dikenal sebagai truncation.
Biasanya muncul di bidang seperti nama, alamat, atau komentar, di mana variasi dunia nyata dapat melebihi batas yang terlalu optimistis. Salah satu cara menghindarinya adalah menentukan ukuran bidang teks berdasarkan contoh nyata atau cenderung sedikit lebih panjang.
Kesalahan pembulatan
Masalah umum lainnya adalah pembulatan tak terduga saat nilai floating-point digunakan untuk uang atau data yang sensitif terhadap presisi. Karena FLOAT menyimpan nilai perkiraan, ketidaksesuaian kecil dapat terakumulasi dan memengaruhi laporan, ringkasan, atau perhitungan.
Anda dapat mencegahnya dengan memilih DECIMAL untuk apa pun yang melibatkan mata uang atau nilai desimal eksak. Ini akan memastikan basis data menjaga angka tetap stabil.
Ketidakcocokan tipe
Ketidakcocokan tipe juga dapat menyebabkan kueri lambat, terutama dalam join atau perbandingan.
Ketika satu kolom disimpan sebagai string dan kolom lain sebagai bilangan bulat (atau ketika setiap tabel menggunakan tipe yang sedikit berbeda), dan Anda mencoba menggabungkannya, basis data mungkin harus mengonversi nilai secara langsung. Ini dapat menyebabkan kesalahan dan menambah beban yang tidak perlu.
Menjaga kolom terkait selaras dalam tipe menghindari konversi tersembunyi ini dan membantu kueri berjalan lebih mulus.
Pemformatan tanggal
Tanggal kalender memiliki banyak masalah tersendiri.
Ketidakkonsistenan pemformatan tanggal adalah sumber kebingungan utama saat sistem mencampur konvensi lokal atau ketika pengembang menyimpan tanggal sebagai string alih-alih menggunakan tipe tanggal yang tepat. Ketidakkonsistenan ini dapat menyebabkan kueri berperilaku tidak semestinya atau diam-diam mengembalikan hasil yang salah.
Perbaikan yang lugas adalah menggunakan tipe tanggal yang sebenarnya dan berpegang pada format yang konsisten dan tidak ambigu saat bekerja dengan tanggal dalam bentuk teks. Saya sangat merekomendasikan kursus Time Series Analysis in SQL Server untuk membantu menghindari masalah kalender paling umum di basis data Anda.
Praktik terbaik
Berikut beberapa praktik terbaik agar basis data Anda berjalan mulus:
Isi tabel dengan data sampel lebih awal dalam proses desain untuk mengungkap kelemahan dalam pilihan ukuran atau tipe.
Dokumentasikan tujuan dan jangkauan yang diharapkan dari setiap kolom agar perubahan di masa depan tidak menimbulkan ketidakcocokan.
Hindari menggunakan tipe generik saat tipe yang lebih spesifik dapat meningkatkan kejelasan.
Kesimpulan
Tipe data mendefinisikan bagaimana basis data Anda “memahami” nilai yang Anda simpan. Tipe data memengaruhi segala hal mulai dari penyimpanan hingga kinerja hingga kejelasan. Mempelajari cara kerjanya membuat basis data Anda lebih andal dan dapat diprediksi.
Tipe data dalam SQL mendefinisikan jenis data yang dapat disimpan kolom dan bagaimana data tersebut berperilaku saat diquery atau diproses. Tipe data memengaruhi penyimpanan, validasi, pengurutan, perbandingan, dan operasi matematis.
FAQ Tipe Data SQL
Apa itu tipe data dalam SQL?⌄
Tipe data dalam SQL adalah seperangkat aturan yang memberi tahu SQL jenis informasi apa yang diharapkan dalam kolom basis data Anda. Pada dasarnya, ini adalah cara sistem Anda “memahami” data Anda.
Bagaimana cara menetapkan kolom menjadi tipe data tertentu di SQL?⌄
Saat Anda mendefinisikan sebuah kolom di SQL, Anda akan menetapkan tipe data tepat setelah memberikan nama kolom. Bentuknya seperti ini: name DATATYPE. Anda juga dapat menggunakan perintah ALTER COLUMN untuk memperbarui tipe data pada kolom yang sudah Anda definisikan.
Mengapa saya perlu memilih tipe data yang tepat?⌄
Memilih tipe data terbaik untuk data Anda akan memperjelas jenis data yang Anda miliki, memastikan penyimpanan dan penggunaan yang tepat, serta mencegah bug di hilir dalam kode Anda.
Apa perbedaan antara DECIMAL dan FLOAT?⌄
DECIMAL adalah tipe data numerik presisi yang menyimpan angka dengan jumlah tempat desimal tetap. Sementara itu, FLOAT adalah tipe data yang menyimpan perkiraan dari angka tersebut.
Apakah semua sistem manajemen basis data menggunakan tipe data yang sama?⌄
Ya dan tidak. Setiap sistem manajemen basis data memiliki tipe data serupa untuk tipe data numerik, karakter, dan kalender. Namun, mereka berbeda dalam nama spesifiknya, cara penggunaannya di balik layar, dan tipe data khusus yang mereka dukung.
Saya seorang PhD dengan pengalaman 13 tahun bekerja dengan data di lingkungan riset biologi. Saya membuat perangkat lunak dalam beberapa bahasa pemrograman termasuk Python, MATLAB, dan R. Saya bersemangat membagikan kecintaan saya terhadap pembelajaran kepada dunia.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai dasar-dasar SQL yang diperlukan untuk bisnis, pelajari cara menulis kueri SQL, dan mulailah menganalisis data Anda menggunakan bahasa yang kuat ini.
Saat pertama kali bekerja dengan SQL, mudah untuk menganggap tipe data sebagai label sederhana. Satu kolom menyimpan angka, teks, tanggal, atau tipe data khusus. Namun, tipe data lebih dari sekadar label. Ini adalah seperangkat aturan yang mendefinisikan apa itu sebuah nilai di mata basis data.
Dalam praktiknya, tipe data membentuk cara SQL “memahami” informasi di basis data Anda. Ini adalah seperangkat instruksi yang memberi SQL konteks yang dibutuhkan untuk membaca, membandingkan, dan memproses data Anda secara akurat.
Dalam tutorial ini, kita akan melihat kategori utama tipe data SQL dan bagaimana perilakunya di berbagai sistem manajemen basis data. Saya mendorong Anda untuk mengikuti contoh-contohnya sepanjang materi.
Jika Anda belum banyak bekerja dengan tabel basis data sebelumnya, kursus SQL Fundamentals kami memberikan dasar yang jelas dan ramah pemula untuk memahami bagaimana himpunan data seperti ini disusun.
Apa Itu Tipe Data SQL?
Tipe data menggambarkan format data Anda: jenis nilai yang dapat ditampung kolom, bagaimana nilai tersebut disimpan secara internal, dan operasi apa yang masuk akal untuk dijalankan di atasnya.
Ini berarti pilihan tipe data Anda memengaruhi lebih dari sekadar desain tabel. Ia dapat memengaruhi kebutuhan penyimpanan, kinerja kueri, perilaku pengurutan, operasi matematika, dan bahkan bagaimana sistem yang berbeda menafsirkan nilai yang sama.
Berikut tabel sederhana yang menggunakan beberapa tipe sekaligus:
Setiap kolom dalam tabel ini mendefinisikan jenis data yang dapat ditampungnya.
Kolom
idakan menyimpan bilangan bulat, memberi setiap karyawan pengenal unik.Kolom
namedapat menampung hingga 50 karakter teks, sehingga Anda dapat menyimpan nama pendek.Kolom
start_datediperuntukkan tanggal kalender.Kolom
activeakan menyimpan nilai benar atau salah, memudahkan pelacakan karyawan yang saat ini aktif.Terakhir, kolom
salaryakan menyimpan jumlah uang dengan presisi 10 digit, menyisakan dua digit setelah koma desimal untuk sen.Bersama-sama, kolom-kolom ini membentuk tabel terstruktur yang menegakkan aturan tentang jenis nilai yang diizinkan di setiap bidang. Ini membuat data lebih dapat diprediksi dan lebih mudah digunakan.
Mari tambahkan beberapa data contoh dan lihat seperti apa tabel hasilnya, menggunakan PostgreSQL.
id
name
start_date
active
salary
1
Alice Johnson
2025-01-15
TRUE
55000.00
2
Bob Smith
2024-06-01
FALSE
62000.50
Sistem basis data yang berbeda mengikuti prinsip yang sama namun bervariasi dalam penamaan dan fiturnya. Misalnya, SQL Server menggunakan
BITalih-alihBOOLEAN, dan MySQL memperlakukanBOOLEANsebagai bilangan bulat kecil.Kategori Tipe Data SQL
Ada empat kategori utama tipe data: numerik, karakter, tanggal, dan khusus. Mari kita lihat masing-masing secara rinci.
Tipe data numerik
Tipe numerik menyimpan bilangan bulat atau desimal. Tipe numerik tertentu akan menentukan jangkauan, presisi, dan ukuran penyimpanan dari angka yang disimpan. Tipe data yang paling umum dalam kategori ini adalah:
bilangan bulat, seperti
INT,SMALLINT, danBIGINT, untuk bilangan bulat,desimal, seperti
DECIMAL(p, s)danNUMERIC(p, s), untuk nilai desimal yang presisi,dan float, seperti
FLOATdanDOUBLE, untuk nilai perkiraan yang dapat menimbulkan perbedaan pembulatan kecilMari kita buat tabel contoh untuk mendemonstrasikan berbagai tipe data numerik:
Berikut seperti apa tabel keluarannya:
product_id
price
measurement
1
19.99
3.1415
2
250.56
2.71828
Seperti yang Anda lihat, kolom pertama dibatasi untuk bilangan bulat, yang kedua untuk desimal dengan dua digit setelah titik desimal, dan yang ketiga adalah bilangan desimal dengan jumlah digit tak tentu.
Sekilas,
DECIMALdanFLOATmungkin terlihat sama. Namun ada perbedaan penting:DECIMALmenyimpan angka presisi dengan jumlah tempat desimal tertentu, sedangkanFLOATmenyimpan nilai perkiraan yang dapat sedikit bervariasi menurut sistem.Penting untuk menggunakan desimal ketika presisi diperlukan dan hanya mengandalkan float jika kesalahan pembulatan kecil dapat diterima.
Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Numerik
INT,SMALLINT,BIGINTBilangan bulat dengan ukuran bervariasi
1, 42, 1000
Numerik
DECIMAL(p,s),NUMERIC(p,s)Nilai desimal presisi dengan ketelitian tetap
19.99, 250.56
Numerik
FLOAT,DOUBLENilai desimal perkiraan. Dapat menimbulkan perbedaan pembulatan kecil
3.1415, 2.71828
Tipe data karakter dan string
Tipe karakter menyimpan teks. Ada beberapa tipe berbeda yang berbeda dalam kinerja dan efisiensi penyimpanan.
CHAR(n)untuk himpunan karakter berukuran tetap. Ini berguna untuk data yang selalu memiliki ukuran sama, seperti kode negara bagian atau singkatan bandara.VARCHAR(n)untuk himpunan karakter berukuran variabel. Ini berguna untuk nama, alamat email, dan teks yang dimasukkan pengguna lainnya.TEXTdan tipe serupa digunakan untuk blok teks tak terstruktur yang besar, seperti artikel blog atau deskripsi produk.Beberapa sistem, seperti SQL Server, bahkan mendukung tipe string Unicode, seperti
NCHARdanNVARCHAR, yang berguna ketika data Anda mencakup teks dalam berbagai sistem tulisan, seperti Latin, Tionghoa, atau Sirilik.Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Karakter / String
CHAR(n)Teks panjang tetap
'US', 'CA'
Karakter / String
VARCHAR(n)Teks panjang variabel
'Alice Johnson', 'Bob Smith'
Karakter / String
TEXTBlok teks tak terstruktur berukuran besar
'Preferred contact by email.', 'Requires invoice copy for each order.'
Karakter / String
NCHAR(n),NVARCHAR(n)Teks Unicode panjang tetap atau variabel
'Å', 'É', 'München', 'São Paulo'
Mari lihat seperti apa ini dengan tabel contoh yang mendemonstrasikan berbagai tipe data string:
Berikut seperti apa tabel ini pada akhirnya. Anda dapat melihat perbedaan panjang yang tersandi dalam setiap tipe data string.
id
country_code
name
notes
1
US
Alice Johnson
Preferred contact by email.
2
CA
Bob Smith
Requires invoice copy for each order.
Di sini,
CHAR(2)menegakkan panjang yang konsisten, sementaraVARCHARdanTEXTmemberikan lebih banyak fleksibilitas.Tipe data tanggal dan waktu
Tipe data tanggal dan waktu memungkinkan penyimpanan dan pengkuerian informasi temporal secara akurat. Pemula mungkin berpikir mereka dapat menggunakan tipe data numerik atau string untuk menyandikan informasi jenis ini. Namun, hal itu dapat menyebabkan masalah saat analisis data di hilir. Menggunakan tipe data kalender khusus dapat membuat semuanya lebih mulus.
Tiga tipe yang paling umum digunakan adalah:
DATE, yang menyandikan tahun, bulan, dan hari,TIME, yang menyimpan jam, menit, dan detik,dan
DATETIMEatauTIMESTAMP, yang menyimpan gabungan tanggal dan waktu.Basis data modern bahkan dapat mendukung detik pecahan atau tipe data yang sadar zona waktu, seperti
TIMESTAMPTZdi PostgreSQL, yang menyimpan cap waktu dalam UTC dan secara otomatis mengonversinya ke zona waktu sesi Anda saat diambil.Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Tanggal / Waktu
DATETanggal kalender (tahun, bulan, hari)
'2025-11-26'
Tanggal / Waktu
TIMEWaktu dalam sehari (jam, menit, detik)
'09:30:00', '18:45:30'
Tanggal / Waktu
DATETIME,TIMESTAMPGabungan tanggal dan waktu
'2025-11-20 14:15:00', '2025-11-21 09:00:00'
Tanggal / Waktu
TIMESTAMPTZGabungan tanggal dan waktu dengan zona waktu (PostgreSQL)
'2025-11-21 09:00:00+00'
Mari buat tabel sederhana untuk mendemonstrasikan tipe data temporal ini:
Berikut seperti apa tabelnya:
event_id
event_date
start_time
created_at
1
2025-11-26
09:30:00
2025-11-20 14:15:00
2
2025-12-01
18:45:30
2025-11-21 09:00:00
Anda dapat melihat bagaimana memilih tipe tanggal atau cap waktu yang tepat dapat memengaruhi jenis data yang dapat Anda simpan.
Tipe data Boolean dan khusus lainnya
Tidak semua jenis data dapat masuk rapi ke salah satu kategori sebelumnya. Untuk itu, SQL menyertakan seperangkat tipe tujuan khusus untuk kasus penggunaan tertentu. Beberapa yang paling umum Anda lihat mencakup:
Nilai Boolean (
BOOLEAN,BOOL, atauBIT, tergantung sistem) untuk mencatat benar atau salah,Data biner (
BLOB) untuk gambar, file, atau objek terserialisasi,Teks besar (
CLOB) untuk dokumen berukuran penuh,JSON(di MySQL dan PostgreSQL) untuk data tanpa skema atau bertingkatARRAY(hanya di PostgreSQL) untuk daftarUUIDuntuk pengenal unik yang tidak bergantung pada urutan numerik, seperti token sesi atau kode pelacakan global.Tipe khusus memungkinkan Anda menyimpan data yang lebih kaya atau lebih fleksibel ketika tabel tradisional saja tidak menangkap strukturnya.
Kategori
Tipe data
Tujuan / Apa yang disimpan
Contoh nilai
Khusus / Boolean / Lainnya
BOOLEAN,BOOL,BITNilai benar atau salah
TRUE, FALSE
Khusus / Boolean / Lainnya
BLOBObjek biner besar (gambar, file)
[binary image data]
Khusus / Boolean / Lainnya
CLOBDokumen teks berukuran besar
'Full contract text...'
Khusus / Boolean / Lainnya
JSONData terstruktur atau bertingkat
'{"name": "Alice"}'
Khusus / Boolean / Lainnya
ARRAYDaftar nilai (hanya PostgreSQL)
[1,2,3]
Khusus / Boolean / Lainnya
UUIDPengenal unik global
'550e8400-e29b-41d4-a716-446655440000'
Tipe Data SQL di Berbagai Sistem
Sistem manajemen basis data berbeda dalam detail bagaimana mereka menggunakan tipe data ini. Meskipun kategori besarnya tetap sama, nama dan perilaku persisnya bervariasi antar sistem.
Sistem yang berbeda merancang tipe datanya dengan prioritas masing-masing, itulah mengapa perilakunya berbeda. Beberapa perbedaan kecil, seperti kata kunci yang digunakan. Lainnya mengubah cara data berperilaku dalam praktik, seperti batas panjang teks, bagaimana boolean disimpan, atau apakah sistem mendukung format khusus.
MySQL menekankan kecepatan dan kesederhanaan, sehingga menggunakan pilihan yang praktis dan ringan seperti
TINYINT(yang secara teknis disimpan sebagai angka) untuk nilai Boolean. Ia lebih mengutamakan kinerja dan kompatibilitas luas daripada semantik tipe yang ketat.PostgreSQL bertujuan mematuhi standar dan mudah diperluas. Ini tercermin dari penggunaan tipe
BOOLEANsejati dan set opsi tipe data yang lebih kaya, sepertiARRAYdanJSONBuntuk menyimpan data terstruktur atau bertingkat langsung dalam kolom.SQL Server dibangun untuk kinerja yang dapat diprediksi di lingkungan perusahaan dan integrasi mendalam dengan ekosistem Microsoft. Inilah mengapa ia menawarkan tipe yang terdefinisi kuat seperti
BITuntuk Boolean danVARCHAR(MAX)untuk teks besar.Tabel di bawah ini memberikan perbandingan berdampingan tentang bagaimana tiga sistem SQL utama mengimplementasikan konsep umum.
Konsep
MySQL
PostgreSQL
SQL Server
Numerik (bilangan bulat)
Menggunakan
INTuntuk bilangan bulat serbagunaMenggunakan
INTEGERuntuk bilangan bulatMenggunakan
INTuntuk bilangan bulatBilangan desimal / presisi tetap
Menggunakan
DECIMAL(p, s)untuk nilai numerik presisiMenggunakan
NUMERIC(p, s)untuk penyimpanan presisi eksakMenggunakan
DECIMAL(p, s)untuk nilai numerik presisiString teks panjang standar
Menggunakan
VARCHAR(n)untuk teks panjang variabelMenggunakan
VARCHAR(n)untuk teks panjang variabelMenggunakan
VARCHAR(n)untuk teks panjang variabelPenyimpanan teks besar
Menggunakan
TEXTuntuk bidang teks panjangMenggunakan
TEXTuntuk bidang teks panjangMenggunakan
VARCHAR(MAX)untuk bidang teks panjangNilai Boolean
Menyimpan boolean sebagai
TINYINT(1)(0 atau 1)Menggunakan nilai
BOOLEANnative (true/false)Menggunakan
BIT(0 atau 1) untuk data mirip booleanPrimary key auto-increment
Menggunakan kata kunci
AUTO_INCREMENTMenggunakan
SERIALatauIDENTITYuntuk bilangan bulat yang dibuat otomatisMenggunakan
IDENTITYuntuk bilangan bulat yang dibuat otomatisString karakter sangat besar
Menggunakan
LONGTEXTuntuk teks yang sangat besarMemungkinkan
VARCHARyang sangat besar tanpa batas praktisMenggunakan
VARCHAR(MAX)untuk teks besar atau tak berbatasPenyimpanan JSON
Mendukung
JSONuntuk data JSON terstrukturMendukung
JSON(teks) danJSONB(dioptimalkan biner)Mendukung
JSON(disimpan sebagai teks)Penyimpanan array
Tidak mendukung tipe array
Mendukung
ARRAYuntuk menyimpan daftar dalam satu kolomTidak mendukung tipe array
Apa artinya dalam praktik
Tujuan desain mendasar setiap sistem dan jenis beban kerja yang mereka optimalkan untuk didukung secara langsung memengaruhi cara mereka dibangun untuk beroperasi.
Perbedaan ini berarti bahwa meskipun banyak keterampilan SQL umum mudah ditransfer antar sistem, detail seperti ukuran teks maksimum, kata kunci auto-increment, atau dukungan untuk struktur kompleks dapat bervariasi.
Jika Anda hanya menggunakan satu sistem, mudah untuk menjadi ahli dalam detail spesifik sistem manajemen basis data Anda. Namun, berganti pekerjaan atau departemen mungkin mengharuskan Anda beralih ke sistem manajemen basis data berbeda dengan aturan berbeda.
Untuk alasan ini, saat mempelajari SQL, akan membantu untuk mengenali konsep bersama di balik tipe data daripada hanya mengandalkan detail satu sistem.
Memilih Tipe Data yang Tepat
Memilih tipe data terkadang sangat mudah. Namun kadang perlu sedikit pertimbangan. Pilihan yang baik membuat data Anda lebih mudah diquery, menjaga penyimpanan tetap efisien, dan membantu menghindari bug di hilir. Kategori besarnya kemungkinan akan ditentukan oleh jenis data yang Anda miliki.
Data numerik
Misalnya, anggaplah Anda menyimpan data pengukuran. Jelas, Anda akan menginginkan tipe numerik, bukan kalender atau string. Namun seberapa presisi pengukuran yang ingin Anda simpan? Apakah bilangan bulat cukup, atau Anda memerlukan desimal? Apakah Anda menginginkan jumlah digit signifikan yang tetap?
Kemudian pertimbangkan penyimpanan dan efisiensi. Memilih tipe bilangan bulat sekecil mungkin yang dapat menampung data Anda dengan aman akan membantu menjaga tabel tetap efisien. Tipe yang lebih kecil menggunakan lebih sedikit penyimpanan dan dapat meningkatkan kinerja, terutama pada tabel besar. Biasanya Anda akan memilih tipe yang cukup besar untuk jangkauan yang diharapkan tanpa jauh melampaui apa yang realistis dibutuhkan.
Saat bilangan bulat tidak memadai, Anda memiliki pilihan
DECIMALatauFLOAT. Tipe floating point memperkirakan nilai alih-alih menyimpannya secara eksak, yang dapat menyebabkan kesalahan pembulatan pada pekerjaan finansial, ilmiah, atau pekerjaan lain yang sensitif terhadap akurasi.DECIMALdanNUMERICmenyimpan nilai eksak, sehingga lebih baik untuk apa pun yang melibatkan harga atau rasio. Namun,DECIMALcenderung memiliki kebutuhan penyimpanan lebih besar daripadaFLOAT, bergantung pada berapa banyak tempat desimal yang Anda simpan.Data karakter dan string
Untuk data string, pikirkan seberapa besar Anda menginginkan setiap masukan.
Biasanya, Anda ingin menentukan ukuran bidang
VARCHARsecara realistis alih-alih default ke panjang maksimum. Batas yang terlalu besar biasanya tidak meningkatkan fleksibilitas, tetapi dapat menyesatkan pengembang di masa depan tentang ukuran data yang diharapkan.Pikirkan masukan yang Anda harapkan, baik itu nama, email, atau judul produk, dan sesuaikan ukuran kolom.
Data tanggal dan waktu
Untuk data kalender, bantu untuk presisi tentang apa yang Anda simpan.
Jika Anda hanya memerlukan tanggal atau hanya waktu, biasanya lebih baik menggunakan
DATEatauTIMEdaripadaDATETIME. Pilihan ini membuat maksud Anda jelas dan mengurangi kemungkinan kekeliruan di kemudian hari. Ini juga memberi basis data sedikit ruang untuk mengoptimalkan kueri khusus tanggal atau waktu.Data Boolean
Sebisa mungkin, gunakan tipe yang sesuai domain seperti
BOOLEANalih-alih solusi alternatif seperti bilangan bulat atau string. Tipe native menyertakan validasi bawaan, semantik yang lebih jelas, dan dukungan dari fungsi basis data yang mengharapkan jenis data tertentu.Di bawah ini ringkasan tujuan penyimpanan data umum dan tipe data SQL yang disarankan untuk mengatasinya.
Tujuan
Tipe data yang disarankan
Alasan
Menyimpan nilai numerik eksak (uang, pengukuran)
DECIMALatauNUMERICMenyimpan nilai presisi tanpa isu pembulatan floating-point
Menyimpan teks pendek atau menengah
VARCHAR(n)Penyimpanan efisien dengan ukuran yang dapat diprediksi dan panjang fleksibel
Menyimpan teks panjang dan tak terstruktur
TEXTatauCLOBDirancang untuk blok teks seperti deskripsi atau dokumen
Menyimpan informasi hanya tanggal atau hanya waktu
DATEatauTIMEMenghindari kompleksitas yang tidak perlu dan mencerminkan makna data yang sebenarnya
Menyimpan nilai fleksibel mirip dokumen
JSONatauJSONBBerguna untuk struktur bertingkat atau yang berkembang yang tidak cocok dengan kolom tetap
Bagi pembaca yang ingin menyegarkan kembali materi pengelompokan dan pemfilteran data, kursus Intermediate SQL membahas keterampilan inti tersebut.
Jebakan Umum dan Praktik Terbaik
Bahkan skema basis data sederhana pun dapat mengalami masalah jika tipe data tidak dipilih dengan cermat.
Truncation
Misalnya, jika Anda memiliki kolom untuk nama yang hanya mengizinkan 5 karakter, Anda mungkin berakhir dengan “Micha” alih-alih “Michael”. Ini adalah masalah umum yang dikenal sebagai truncation.
Biasanya muncul di bidang seperti nama, alamat, atau komentar, di mana variasi dunia nyata dapat melebihi batas yang terlalu optimistis. Salah satu cara menghindarinya adalah menentukan ukuran bidang teks berdasarkan contoh nyata atau cenderung sedikit lebih panjang.
Kesalahan pembulatan
Masalah umum lainnya adalah pembulatan tak terduga saat nilai floating-point digunakan untuk uang atau data yang sensitif terhadap presisi. Karena
FLOATmenyimpan nilai perkiraan, ketidaksesuaian kecil dapat terakumulasi dan memengaruhi laporan, ringkasan, atau perhitungan.Anda dapat mencegahnya dengan memilih
DECIMALuntuk apa pun yang melibatkan mata uang atau nilai desimal eksak. Ini akan memastikan basis data menjaga angka tetap stabil.Ketidakcocokan tipe
Ketidakcocokan tipe juga dapat menyebabkan kueri lambat, terutama dalam join atau perbandingan.
Ketika satu kolom disimpan sebagai string dan kolom lain sebagai bilangan bulat (atau ketika setiap tabel menggunakan tipe yang sedikit berbeda), dan Anda mencoba menggabungkannya, basis data mungkin harus mengonversi nilai secara langsung. Ini dapat menyebabkan kesalahan dan menambah beban yang tidak perlu.
Menjaga kolom terkait selaras dalam tipe menghindari konversi tersembunyi ini dan membantu kueri berjalan lebih mulus.
Pemformatan tanggal
Tanggal kalender memiliki banyak masalah tersendiri.
Ketidakkonsistenan pemformatan tanggal adalah sumber kebingungan utama saat sistem mencampur konvensi lokal atau ketika pengembang menyimpan tanggal sebagai string alih-alih menggunakan tipe tanggal yang tepat. Ketidakkonsistenan ini dapat menyebabkan kueri berperilaku tidak semestinya atau diam-diam mengembalikan hasil yang salah.
Perbaikan yang lugas adalah menggunakan tipe tanggal yang sebenarnya dan berpegang pada format yang konsisten dan tidak ambigu saat bekerja dengan tanggal dalam bentuk teks. Saya sangat merekomendasikan kursus Time Series Analysis in SQL Server untuk membantu menghindari masalah kalender paling umum di basis data Anda.
Praktik terbaik
Berikut beberapa praktik terbaik agar basis data Anda berjalan mulus:
Isi tabel dengan data sampel lebih awal dalam proses desain untuk mengungkap kelemahan dalam pilihan ukuran atau tipe.
Dokumentasikan tujuan dan jangkauan yang diharapkan dari setiap kolom agar perubahan di masa depan tidak menimbulkan ketidakcocokan.
Hindari menggunakan tipe generik saat tipe yang lebih spesifik dapat meningkatkan kejelasan.
Kesimpulan
Tipe data mendefinisikan bagaimana basis data Anda “memahami” nilai yang Anda simpan. Tipe data memengaruhi segala hal mulai dari penyimpanan hingga kinerja hingga kejelasan. Mempelajari cara kerjanya membuat basis data Anda lebih andal dan dapat diprediksi.
Untuk bacaan lebih lanjut tentang topik ini, lihat Tutorial Ikhtisar SQL Database dan SQLite Data Types: Tinjauan Kelas Penyimpanan. Saya juga merekomendasikan kursus PostgreSQL Summary Stats and Window Functions, yang menunjukkan cara menghitung total berjalan dan statistik terurut.
Tipe data dalam SQL mendefinisikan jenis data yang dapat disimpan kolom dan bagaimana data tersebut berperilaku saat diquery atau diproses. Tipe data memengaruhi penyimpanan, validasi, pengurutan, perbandingan, dan operasi matematis.