MariaDB - Panduan Cepat

Aplikasi database ada terpisah dari aplikasi utama dan menyimpan koleksi data. Setiap database menggunakan satu atau beberapa API untuk pembuatan, akses, pengelolaan, pencarian, dan replikasi data yang dikandungnya.

Database juga menggunakan sumber data non-relasional seperti objek atau file. Namun, basis data membuktikan opsi terbaik untuk kumpulan data besar, yang akan mengalami pengambilan dan penulisan yang lambat dengan sumber data lain.

Sistem manajemen basis data relasional, atau RDBMS, menyimpan data dalam berbagai tabel. Hubungan antara tabel-tabel ini dibuat menggunakan kunci primer dan kunci asing.

RDBMS menawarkan fitur-fitur berikut -

  • Mereka memungkinkan Anda untuk menerapkan sumber data dengan tabel, kolom, dan indeks.

  • Mereka memastikan integritas referensi di seluruh baris dari beberapa tabel.

  • Mereka secara otomatis memperbarui indeks.

  • Mereka menafsirkan kueri dan operasi SQL dalam memanipulasi atau mengambil data dari tabel.

Terminologi RDBMS

Sebelum kita memulai diskusi tentang MariaDB, mari kita tinjau beberapa istilah yang terkait dengan database.

  • Database - Basis data adalah sumber data yang terdiri dari tabel-tabel yang menampung data terkait.

  • Table - Tabel, artinya spreadsheet, adalah matriks yang berisi data.

  • Column- Kolom, yang berarti elemen data, adalah struktur yang menampung data dari satu jenis; misalnya, tanggal pengiriman.

  • Row- Baris adalah struktur pengelompokan data terkait; misalnya, data untuk pelanggan. Ini juga dikenal sebagai tupel, entri, atau rekaman.

  • Redundancy - Istilah ini mengacu pada penyimpanan data dua kali untuk mempercepat sistem.

  • Primary Key- Ini mengacu pada nilai pengenal yang unik. Nilai ini tidak dapat muncul dua kali dalam tabel, dan hanya ada satu baris yang terkait dengannya.

  • Foreign Key - Kunci asing berfungsi sebagai penghubung antara dua tabel.

  • Compound Key- Kunci majemuk, atau kunci komposit, adalah kunci yang merujuk ke beberapa kolom. Ini mengacu pada beberapa kolom karena kolom kurang memiliki kualitas unik.

  • Index - Indeks hampir identik dengan indeks sebuah buku.

  • Referential Integrity - Istilah ini mengacu pada memastikan semua nilai kunci asing mengarah ke baris yang ada.

Basis Data MariaDB

MariaDB adalah fork populer MySQL yang dibuat oleh pengembang asli MySQL. Ini muncul dari kekhawatiran terkait akuisisi MySQL oleh Oracle. Ini menawarkan dukungan untuk tugas pemrosesan data kecil dan kebutuhan perusahaan. Ini bertujuan untuk menjadi pengganti drop-in untuk MySQL yang hanya membutuhkan uninstall MySQL sederhana dan instalasi MariaDB. MariaDB menawarkan fitur MySQL yang sama dan banyak lagi.

Fitur Utama MariaDB

Fitur penting MariaDB adalah -

  • Semua MariaDB berada di bawah GPL, LGPL, atau BSD.

  • MariaDB mencakup berbagai pilihan mesin penyimpanan, termasuk mesin penyimpanan berperforma tinggi, untuk bekerja dengan sumber data RDBMS lainnya.

  • MariaDB menggunakan bahasa kueri standar dan populer.

  • MariaDB berjalan di sejumlah sistem operasi dan mendukung berbagai bahasa pemrograman.

  • MariaDB menawarkan dukungan untuk PHP, salah satu bahasa pengembangan web paling populer.

  • MariaDB menawarkan teknologi cluster Galera.

  • MariaDB juga menawarkan banyak operasi dan perintah yang tidak tersedia di MySQL, dan menghilangkan / mengganti fitur yang berdampak negatif pada kinerja.

Mulai

Sebelum Anda memulai tutorial ini, pastikan Anda memiliki pengetahuan dasar tentang PHP dan HTML, khususnya materi yang dibahas dalam tutorial PHP dan HTML kami.

Panduan ini berfokus pada penggunaan MariaDB di lingkungan PHP, jadi contoh kami akan sangat berguna bagi pengembang PHP.

Kami sangat menyarankan untuk meninjau Tutorial PHP kami jika Anda kurang paham atau perlu meninjau.

Semua unduhan untuk MariaDB terletak di bagian Unduh di situs web yayasan resmi MariaDB. Klik tautan ke versi yang Anda inginkan, dan daftar unduhan untuk beberapa sistem operasi, arsitektur, dan jenis file instalasi akan ditampilkan.

Menginstal di LINUX / UNIX

Jika Anda memiliki pengetahuan mendalam tentang sistem Linux / Unix, cukup unduh sumber untuk membangun instalasi Anda. Cara penginstalan yang kami rekomendasikan adalah dengan menggunakan paket distribusi. MariaDB menawarkan paket untuk distribusi Linux / Unix berikut -

  • RedHat/CentOS/Fedora
  • Debian/Ubuntu

Distribusi berikut menyertakan paket MariaDB di repositori mereka -

  • openSUSE
  • Arch Linux
  • Mageia
  • Mint
  • Slackware

Ikuti langkah-langkah ini untuk menginstal di lingkungan Ubuntu -

Step 1 - Login sebagai pengguna root.

Step 2 - Arahkan ke direktori yang berisi paket MariaDB.

Step 3 - Impor kunci penandatanganan GnuPG dengan kode berikut -

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Step 4 - Tambahkan MariaDB ke file sources.listmengajukan. Buka file, dan tambahkan kode berikut -

sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntuprecise main'

Step 5 - Segarkan sistem dengan yang berikut -

sudo apt-get update

Step 6 - Instal MariaDB dengan yang berikut -

sudo apt-get install mariadb-server

Menginstal di Windows

Setelah mencari dan mengunduh file penginstalan otomatis (MSI), cukup klik dua kali file tersebut untuk memulai penginstalan. Wizard penginstalan akan memandu Anda melalui setiap langkah penginstalan dan pengaturan yang diperlukan.

Uji penginstalan dengan memulainya dari prompt perintah. Arahkan ke lokasi penginstalan, biasanya di direktori, dan ketik yang berikut ini pada prompt -

mysqld.exe --console

Jika penginstalan berhasil, Anda akan melihat pesan yang terkait dengan startup. Jika ini tidak muncul, Anda mungkin mengalami masalah izin. Pastikan akun pengguna Anda dapat mengakses aplikasi. Klien grafis tersedia untuk administrasi MariaDB di lingkungan Windows. Jika Anda merasa baris perintah tidak nyaman atau tidak praktis, pastikan untuk bereksperimen dengannya.

Menguji Instalasi

Lakukan beberapa tugas sederhana untuk mengonfirmasi fungsi dan pemasangan MariaDB.

Use the Admin Utility to Get Server Status

Lihat versi server dengan biner mysqladmin.

[root@host]# mysqladmin --version

Ini harus menampilkan versi, distribusi, sistem operasi, dan arsitektur. Jika Anda tidak melihat keluaran dari jenis itu, periksa masalah penginstalan Anda.

Execute Simple Commands with a Client

Munculkan prompt perintah untuk MariaDB. Ini harus menghubungkan Anda ke MariaDB dan memungkinkan eksekusi perintah. Masukkan perintah sederhana sebagai berikut -

mysql> SHOW DATABASES;

Pasca-Instalasi

Setelah instalasi MariaDB berhasil, setel kata sandi root. Pemasangan baru akan memiliki kata sandi kosong. Masukkan berikut ini untuk mengatur kata sandi baru -

mysqladmin -u root password "[enter your password here]";

Masukkan perintah berikut untuk terhubung ke server dengan kredensial baru Anda -

mysql -u root -p
Enter password:*******

Mengupgrade di Windows

Jika Anda sudah menginstal MySQL di sistem Windows Anda, dan ingin meningkatkan ke MariaDB; jangan uninstall MySQL dan instal MariaDB. Ini akan menyebabkan konflik dengan database yang ada. Anda harus menginstal MariaDB, dan kemudian menggunakan wizard pemutakhiran di file penginstalan Windows.

Opsi file MySQL my.cnf Anda harus berfungsi dengan MariaDB. Namun, MariaDB memiliki banyak fitur yang tidak ditemukan di MySQL.

Pertimbangkan konflik berikut di file my.cnf Anda -

  • MariaDB menggunakan mesin penyimpanan Aria secara default untuk file sementara. Jika Anda memiliki banyak file sementara, ubah ukuran buffer kunci jika Anda tidak menggunakan tabel MyISAM.

  • Jika aplikasi Anda sering terhubung / terputus, ubah ukuran cache utas.

  • Jika Anda menggunakan lebih dari 100 koneksi, gunakan kumpulan thread.

Kesesuaian

MySQL dan MariaDB pada dasarnya identik. Namun, ada cukup banyak perbedaan untuk menimbulkan masalah dalam peningkatan. Tinjau lebih lanjut perbedaan utama ini dalam Basis Pengetahuan MariaDB.

Sebelum mencoba menjalankan MariaDB, tentukan dulu statusnya saat ini, berjalan atau mati. Ada tiga opsi untuk memulai dan menghentikan MariaDB -

  • Jalankan mysqld (biner MariaDB).
  • Jalankan skrip startup mysqld_safe.
  • Jalankan skrip startup mysql.server.

Jika Anda menginstal MariaDB di lokasi non-standar, Anda mungkin harus mengedit informasi lokasi di file skrip. Hentikan MariaDB hanya dengan menambahkan parameter "stop" dengan skrip.

Jika Anda ingin memulainya secara otomatis di Linux, tambahkan skrip startup ke initsistem. Setiap distribusi memiliki prosedur yang berbeda. Lihat dokumentasi sistem Anda.

Membuat Akun Pengguna

Buat akun pengguna baru dengan kode berikut -

CREATE USER 'newusername'@'localhost' IDENTIFIED BY 'userpassword';

Kode ini menambahkan baris ke tabel pengguna tanpa hak istimewa. Anda juga memiliki opsi untuk menggunakan nilai hash untuk kata sandi. Berikan hak istimewa pengguna dengan kode berikut -

GRANT SELECT, INSERT, UPDATE, DELETE ON database1 TO 'newusername'@'localhost';

Hak istimewa lainnya mencakup hampir setiap perintah atau operasi yang mungkin dilakukan di MariaDB. Setelah membuat pengguna, jalankan perintah "FLUSH PRIVILEGES" untuk menyegarkan tabel hibah. Ini memungkinkan akun pengguna untuk digunakan.

File Konfigurasi

Setelah dibangun di Unix / Linux, file konfigurasi “/etc/mysql/my.cnf” harus diedit agar muncul sebagai berikut -

# Example mysql config file.
# You can copy this to one of:
# /etc/my.cnf to set global options,
# /mysql-data-dir/my.cnf to get server specific options or
# ~/my.cnf for user specific options.

#

# One can use all long options that the program supports.
# Run the program with --help to get a list of available options

# This will be passed to all mysql clients
[client]
#password = my_password
#port = 3306
#socket = /tmp/mysql.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# The MySQL server
[mysqld]
#port = 3306
#socket = /tmp/mysql.sock
temp-pool

# The following three entries caused mysqld 10.0.1-MariaDB (and possibly other
   versions) to abort...
# skip-locking
# set-variable = key_buffer = 16M
# set-variable = thread_cache = 4

loose-innodb_data_file_path = ibdata1:1000M
loose-mutex-deadlock-detector
gdb

######### Fix the two following paths

# Where you want to have your database
data = /path/to/data/dir

# Where you have your mysql/MariaDB source + sql/share/english
language = /path/to/src/dir/sql/share/english

[mysqldump]
quick
MariaDB
8
set-variable = max_allowed_packet=16M
[mysql]
no-auto-rehash

[myisamchk]
set-variable = key_buffer = 128M

Edit baris “data =” dan “language =” agar sesuai dengan lingkungan Anda.

Setelah modifikasi file, navigasikan ke direktori sumber dan jalankan yang berikut ini -

./scripts/mysql_install_db --srcdir = $PWD --datadir = /path/to/data/dir -- user = $LOGNAME

Abaikan "$PWD” variable if you added datadir to the configuration file. Ensure “$LOGNAME ”digunakan saat menjalankan MariaDB versi 10.0.1.

Perintah Administrasi

Tinjau daftar perintah penting berikut yang akan Anda gunakan secara teratur saat bekerja dengan MariaDB -

  • USE [database name] - Mengatur database default saat ini.

  • SHOW DATABASES - Mencantumkan database yang saat ini ada di server.

  • SHOW TABLES - Mencantumkan semua tabel non-sementara.

  • SHOW COLUMNS FROM [table name] - Memberikan informasi kolom yang berkaitan dengan tabel yang ditentukan.

  • SHOW INDEX FROM TABLENAME [table name] - Memberikan informasi indeks tabel yang berkaitan dengan tabel yang ditentukan.

  • SHOW TABLE STATUS LIKE [table name]\G – - Menyediakan tabel dengan informasi tentang tabel non-sementara, dan pola yang muncul setelah klausa LIKE digunakan untuk mengambil nama tabel.

MariaDB bermitra dengan baik dengan berbagai bahasa pemrograman dan kerangka kerja seperti PHP, C #, JavaScript, Ruby on Rails, Django, dan banyak lagi. PHP tetap yang paling populer dari semua bahasa yang tersedia karena kesederhanaan dan jejak sejarahnya. Panduan ini akan fokus pada PHP yang bermitra dengan MariaDB.

PHP menyediakan pilihan fungsi untuk bekerja dengan database MySQL. Fungsi-fungsi ini melakukan tugas-tugas seperti mengaksesnya atau melakukan operasi, dan mereka sepenuhnya kompatibel dengan MariaDB. Cukup panggil fungsi ini seperti Anda memanggil fungsi PHP lainnya.

Fungsi PHP yang akan Anda gunakan untuk MariaDB sesuai dengan format berikut -

mysql_function(value,value,...);

Bagian kedua dari fungsi menentukan aksinya. Dua fungsi yang digunakan dalam panduan ini adalah sebagai berikut -

mysqli_connect($connect); mysqli_query($connect,"SQL statement");

Contoh berikut menunjukkan sintaks umum panggilan PHP ke fungsi MariaDB -

<html>
   <head>
      <title>PHP and MariaDB</title>
   </head>

   <body>
      <?php
         $retval = mysql_function(value, [value,...]); if( !$retval ) {
            die ( "Error: Error message here" );
         }
         // MariaDB or PHP Statements
      ?>
   </body>
</html>

Di bagian selanjutnya, kita akan memeriksa tugas-tugas penting MariaDB, menggunakan fungsi PHP.

Salah satu cara untuk membuat koneksi dengan MariaDB terdiri dari menggunakan biner mysql pada prompt perintah.

Biner MYSQL

Tinjau contoh yang diberikan di bawah ini.

[root@host]# mysql -u root -p

Enter password:******

Kode yang diberikan di atas terhubung ke MariaDB dan menyediakan prompt perintah untuk menjalankan perintah SQL. Setelah memasukkan kode, pesan selamat datang akan muncul yang menunjukkan koneksi berhasil, dengan nomor versi yang ditampilkan.

Welcome to the MariaDB monitor. Commands end with ; or \g. 
Your MariaDB connection id is 122323232 
Server version: 5.5.40-MariaDB-log
  
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
mysql>

Contoh tersebut menggunakan akses root, tetapi setiap pengguna dengan hak istimewa tentu saja dapat mengakses prompt MariaDB dan melakukan operasi.

Putuskan sambungan dari MariaDB melalui exit perintah sebagai berikut -

mysql> exit

Script Koneksi PHP

Cara lain untuk menghubungkan dan memutuskan dari MariaDB terdiri dari menggunakan skrip PHP. PHP menyediakanmysql_connect()berfungsi untuk membuka koneksi database. Ini menggunakan lima parameter opsional, dan mengembalikan pengenal tautan MariaDB setelah koneksi berhasil, atau false pada koneksi yang tidak berhasil. Ini juga menyediakanmysql_close() berfungsi untuk menutup koneksi database, yang menggunakan satu parameter.

Sintaksis

Tinjau sintaks skrip koneksi PHP berikut -

connection mysql_connect(server,user,passwd,new_link,client_flag);

Deskripsi parameter diberikan di bawah ini -

Sr Tidak Parameter & Deskripsi
1

server

Parameter opsional ini menentukan nama host yang menjalankan server database. Nilai defaultnya adalah "localhost: .3036".

2

user

Parameter opsional ini menentukan nama pengguna yang mengakses database. Nilai defaultnya adalah pemilik server.

3

passwd

Parameter opsional ini menentukan sandi pengguna. Nilai defaultnya kosong.

4

new_link

Parameter opsional ini menetapkan itu pada panggilan kedua ke mysql_connect() dengan argumen yang identik, bukan koneksi baru, pengenal koneksi saat ini akan dikembalikan.

5

client flags

Parameter opsional ini menggunakan kombinasi dari nilai konstan berikut -

  • MYSQL_CLIENT_SSL - Menggunakan enkripsi ssl.

  • MYSQL_CLIENT_COMPRESS - Menggunakan protokol kompresi.

  • MYSQL_CLIENT_IGNORE_SPACE - Ini memungkinkan spasi setelah nama fungsi.

  • MYSQL_CLIENT_INTERACTIVE - Ini memungkinkan detik timeout interaktif tidak aktif sebelum menutup koneksi.

Tinjau sintaks skrip pemutusan PHP yang diberikan di bawah ini -

bool mysql_close ( resource $link_identifier );

Jika Anda menghilangkan sumber daya, sumber daya yang paling baru dibuka akan ditutup. Ini mengembalikan nilai true pada penutupan yang berhasil, atau salah.

Coba kode contoh berikut untuk terhubung dengan server MariaDB -

<html>
   <head>
      <title>Connect to MariaDB Server</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'guest1'; $dbpass = 'guest1a';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
      
         if(! $conn ) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($conn);
      ?>
   </body>
</html>

Jika koneksi berhasil, Anda akan melihat output berikut -

mysql> Connected successfully

Pembuatan atau penghapusan database di MariaDB membutuhkan hak istimewa yang biasanya hanya diberikan kepada pengguna root atau admin. Di bawah akun ini, Anda memiliki dua opsi untuk membuat database - biner mysqladmin dan skrip PHP.

biner mysqladmin

Contoh berikut menunjukkan penggunaan biner mysqladmin dalam membuat database dengan nama tersebut Products -

[root@host]# mysqladmin -u root -p create PRODUCTS
Enter password:******

PHP Membuat Script Database

PHP menggunakan mysql_queryberfungsi dalam membuat database MariaDB. Fungsi ini menggunakan dua parameter, satu opsional, dan mengembalikan nilai "benar" jika berhasil, atau "salah" jika tidak.

Sintaksis

Tinjau hal-hal berikut create database script sintaks -

bool mysql_query( sql, connection );

Deskripsi parameter diberikan di bawah ini -

S.No Parameter & Deskripsi
1

sql

Parameter wajib ini terdiri dari kueri SQL yang diperlukan untuk menjalankan operasi.

2

connection

Jika tidak ditentukan, parameter opsional ini menggunakan koneksi terbaru yang digunakan.

Coba kode contoh berikut untuk membuat database -

<html>
   <head>
      <title>Create a MariaDB Database</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3036'; $dbuser = 'root';
         $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }

         echo 'Connected successfully<br />';
         $sql = 'CREATE DATABASE PRODUCTS'; $retval = mysql_query( $sql, $conn );
      
         if(! $retval ) { die('Could not create database: ' . mysql_error()); } echo "Database PRODUCTS created successfully\n"; mysql_close($conn);
      ?>
   </body>
</html>

Jika penghapusan berhasil, Anda akan melihat output berikut -

mysql> Database PRODUCTS created successfully 
mysql> SHOW DATABASES; 
+-----------------------+ 
| Database              | 
+-----------------------+ 
| PRODUCTS              | 
+-----------------------+

Pembuatan atau penghapusan database di MariaDB membutuhkan hak istimewa, biasanya, hanya diberikan kepada pengguna root atau admin. Di bawah akun ini, Anda memiliki dua opsi untuk menghapus database: biner mysqladmin dan skrip PHP.

Perhatikan bahwa database yang dihapus tidak dapat dipulihkan, jadi berhati-hatilah saat melakukan operasi ini. Selanjutnya script PHP yang digunakan untuk melakukan penghapusannot meminta Anda dengan konfirmasi sebelum penghapusan.

biner mysqladmin

Contoh berikut menunjukkan cara menggunakan biner mysqladmin untuk menghapus database yang ada -

[root@host]# mysqladmin -u root -p drop PRODUCTS
Enter password:******
mysql> DROP PRODUCTS
ERROR 1008 (HY000): Can't drop database 'PRODUCTS'; database doesn't exist

Script Database Drop PHP

PHP menggunakan mysql_queryberfungsi dalam menghapus database MariaDB. Fungsi ini menggunakan dua parameter, satu opsional, dan mengembalikan nilai "benar" jika berhasil, atau "salah" jika tidak.

Sintaksis

Tinjau sintaks skrip database drop berikut -

bool mysql_query( sql, connection );

Deskripsi parameter diberikan di bawah ini -

Sr Tidak Parameter & Deskripsi
1

sql

Parameter wajib ini terdiri dari kueri SQL yang diperlukan untuk menjalankan operasi.

2

connection

Jika tidak ditentukan, parameter opsional ini menggunakan koneksi terbaru yang digunakan.

Coba kode contoh berikut untuk menghapus database -

<html>
   <head>
      <title>Delete a MariaDB Database</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3036'; $dbuser = 'root';
         $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully<br />';
         
         $sql = 'DROP DATABASE PRODUCTS'; $retval = mysql_query( $sql, $conn );
         
         if(! $retval ){ die('Could not delete database: ' . mysql_error()); } echo "Database PRODUCTS deleted successfully\n"; mysql_close($conn);
      ?>
   </body>
</html>

Jika penghapusan berhasil, Anda akan melihat output berikut -

mysql> Database PRODUCTS deleted successfully

Setelah menyambungkan ke MariaDB, Anda harus memilih database yang akan digunakan karena mungkin ada banyak database. Ada dua cara untuk melakukan tugas ini: dari command prompt atau melalui skrip PHP.

Prompt Perintah

Dalam memilih database pada command prompt, cukup gunakan perintah SQL ‘use’ -

[root@host]# mysql -u root -p

Enter password:******

mysql> use PRODUCTS;

Database changed

mysql> SELECT database();  
+-------------------------+ 
| Database                | 
+-------------------------+ 
| PRODUCTS                | 
+-------------------------+

Setelah Anda memilih database, semua perintah selanjutnya akan beroperasi pada database yang dipilih.

Note- Semua nama (misalnya, database, tabel, bidang) peka huruf besar / kecil. Pastikan perintah sesuai dengan kasus yang benar.

PHP Pilih Script Database

PHP menyediakan mysql_select_dbfungsi untuk pemilihan database. Fungsi ini menggunakan dua parameter, satu opsional, dan mengembalikan nilai "true" pada pemilihan yang berhasil, atau false pada kegagalan.

Sintaksis

Tinjau sintaks skrip database pilih berikut.

bool mysql_select_db( db_name, connection );

Deskripsi parameter diberikan di bawah ini -

S.No Parameter & Deskripsi
1

db_name

Parameter yang diperlukan ini menentukan nama database yang akan digunakan.

2

connection

Jika tidak ditentukan, parameter opsional ini menggunakan koneksi terbaru yang digunakan.

Coba kode contoh berikut untuk memilih database -

<html>
   <head>
      <title>Select a MariaDB Database</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3036'; $dbuser = 'guest1';
         $dbpass = 'guest1a'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully';
         
         mysql_select_db( 'PRODUCTS' );
         mysql_close($conn);
      ?>
   </body>
</html>

Jika pemilihan berhasil, Anda akan melihat output berikut -

mysql> Connected successfully

Definisi bidang yang baik sangat penting untuk pengoptimalan database Anda. Pendekatan ideal mengharuskan Anda secara eksklusif menggunakan bidang dengan jenis dan ukuran yang diperlukan. Misalnya, jika Anda hanya akan menggunakan bidang dengan lebar lima karakter, jangan tentukan bidang dengan lebar 20 karakter. Tipe bidang (atau kolom) juga dikenal sebagai tipe data yang diberikan tipe data yang disimpan di dalam bidang.

Tipe data MariaDB dapat dikategorikan sebagai numerik, tanggal dan waktu, dan nilai string.

Tipe Data Numerik

Tipe data numerik yang didukung oleh MariaDB adalah sebagai berikut -

  • TINYINT - Tipe data ini mewakili bilangan bulat kecil yang berada dalam rentang bertanda -128 hingga 127, dan rentang tak bertanda 0 hingga 255.

  • BOOLEAN - Jenis data ini mengaitkan nilai 0 dengan "false", dan nilai 1 dengan "true".

  • SMALLINT - Tipe data ini mewakili bilangan bulat dalam rentang bertanda -32768 hingga 32768, dan rentang tak bertanda dari 0 hingga 65535.

  • MEDIUMINT - Tipe data ini mewakili bilangan bulat dalam rentang bertanda -8388608 hingga 8388607, dan rentang tak bertanda tangan dari 0 hingga 16777215.

  • INT(also INTEGER)- Tipe data ini mewakili bilangan bulat dari ukuran normal. Saat ditandai sebagai unsigned, rentang rentangnya 0 hingga 4294967295. Saat ditandatangani (setelan default), rentang rentang -2147483648 hingga 2147483647. Saat kolom disetel ke ZEROFILL (status unsigned), semua nilainya diawali dengan nol untuk menempatkan M digit dalam nilai INT.

  • BIGINT - Tipe data ini mewakili bilangan bulat dalam rentang bertanda tangan 9223372036854775808 hingga 9223372036854775807, dan rentang tak bertanda 0 hingga 18446744073709551615.

  • DECIMAL(juga DEC, NUMERIC, FIXED) - Tipe data ini mewakili bilangan titik tetap yang tepat, dengan M menentukan digitnya dan D menentukan digit setelah desimal. Nilai M tidak menambahkan “-” atau koma desimal. Jika D diatur ke 0, tidak ada bagian desimal atau pecahan yang muncul dan nilainya akan dibulatkan ke DECIMAL terdekat pada INSERT. Digit maksimum yang diizinkan adalah 65, dan maksimum untuk desimal adalah 30. Nilai default untuk M saat tidak ada adalah 10, dan 0 untuk D saat tidak mencantumkan.

  • FLOAT - Tipe data ini mewakili bilangan floating-point kecil dari nilai 0 atau angka dalam rentang berikut -

    • -3.402823466E + 38 hingga -1.175494351E-38

    • 1.175494351E-38 hingga 3.402823466E + 38

  • DOUBLE (juga REAL dan DOUBLE PRECISION) - Tipe data ini mewakili ukuran normal, angka floating-point dari nilai 0 atau dalam rentang berikut -

    • -1.7976931348623157E + 308 hingga -2.2250738585072014E-308

    • 2.2250738585072014E-308 hingga 1.7976931348623157E + 308

  • BIT- Tipe data ini mewakili bidang bit dengan M menentukan jumlah bit per nilai. Pada penghilangan M, defaultnya adalah 1. Nilai bit dapat diterapkan dengan "b '[nilai]'" di mana nilai mewakili nilai bit dalam 0s dan 1s. Zero-padding terjadi secara otomatis dari kiri untuk panjang penuh; misalnya, "10" menjadi "0010."

Tipe Data Tanggal dan Waktu

Jenis data tanggal dan waktu yang didukung oleh MariaDB adalah sebagai berikut -

  • DATE - Jenis data ini mewakili rentang tanggal "1000-01-01" hingga "9999-12-31", dan menggunakan format tanggal "YYYY-MM-DD".

  • TIME - Jenis data ini mewakili rentang waktu "-838: 59: 59.999999" hingga "838: 59: 59.999999".

  • DATETIME- Jenis data ini mewakili rentang "1000-01-01 00: 00: 00.000000" hingga "9999-12-31 23: 59: 59.999999". Ini menggunakan format “TTTT-BB-HH JJ: MM: SS”.

  • TIMESTAMP- Jenis data ini mewakili stempel waktu dari format "TTTT-BB-HH JJ: MM: HH". Ini terutama digunakan untuk merinci waktu modifikasi database, misalnya, penyisipan atau pembaruan.

  • YEAR- Tipe data ini mewakili satu tahun dalam format 4 digit. Format empat digit memungkinkan nilai dalam rentang 1901 hingga 2155, dan 0000.

Tipe Data String

Nilai jenis string yang didukung oleh MariaDB adalah sebagai berikut -

  • String literals - Tipe data ini mewakili urutan karakter yang diapit oleh tanda kutip.

  • CHAR- Tipe data ini mewakili string dengan panjang tetap dengan bantalan kanan yang berisi spasi dengan panjang tertentu. M mewakili panjang kolom karakter dalam rentang 0 hingga 255, nilai defaultnya adalah 1.

  • VARCHAR - Tipe data ini mewakili string dengan panjang variabel, dengan rentang M (panjang kolom maksimum) dari 0 hingga 65535.

  • BINARY - Tipe data ini mewakili string byte biner, dengan M sebagai panjang kolom dalam byte.

  • VARBINARY - Tipe data ini mewakili string byte biner dengan panjang variabel, dengan M sebagai panjang kolom.

  • TINYBLOB- Tipe data ini mewakili kolom blob dengan panjang maksimum 255 (28 - 1) byte. Dalam penyimpanan, masing-masing menggunakan awalan panjang satu byte yang menunjukkan kuantitas byte dalam nilai.

  • BLOB- Tipe data ini mewakili kolom blob dengan panjang maksimum 65.535 (216 - 1) byte. Dalam penyimpanan, masing-masing menggunakan awalan panjang dua byte yang menunjukkan kuantitas byte dalam nilai.

  • MEDIUMBLOB- Tipe data ini mewakili kolom blob dengan panjang maksimum 16.777.215 (2 24 - 1) byte. Dalam penyimpanan, masing-masing menggunakan awalan panjang tiga byte yang menunjukkan kuantitas byte dalam nilai.

  • LONGBLOB- Tipe data ini mewakili kolom blob dengan panjang maksimum 4.294.967.295 (2 32 - 1) byte. Dalam penyimpanan, masing-masing menggunakan awalan panjang empat byte yang menunjukkan kuantitas byte dalam nilai.

  • TINYTEXT- Tipe data ini mewakili kolom teks dengan panjang maksimal 255 (2 8 - 1) karakter. Dalam penyimpanan, masing-masing menggunakan awalan panjang satu byte yang menunjukkan kuantitas byte dalam nilai.

  • TEXT- Tipe data ini mewakili kolom teks dengan panjang maksimum 65.535 (2 16 - 1) karakter. Dalam penyimpanan, masing-masing menggunakan awalan panjang dua byte yang menunjukkan kuantitas byte dalam nilai.

  • MEDIUMTEXT- Tipe data ini mewakili kolom teks dengan panjang maksimal 16.777.215 (2 24 - 1) karakter. Dalam penyimpanan, masing-masing menggunakan awalan panjang tiga byte yang menunjukkan kuantitas byte dalam nilai.

  • LONGTEXT- Tipe data ini mewakili kolom teks dengan panjang maksimum 4.294.967.295 atau 4GB (2 32 - 1) karakter. Dalam penyimpanan, masing-masing menggunakan awalan panjang empat byte yang menunjukkan kuantitas byte dalam nilai.

  • ENUM - Tipe data ini mewakili objek string yang hanya memiliki satu nilai dari daftar.

  • SET- Tipe data ini mewakili objek string yang memiliki nilai nol atau lebih dari daftar, dengan maksimal 64 anggota. Nilai SET hadir secara internal sebagai nilai integer.

Pada bab ini, kita akan belajar bagaimana membuat tabel. Sebelum membuat tabel, tentukan dulu namanya, nama bidang, dan definisi bidangnya.

Berikut ini adalah sintaks umum untuk pembuatan tabel -

CREATE TABLE table_name (column_name column_type);

Tinjau perintah yang diterapkan untuk membuat tabel di database PRODUCTS -

databaseproducts_ tbl(
   product_id INT NOT NULL AUTO_INCREMENT,
   product_name VARCHAR(100) NOT NULL,
   product_manufacturer VARCHAR(40) NOT NULL,
   submission_date DATE,
   PRIMARY KEY ( product_id )
);

Contoh di atas menggunakan "NOT NULL" sebagai atribut bidang untuk menghindari kesalahan yang disebabkan oleh nilai null. Atribut "AUTO_INCREMENT" memerintahkan MariaDB untuk menambahkan nilai berikutnya yang tersedia ke bidang ID. Kata kunci kunci utama mendefinisikan kolom sebagaiprimary key. Beberapa kolom yang dipisahkan dengan koma dapat menentukan kunci utama.

Dua metode utama untuk membuat tabel menggunakan command prompt dan skrip PHP.

Prompt Perintah

Gunakan perintah CREATE TABLE untuk melakukan tugas seperti yang ditunjukkan di bawah ini -

root@host# mysql -u root -p
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> CREATE TABLE products_tbl(
   -> product_id INT NOT NULL AUTO_INCREMENT,
   -> product_name VARCHAR(100) NOT NULL,
   -> product_manufacturer VARCHAR(40) NOT NULL,
   -> submission_date DATE,
   -> PRIMARY KEY ( product_id )
   -> );
mysql> SHOW TABLES;
+------------------------+
| PRODUCTS               |
+------------------------+
| products_tbl           |
+------------------------+

Pastikan semua perintah diakhiri dengan titik koma.

PHP Membuat Skrip Tabel

PHP menyediakan mysql_query()untuk pembuatan tabel. Argumen keduanya berisi perintah SQL yang diperlukan -

<html>
   <head>
      <title>Create a MariaDB Table</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'root'; $dbpass = 'rootpassword';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
      
         if(! $conn ){ die('Could not connect: ' . mysql_error()); } echo 'Connected successfully<br />'; $sql = "CREATE TABLE products_tbl( ".
            "product_id INT NOT NULL AUTO_INCREMENT, ".
            "product_name VARCHAR(100) NOT NULL, ".
            "product_manufacturer VARCHAR(40) NOT NULL, ".
            "submission_date DATE, ".
            "PRIMARY KEY ( product_id )); ";
      
         mysql_select_db( 'PRODUCTS' );
         $retval = mysql_query( $sql, $conn ); if(! $retval ) {
            die('Could not create table: ' . mysql_error());
         }
         echo "Table created successfully\n";
         
         mysql_close($conn);
      ?>
   </body>
</html>

Pada pembuatan tabel yang berhasil, Anda akan melihat output berikut -

mysql> Table created successfully

Pada bab ini, kita akan belajar menghapus tabel.

Penghapusan tabel sangat mudah, tetapi ingat semua tabel yang dihapus tidak dapat dipulihkan. Sintaks umum untuk penghapusan tabel adalah sebagai berikut -

DROP TABLE table_name ;

Ada dua opsi untuk melakukan drop tabel: gunakan command prompt atau skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan DROP TABLE Perintah SQL -

root@host# mysql -u root -p
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> DROP TABLE products_tbl

mysql> SELECT * from products_tbl
ERROR 1146 (42S02): Table 'products_tbl' doesn't exist

Script Tabel Drop PHP

PHP menyediakan mysql_query()untuk menjatuhkan tabel. Cukup berikan argumen kedua perintah SQL yang sesuai -

<html>
   <head>
      <title>Create a MariaDB Table</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'root'; $dbpass = 'rootpassword';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully<br />'; $sql = "DROP TABLE products_tbl";
         mysql_select_db( 'PRODUCTS' );
         $retval = mysql_query( $sql, $conn ); if(! $retval ) {
            die('Could not delete table: ' . mysql_error());
         }
         echo "Table deleted successfully\n";
         
         mysql_close($conn);
      ?>
   </body>
</html>

Pada penghapusan tabel yang berhasil, Anda akan melihat output berikut -

mysql> Table deleted successfully

Pada bab ini, kita akan mempelajari cara memasukkan data ke dalam tabel.

Memasukkan data ke dalam tabel membutuhkan perintah INSERT. Sintaks umum dari perintah tersebut adalah INSERT diikuti dengan nama tabel, kolom, dan nilai.

Tinjau sintaks umumnya yang diberikan di bawah ini -

INSERT INTO tablename (field,field2,...) VALUES (value, value2,...);

Pernyataan tersebut membutuhkan penggunaan tanda kutip tunggal atau ganda untuk nilai string. Opsi lain untuk pernyataan tersebut termasuk pernyataan "INSERT ... SET", pernyataan "INSERT ... SELECT", dan beberapa opsi lainnya.

Note - Fungsi VALUES () yang muncul di dalam pernyataan, hanya berlaku untuk pernyataan INSERT dan mengembalikan NULL jika digunakan di tempat lain.

Ada dua opsi untuk melakukan operasi: gunakan baris perintah atau gunakan skrip PHP.

Prompt Perintah

Saat diminta, ada banyak cara untuk melakukan operasi pemilihan. Pernyataan standar diberikan di bawah ini -

belowmysql>
INSERT INTO products_tbl (ID_number, Nomenclature) VALUES (12345,“Orbitron 4000”);
mysql> SHOW COLUMNS FROM products_tbl;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| ID_number   | int(5)      |      |     |         |       |
| Nomenclature| char(13)    |      |     |         |       |
+-------------+-------------+------+-----+---------+-------+

Anda dapat memasukkan beberapa baris -

INSERT INTO products VALUES (1, “first row”), (2, “second row”);

Anda juga dapat menggunakan klausa SET -

INSERT INTO products SELECT * FROM inventory WHERE status = 'available';

Script Penyisipan PHP

Gunakan pernyataan "INSERT INTO ..." yang sama dalam fungsi PHP untuk melakukan operasi. Anda akan menggunakanmysql_query() berfungsi sekali lagi.

Tinjau contoh yang diberikan di bawah ini -

<?php
   if(isset($_POST['add'])) {
      $dbhost = 'localhost:3036'; $dbuser = 'root';
      $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
         die('Could not connect: ' . mysql_error());
      }

      if(! get_magic_quotes_gpc() ) {
         $product_name = addslashes ($_POST['product_name']);
         $product_manufacturer = addslashes ($_POST['product_name']);
      } else {
         $product_name = $_POST['product_name'];
         $product_manufacturer = $_POST['product_manufacturer'];
      }
      $ship_date = $_POST['ship_date'];
      $sql = "INSERT INTO products_tbl ". "(product_name,product_manufacturer, ship_date) ". "VALUES"."('$product_name','$product_manufacturer','$ship_date')";

      mysql_select_db('PRODUCTS');
      $retval = mysql_query( $sql, $conn ); if(! $retval ) {
         die('Could not enter data: ' . mysql_error());
      }

      echo "Entered data successfully\n";
      mysql_close($conn);
   }
?>

Pada penyisipan data yang berhasil, Anda akan melihat output berikut -

mysql> Entered data successfully

Anda juga akan mengkolaborasikan pernyataan validasi dengan pernyataan insert seperti pengecekan untuk memastikan entri data yang benar. MariaDB menyertakan sejumlah opsi untuk tujuan ini, beberapa di antaranya otomatis.

Pada bab ini, kita akan belajar bagaimana memilih data dari tabel.

Pernyataan SELECT mengambil baris yang dipilih. Mereka dapat menyertakan pernyataan UNION, klausa pemesanan, klausa LIMIT, klausa WHERE, klausa GROUP BY ... HAVING, dan subkueri.

Tinjau sintaks umum berikut -

SELECT field, field2,... FROM table_name, table_name2,... WHERE...

Pernyataan SELECT menyediakan beberapa opsi untuk menentukan tabel yang digunakan -

  • database_name.table_name

  • table_name.column_name

  • database_name.table_name.column_name

Semua pernyataan pemilihan harus berisi satu atau lebih select expressions. Pilih ekspresi terdiri dari salah satu opsi berikut -

  • Nama kolom.

  • Ekspresi yang menggunakan operator dan fungsi.

  • Spesifikasi "nama_tabel. *" Untuk memilih semua kolom dalam tabel yang diberikan.

  • Karakter “*” untuk memilih semua kolom dari semua tabel yang ditentukan dalam klausa FROM.

Prompt perintah atau skrip PHP dapat digunakan dalam menjalankan pernyataan pilih.

Prompt Perintah

Pada prompt perintah, jalankan pernyataan sebagai berikut -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> SELECT * from products_tbl
+-------------+---------------+
| ID_number   | Nomenclature  |
+-------------+---------------+
| 12345       | Orbitron 4000 |
+-------------+---------------+

PHP Pilih Script

Gunakan pernyataan SELECT yang sama dalam fungsi PHP untuk melakukan operasi. Anda akan menggunakanmysql_query()berfungsi sekali lagi. Tinjau contoh yang diberikan di bawah ini -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root'; $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT product_id, product_name,product_manufacturer, ship_date FROM products_tbl';
   mysql_select_db('PRODUCTS');
   $retval = mysql_query( $sql, $conn ); if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Product ID :{$row['product_id']} <br> ". "Name: {$row['product_name']} <br> ".
         "Manufacturer: {$row['product_manufacturer']} <br> ". "Ship Date : {$row['ship_date']} <br>".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Pada pengambilan data yang berhasil, Anda akan melihat output berikut -

Product ID: 12345
Nomenclature: Orbitron 4000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 12346
Nomenclature: Orbitron 3000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
mysql> Fetched data successfully

Praktik terbaik menyarankan untuk melepaskan memori kursor setelah setiap pernyataan SELECT. PHP menyediakanmysql_free_result()berfungsi untuk tujuan ini. Tinjau penggunaannya seperti yang ditunjukkan di bawah ini -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root'; $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl';
   mysql_select_db('PRODUCTS');
   $retval = mysql_query( $sql, $conn ); if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "Product ID :{$row[0]} <br> ". "Name: {$row[1]} <br> ".
         "Manufacturer: {$row[2]} <br> ". "Ship Date : {$row[3]} <br> ".
         "--------------------------------<br>";
   }

   mysql_free_result($retval); echo "Fetched data successfully\n"; mysql_close($conn);
?>

WHEREklausa memfilter berbagai pernyataan seperti SELECT, UPDATE, DELETE, dan INSERT. Mereka menyajikan kriteria yang digunakan untuk menentukan tindakan. Mereka biasanya muncul setelah nama tabel dalam pernyataan, dan kondisinya mengikuti. Klausa WHERE pada dasarnya berfungsi seperti pernyataan if.

Tinjau sintaks umum klausa WHERE yang diberikan di bawah ini -

[COMMAND] field,field2,... FROM table_name,table_name2,... WHERE [CONDITION]

Perhatikan kualitas klausa WHERE berikut -

  • Ini opsional.

  • Ini memungkinkan kondisi apa pun untuk ditentukan.

  • Ini memungkinkan spesifikasi beberapa kondisi melalui penggunaan operator DAN atau ATAU.

  • Sensitivitas huruf besar hanya berlaku untuk pernyataan yang menggunakan perbandingan LIKE.

Klausul WHERE mengizinkan penggunaan operator berikut -

Operator
=! =
> <
> = <=

Klausa WHERE dapat digunakan pada command prompt atau dalam skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan perintah standar -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> SELECT * from products_tbl WHERE product_manufacturer = 'XYZ Corp';
+-------------+----------------+----------------------+
| ID_number   | Nomenclature   | product_manufacturer |
+-------------+----------------+----------------------+
| 12345       | Orbitron 4000  | XYZ Corp             |
+-------------+----------------+----------------------+
| 12346       | Orbitron 3000  | XYZ Corp             |
+-------------+----------------+----------------------+
| 12347       | Orbitron 1000  | XYZ Corp             |
+-------------+----------------+----------------------+

Tinjau contoh menggunakan AND kondisi -

SELECT *
FROM products_tbl
WHERE product_name = 'Bun Janshu 3000';
AND product_id <= 344;

Contoh ini menggabungkan ketentuan DAN dan ATAU

SELECT *
FROM products_tbl
WHERE (product_name = 'Bun Janshu 3000' AND product_id < 344)
OR (product_name = 'Bun Janshu 3000');

Skrip PHP Menggunakan Klausa Where

Gunakan mysql_query() berfungsi dalam operasi menggunakan klausa WHERE -

<?php
   $dbhost = 'localhost:3036'; $dbuser = 'root';
   $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl WHERE product_manufacturer = "XYZ Corp"'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Product ID :{$row['product_id']} <br> ".
         "Name: {$row['product_name']} <br> ". "Manufacturer: {$row['product_manufacturer']} <br> ".
         "Ship Date: {$row['ship_date']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn);
?>

Pada pengambilan data yang berhasil, Anda akan melihat output berikut -

Product ID: 12345
Nomenclature: Orbitron 4000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 12346
Nomenclature: Orbitron 3000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
Product ID: 12347
Nomenclature: Orbitron 1000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
mysql> Fetched data successfully

Itu UPDATEperintah mengubah bidang yang ada dengan mengubah nilai. Ini menggunakan klausa SET untuk menentukan kolom untuk modifikasi, dan untuk menentukan nilai baru yang diberikan. Nilai ini bisa berupa ekspresi atau nilai default bidang. Menetapkan nilai default membutuhkan penggunaan kata kunci DEFAULT. Perintah ini juga dapat menggunakan klausa WHERE untuk menentukan kondisi pembaruan dan / atau klausa ORDER BY untuk memperbarui dalam urutan tertentu.

Tinjau sintaks umum berikut -

UPDATE table_name SET field=new_value, field2=new_value2,...
[WHERE ...]

Jalankan perintah UPDATE dari command prompt atau menggunakan skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan commandroot standar -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> UPDATE products_tbl
   SET nomenclature = 'Fiber Blaster 300Z' WHERE ID_number = 112;
mysql> SELECT * from products_tbl WHERE ID_number='112';
+-------------+---------------------+----------------------+
| ID_number   | Nomenclature        | product_manufacturer |
+-------------+---------------------+----------------------+
| 112         | Fiber Blaster 300Z  | XYZ Corp             |
+-------------+---------------------+----------------------+

Script Kueri Pembaruan PHP

Gunakan mysql_query() berfungsi dalam pernyataan perintah UPDATE -

<?php
   $dbhost = ‘localhost:3036’; $dbuser = ‘root’;
   $dbpass = ‘rootpassword’; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
      die(‘Could not connect: ‘ . mysql_error());
   }

   $sql = ‘UPDATE products_tbl SET product_name = ”Fiber Blaster 300z” WHERE product_id = 112’; mysql_select_db(‘PRODUCTS’); $retval = mysql_query( $sql, $conn );

   if(! $retval ) { die(‘Could not update data: ‘ . mysql_error()); } echo “Updated data successfully\n”; mysql_close($conn);
?>

Jika pembaruan data berhasil, Anda akan melihat output berikut -

mysql> Updated data successfully

Perintah DELETE menghapus baris tabel dari tabel yang ditentukan, dan mengembalikan kuantitas yang dihapus. Akses kuantitas yang dihapus dengan fungsi ROW_COUNT (). Klausa WHERE menentukan baris, dan jika tidak ada, semua baris dihapus. Klausa LIMIT mengontrol jumlah baris yang dihapus.

Dalam pernyataan DELETE untuk beberapa baris, ini hanya menghapus baris yang memenuhi kondisi; dan klausul LIMIT dan WHERE tidak diizinkan. Pernyataan DELETE memungkinkan penghapusan baris dari tabel dalam database yang berbeda, tetapi jangan perbolehkan menghapus dari tabel dan kemudian memilih dari tabel yang sama dalam subkueri.

Tinjau sintaks DELETE berikut -

DELETE FROM table_name [WHERE …]

Jalankan perintah DELETE baik dari command prompt atau menggunakan skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan perintah standar -

root@host# mysql –u root –p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> DELETE FROM products_tbl WHERE product_id=133;
mysql> SELECT * from products_tbl WHERE ID_number='133';
ERROR 1032 (HY000): Can't find record in 'products_tbl'

PHP Hapus Query Script

Menggunakan mysql_query() fungsi dalam pernyataan perintah DELETE -

<?php
   $dbhost = 'localhost:3036'; $dbuser = 'root';
   $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'DELETE FROM products_tbl WHERE product_id = 261'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn );

   if(! $retval ) { die('Could not delete data: ' . mysql_error()); } echo "Deleted data successfully\n"; mysql_close($conn);
?>

Saat penghapusan data berhasil, Anda akan melihat output berikut -

mysql> Deleted data successfully
mysql> SELECT * from products_tbl WHERE ID_number='261';
ERROR 1032 (HY000): Can't find record in 'products_tbl'

Klausa WHERE menyediakan cara untuk mengambil data saat operasi menggunakan pencocokan tepat. Dalam situasi yang membutuhkan banyak hasil dengan karakteristik yang sama, fileLIKE klausa mengakomodasi pencocokan pola yang luas.

Klausa LIKE menguji kecocokan pola, mengembalikan benar atau salah. Pola yang digunakan untuk perbandingan menerima karakter wildcard berikut: "%", yang cocok dengan jumlah karakter (0 atau lebih); dan "_", yang cocok dengan satu karakter. Karakter wildcard “_” hanya cocok dengan karakter dalam setnya, artinya akan mengabaikan karakter latin saat menggunakan set lain. Kecocokan peka huruf besar / kecil secara default membutuhkan pengaturan tambahan untuk kepekaan huruf besar / kecil.

Klausa NOT LIKE memungkinkan untuk menguji kondisi yang berlawanan, seperti not operator.

Jika ekspresi atau pola pernyataan bernilai NULL, hasilnya adalah NULL.

Tinjau sintaks klausa LIKE umum yang diberikan di bawah ini -

SELECT field, field2,... FROM table_name, table_name2,...
WHERE field LIKE condition

Gunakan klausa LIKE baik di command prompt atau di dalam skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan perintah standar -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from products_tbl
   WHERE product_manufacturer LIKE 'XYZ%';
+-------------+----------------+----------------------+
| ID_number   | Nomenclature   | product_manufacturer |
+-------------+----------------+----------------------+
| 12345       | Orbitron 4000  | XYZ Corp             |
+-------------+----------------+----------------------+
| 12346       | Orbitron 3000  | XYZ Corp             |
+-------------+----------------+----------------------+
| 12347       | Orbitron 1000  | XYZ Corp             |
+-------------+----------------+----------------------+

Script PHP Menggunakan Seperti Klausa

Menggunakan mysql_query() berfungsi dalam pernyataan yang menggunakan klausa LIKE

<?php
   $dbhost = 'localhost:3036'; $dbuser = 'root';
   $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl WHERE product_manufacturer LIKE "xyz%"'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Product ID:{$row['product_id']} <br> ".
         "Name: {$row['product_name']} <br> ". "Manufacturer: {$row['product_manufacturer']} <br> ".
         "Ship Date: {$row['ship_date']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn);
?>

Pada pengambilan data yang berhasil, Anda akan melihat output berikut -

Product ID: 12345
Nomenclature: Orbitron 4000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 12346
Nomenclature: Orbitron 3000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
Product ID: 12347
Nomenclature: Orbitron 1000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
mysql> Fetched data successfully

Itu ORDER BYklausa, seperti yang disebutkan dalam diskusi sebelumnya, menyortir hasil pernyataan. Ini menentukan urutan data yang dioperasikan, dan termasuk opsi untuk mengurutkan dalam urutan naik (ASC) atau turun (DESC). Saat spesifikasi pesanan tidak dicantumkan, urutan default naik.

Klausa ORDER BY muncul di berbagai pernyataan seperti DELETE dan UPDATE. Mereka selalu muncul di akhir pernyataan, bukan di subkueri atau sebelum fungsi set, karena mereka beroperasi pada tabel hasil akhir. Anda juga tidak dapat menggunakan integer untuk mengidentifikasi kolom.

Tinjau sintaks umum klausa ORDER BY yang diberikan di bawah ini -

SELECT field, field2,... [or column] FROM table_name, table_name2,...
ORDER BY field, field2,... ASC[or DESC]

Gunakan klausa ORDER BY baik pada prompt perintah atau dalam skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan perintah standar -

root@ host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed

mysql> SELECT * from products_tbl ORDER BY product_manufacturer ASC
+-------------+----------------+----------------------+
| ID_number   | Nomenclature   | product_manufacturer |
+-------------+----------------+----------------------+
| 56789       | SuperBlast 400 | LMN Corp             |
+-------------+----------------+----------------------+
| 67891       | Zoomzoom 5000  | QFT Corp             |
+-------------+----------------+----------------------+
| 12347       | Orbitron 1000  | XYZ Corp             |
+-------------+----------------+----------------------+

Script PHP Menggunakan Order By Clause

Memanfaatkan mysql_query() fungsi, sekali lagi, dalam pernyataan yang menggunakan klausa ORDER BY -

<?php
   $dbhost = 'localhost:3036'; $dbuser = 'root';
   $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl ORDER BY product_manufacturer DESC'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn );

   if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Product ID :{$row['product_id']} <br> ".
         "Name: {$row['product_name']} <br> ". "Manufacturer: {$row['product_manufacturer']} <br> ".
         "Ship Date : {$row['ship_date']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn);
?>

Pada pengambilan data yang berhasil, Anda akan melihat output berikut -

Product ID: 12347
Nomenclature: Orbitron 1000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 67891
Nomenclature: Zoomzoom 5000
Manufacturer: QFT Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 56789
Nomenclature: SuperBlast 400
Manufacturer: LMN Corp
Ship Date: 01/04/17
----------------------------------------------
mysql> Fetched data successfully

Dalam diskusi dan contoh sebelumnya, kami memeriksa pengambilan dari satu tabel, atau mengambil beberapa nilai dari berbagai sumber. Kebanyakan operasi data dunia nyata jauh lebih kompleks, membutuhkan agregasi, perbandingan, dan pengambilan dari beberapa tabel.

JOINsmemungkinkan penggabungan dua tabel atau lebih menjadi satu objek. Mereka digunakan melalui pernyataan SELECT, UPDATE, dan DELETE.

Tinjau sintaks umum dari pernyataan yang menggunakan JOIN seperti yang ditunjukkan di bawah ini -

SELECT column
FROM table_name1
INNER JOIN table_name2
ON table_name1.column = table_name2.column;

Perhatikan sintaks lama untuk JOINS yang digunakan gabungan implisit dan tanpa kata kunci. Anda dapat menggunakan klausa WHERE untuk mencapai gabungan, tetapi kata kunci berfungsi paling baik untuk keterbacaan, pemeliharaan, dan praktik terbaik.

Gabung datang dalam berbagai bentuk seperti gabungan kiri, gabungan kanan, atau gabungan dalam. Berbagai jenis gabungan menawarkan berbagai jenis agregasi berdasarkan nilai atau karakteristik bersama.

Gunakan JOIN baik pada command prompt atau dengan skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan pernyataan standar -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed

mysql> SELECT products.ID_number, products.Nomenclature, inventory.inventory_ct
   FROM products
   INNER JOIN inventory
   ON products.ID_numbeer = inventory.ID_number;
+-------------+----------------+-----------------+
| ID_number   | Nomenclature   | Inventory Count |
+-------------+----------------+-----------------+
| 12345       | Orbitron 4000  | 150             |
+-------------+----------------+-----------------+
| 12346       | Orbitron 3000  | 200             |
+-------------+----------------+-----------------+
| 12347       | Orbitron 1000  | 0               |
+-------------+----------------+-----------------+

Script PHP Menggunakan JOIN

Menggunakan mysql_query() berfungsi untuk melakukan operasi gabungan -

<?php
   $dbhost = 'localhost:3036'; $dbuser = 'root';
   $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT a.product_id, a.product_manufacturer, b.product_count FROM products_tbl a, pcount_tbl b WHERE a.product_manufacturer = b.product_manufacturer'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn );

   if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Manufacturer:{$row['product_manufacturer']} <br> ".
         "Count: {$row['product_count']} <br> ". "Product ID: {$row['product_id']} <br> ".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Pada pengambilan data yang berhasil, Anda akan melihat output berikut -

ID Number: 12345
Nomenclature: Orbitron 4000
Inventory Count: 150
--------------------------------------
ID Number: 12346
Nomenclature: Orbitron 3000
Inventory Count: 200
--------------------------------------
ID Number: 12347
Nomenclature: Orbitron 1000
Inventory Count: 0
--------------------------------------
mysql> Fetched data successfully

Saat bekerja dengan nilai NULL, ingatlah bahwa itu adalah nilai yang tidak diketahui. Mereka bukan string kosong atau nol, yang merupakan nilai yang valid. Dalam pembuatan tabel, spesifikasi kolom memungkinkan pengaturan mereka untuk menerima nilai null, atau menolaknya. Cukup gunakan klausa NULL atau NOT NULL. Ini memiliki aplikasi dalam kasus informasi catatan hilang seperti nomor ID.

Variabel yang ditentukan pengguna memiliki nilai NULL hingga penugasan eksplisit. Parameter rutin yang disimpan dan variabel lokal memungkinkan pengaturan nilai NULL. Ketika variabel lokal tidak memiliki nilai default, itu memiliki nilai NULL.

NULL tidak membedakan huruf besar / kecil, dan memiliki alias berikut -

  • TIDAK DIKETAHUI (nilai boolean)
  • \N

Operator NULL

Operator perbandingan standar tidak dapat digunakan dengan NULL (misalnya, =,>,> =, <=, <, atau! =) Karena semua perbandingan dengan nilai NULL mengembalikan NULL, bukan true atau false. Perbandingan dengan NULL atau kemungkinan mengandungnya harus menggunakan operator “<=>” (NULL-SAFE).

Operator lain yang tersedia adalah -

  • IS NULL - Ini menguji nilai NULL.

  • IS NOT NULL - Ini menegaskan tidak adanya nilai NULL.

  • ISNULL - Ini mengembalikan nilai 1 saat menemukan nilai NULL, dan 0 jika tidak ada.

  • COALESCE - Ini mengembalikan nilai non-NULL pertama dari daftar, atau mengembalikan nilai NULL jika tidak ada satu.

Menyortir Nilai NULL

Dalam operasi pengurutan, nilai NULL memiliki nilai terendah, sehingga urutan DESC menghasilkan nilai NULL di bagian bawah. MariaDB memungkinkan pengaturan nilai yang lebih tinggi untuk nilai NULL.

Ada dua cara untuk melakukan ini seperti yang ditunjukkan di bawah ini -

SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;

Cara lain -

SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;

Fungsi NULL

Fungsi umumnya mengeluarkan NULL ketika parameter apa pun adalah NULL. Namun, ada fungsi yang dirancang khusus untuk mengelola nilai NULL. Mereka adalah -

  • IFNULL()- Jika ekspresi pertama bukan NULL, ia mengembalikannya. Saat mengevaluasi ke NULL, ia mengembalikan ekspresi kedua.

  • NULLIF() - Ia mengembalikan NULL ketika ekspresi yang dibandingkan sama, jika tidak, ia mengembalikan ekspresi pertama.

Fungsi seperti SUM dan AVG mengabaikan nilai NULL.

Memasukkan Nilai NULL

Saat memasukkan nilai NULL di kolom yang dinyatakan NOT NULL, kesalahan terjadi. Dalam mode SQL default, kolom NOT NULL akan memasukkan nilai default berdasarkan tipe data.

Jika suatu bidang adalah TIMESTAMP, AUTO_INCREMENT, atau kolom virtual, MariaDB mengelola nilai NULL secara berbeda. Penyisipan di kolom AUTO_INCREMENT menyebabkan nomor berikutnya dalam urutan disisipkan di tempatnya. Di bidang TIMESTAMP, MariaDB menetapkan stempel waktu saat ini sebagai gantinya. Di kolom virtual, topik yang dibahas nanti dalam tutorial ini, nilai default ditetapkan.

Indeks UNIQUE dapat menampung banyak nilai NULL, namun kunci primer tidak boleh NULL.

Nilai NULL dan Perintah Alter

Saat Anda menggunakan perintah ALTER untuk mengubah kolom, jika spesifikasi NULL tidak ada, MariaDB secara otomatis memberikan nilai.

Di luar pencocokan pola yang tersedia dari klausa LIKE, MariaDB menawarkan pencocokan berbasis ekspresi reguler melalui operator REGEXP. Operator melakukan pencocokan pola untuk ekspresi string berdasarkan pola yang diberikan.

MariaDB 10.0.5 memperkenalkan Ekspresi Reguler PCRE, yang secara dramatis meningkatkan cakupan pencocokan ke dalam area seperti pola rekursif, pernyataan prakiraan, dan banyak lagi.

Tinjau penggunaan sintaks operator REGEXP standar yang diberikan di bawah ini -

SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';

REGEXP mengembalikan 1 untuk kecocokan pola atau 0 jika tidak ada satu pun.

Opsi sebaliknya ada dalam bentuk NOT REGEXP. MariaDB juga menawarkan sinonim untuk REGEXP dan NOT REGEXP, RLIKE dan NOT RLIKE, yang dibuat untuk alasan kompatibilitas.

Pola yang dibandingkan dapat berupa string literal atau hal lain seperti kolom tabel. Dalam string, ia menggunakan sintaks escape C, jadi gandakan karakter “\” apa pun. REGEXP juga peka huruf besar / kecil, dengan pengecualian string biner.

Tabel pola yang mungkin, yang dapat digunakan diberikan di bawah ini -

Sr Tidak Pola & Deskripsi
1

^

Ini cocok dengan awal string.

2

$

Ini cocok dengan ujung string.

3

.

Ini cocok dengan satu karakter.

4

[...]

Itu cocok dengan karakter apa pun dalam tanda kurung.

5

[^...]

Itu cocok dengan semua karakter yang tidak terdaftar dalam tanda kurung.

6

p1|p2|p3

Ini cocok dengan salah satu pola.

7

*

Ini cocok dengan 0 atau lebih instance dari elemen sebelumnya.

8

+

Ini cocok dengan 1 atau lebih contoh dari elemen sebelumnya.

9

{n}

Ini cocok dengan n contoh dari elemen sebelumnya.

10

{m,n}

Ini cocok dengan m ke n instance dari elemen sebelumnya.

Tinjau contoh pencocokan pola yang diberikan di bawah ini -

Produk yang dimulai dengan "pr" -

SELECT name FROM product_tbl WHERE name REGEXP '^pr';

Produk yang diakhiri dengan "na" -

SELECT name FROM product_tbl WHERE name REGEXP 'na$';

Produk dimulai dengan vokal -

SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';

Transaksi adalah operasi grup yang berurutan. Mereka berfungsi sebagai satu unit, dan tidak berhenti sampai semua operasi dalam grup berhasil dijalankan. Kegagalan tunggal dalam grup menyebabkan seluruh transaksi gagal, dan menyebabkannya tidak berdampak pada database.

Transaksi sesuai dengan ACID (Atomicity, Consistency, Isolation, and Durability) -

  • Atomicity - Ini memastikan keberhasilan semua operasi dengan membatalkan kegagalan dan mengembalikan perubahan.

  • Consistency - Ini memastikan database menerapkan perubahan pada transaksi yang berhasil.

  • Isolation - Ini memungkinkan operasi transaksi transaksi independen.

  • Durability - Ini memastikan kelangsungan transaksi yang berhasil jika terjadi kegagalan sistem.

Di bagian atas pernyataan transaksi adalah pernyataan MULAI TRANSAKSI diikuti oleh pernyataan COMMIT dan ROLLBACK -

  • MULAI TRANSAKSI memulai transaksi.

  • COMMIT menyimpan perubahan pada data.

  • ROLLBACK mengakhiri transaksi, menghancurkan semua perubahan.

Pada transaksi yang berhasil, COMMIT bertindak. Jika gagal, ROLLBACK bertindak.

Note- Beberapa pernyataan menyebabkan komit implisit, dan juga menyebabkan kesalahan saat digunakan dalam transaksi. Contoh pernyataan tersebut termasuk, tetapi tidak terbatas pada CREATE, ALTER, dan DROP.

Transaksi MariaDB juga menyertakan opsi seperti SAVEPOINT dan LOCK TABLES. SAVEPOINT menetapkan titik pemulihan untuk digunakan dengan ROLLBACK. LOCK TABLES memungkinkan pengontrolan akses ke tabel selama sesi untuk mencegah modifikasi selama periode waktu tertentu.

Variabel AUTOCOMMIT memberikan kontrol atas transaksi. Pengaturan 1 memaksa semua operasi dianggap transaksi yang berhasil, dan pengaturan 0 menyebabkan persistensi perubahan hanya terjadi pada pernyataan COMMIT eksplisit.

Struktur Transaksi

Struktur umum laporan transaksi terdiri dari dimulai dengan MULAI TRANSAKSI. Langkah selanjutnya adalah memasukkan satu atau lebih perintah / operasi, memasukkan pernyataan yang memeriksa kesalahan, memasukkan pernyataan ROLLBACK untuk mengelola kesalahan yang ditemukan dan terakhir memasukkan pernyataan COMMIT untuk menerapkan perubahan pada operasi yang berhasil.

Tinjau contoh yang diberikan di bawah ini -

START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;

Perintah ALTER menyediakan cara untuk mengubah struktur tabel yang sudah ada, yang berarti modifikasi seperti menghapus atau menambahkan kolom, mengubah indeks, mengubah tipe data, atau mengubah nama. ALTER juga menunggu untuk menerapkan perubahan ketika kunci metadata aktif.

Menggunakan ALTER untuk Memodifikasi Kolom

ALTER dipasangkan dengan DROP menghapus kolom yang ada. Namun, gagal jika kolom adalah satu-satunya kolom yang tersisa.

Tinjau contoh yang diberikan di bawah ini -

mysql> ALTER TABLE products_tbl DROP version_num;

Gunakan ALTER ... pernyataan ADD untuk menambahkan kolom -

mysql> ALTER TABLE products_tbl ADD discontinued CHAR(1);

Gunakan kata kunci PERTAMA dan SETELAH untuk menentukan penempatan kolom -

ALTER TABLE products_tbl ADD discontinued CHAR(1) FIRST;
ALTER TABLE products_tbl ADD discontinued CHAR(1) AFTER quantity;

Perhatikan kata kunci FIRST dan AFTER hanya berlaku untuk ALTER ... pernyataan ADD. Selanjutnya, Anda harus menjatuhkan tabel dan kemudian menambahkannya untuk mengubah posisinya.

Ubah definisi kolom atau nama dengan menggunakan klausa MODIFY atau CHANGE dalam pernyataan ALTER. Klausa memiliki efek yang serupa, tetapi menggunakan sintaks yang sangat berbeda.

Tinjau contoh PERUBAHAN yang diberikan di bawah ini -

mysql> ALTER TABLE products_tbl CHANGE discontinued status CHAR(4);

Dalam pernyataan menggunakan CHANGE, tentukan kolom asli dan kemudian kolom baru yang akan menggantikannya. Tinjau contoh MODIFY di bawah -

mysql> ALTER TABLE products_tbl MODIFY discontinued CHAR(4);

Perintah ALTER juga memungkinkan untuk mengubah nilai default. Tinjau contoh -

mysql> ALTER TABLE products_tbl ALTER discontinued SET DEFAULT N;

Anda juga dapat menggunakannya untuk menghapus batasan default dengan memasangkannya dengan klausa DROP -

mysql> ALTER TABLE products_tbl ALTER discontinued DROP DEFAULT;

Menggunakan ALTER untuk Memodifikasi Tabel

Ubah tipe tabel dengan klausa TYPE -

mysql> ALTER TABLE products_tbl TYPE = INNODB;

Ubah nama tabel dengan kata kunci RENAME -

mysql> ALTER TABLE products_tbl RENAME TO products2016_tbl;

Indeks adalah alat untuk mempercepat pengambilan catatan. Indeks memunculkan entri untuk setiap nilai dalam kolom yang diindeks.

Ada empat jenis indeks -

  • Primary (satu catatan mewakili semua catatan)

  • Unique (satu catatan mewakili banyak catatan)

  • Plain

  • Full-Text (memungkinkan banyak opsi dalam pencarian teks).

Istilah "kunci" dan "indeks" identik dalam penggunaan ini.

Indeks diasosiasikan dengan satu atau lebih kolom, dan mendukung pencarian cepat dan organisasi rekaman yang efisien. Saat membuat indeks, pertimbangkan kolom mana yang sering digunakan dalam kueri Anda. Kemudian buat satu atau beberapa indeks pada mereka. Selain itu, lihat indeks pada dasarnya sebagai tabel kunci utama.

Meskipun indeks mempercepat pencarian atau pernyataan SELECT, mereka membuat penyisipan dan pembaruan menarik karena melakukan operasi pada tabel dan indeks.

Buat Indeks

Anda dapat membuat indeks melalui pernyataan CREATE TABLE ... INDEX atau pernyataan CREATE INDEX. Opsi terbaik yang mendukung keterbacaan, pemeliharaan, dan praktik terbaik adalah CREATE INDEX.

Tinjau sintaks umum Indeks yang diberikan di bawah ini -

CREATE [UNIQUE or FULLTEXT or...] INDEX index_name ON table_name column;

Tinjau contoh penggunaannya -

CREATE UNIQUE INDEX top_sellers ON products_tbl product;

Jatuhkan Indeks

Anda dapat menghapus indeks dengan DROP INDEX atau ALTER TABLE ... DROP. Opsi terbaik yang mendukung keterbacaan, pemeliharaan, dan praktik terbaik adalah DROP INDEX.

Tinjau sintaks umum Drop Index yang diberikan di bawah ini -

DROP INDEX index_name ON table_name;

Tinjau contoh penggunaannya -

DROP INDEX top_sellers ON product_tbl;

Ubah nama Indeks

Ubah nama indeks dengan pernyataan ALTER TABLE. Tinjau sintaks umumnya yang diberikan di bawah ini -

ALTER TABLE table_name DROP INDEX index_name, ADD INDEX new_index_name;

Tinjau contoh penggunaannya -

ALTER TABLE products_tbl DROP INDEX top_sellers, ADD INDEX top_2016sellers;

Mengelola Indeks

Anda perlu memeriksa dan melacak semua indeks. Gunakan SHOW INDEX untuk mendaftar semua indeks yang ada yang terkait dengan tabel tertentu. Anda dapat menyetel format konten yang ditampilkan dengan menggunakan opsi seperti "\ G", yang menentukan format vertikal.

Tinjau contoh berikut -

mysql > SHOW INDEX FROM products_tbl\G

Statistik Tabel

Indeks banyak digunakan untuk mengoptimalkan kueri yang diberikan akses yang lebih cepat ke rekaman, dan statistik yang disediakan. Namun, banyak pengguna menganggap pemeliharaan indeks tidak praktis. MariaDB 10.0 membuat tabel statistik independen mesin penyimpanan tersedia, yang menghitung statistik data untuk setiap tabel di setiap mesin penyimpanan, dan bahkan statistik untuk kolom yang tidak diindeks.

Beberapa operasi bisa mendapatkan keuntungan dari tabel sementara karena kecepatan atau data yang dapat dibuang. Masa pakai tabel sementara berakhir pada penghentian sesi apakah Anda menggunakannya dari command prompt, dengan skrip PHP, atau melalui program klien. Itu juga tidak muncul dalam sistem dengan cara yang khas. Perintah SHOW TABLES tidak akan menampilkan daftar yang berisi tabel sementara.

Buat Tabel Sementara

Kata kunci TEMPORARY dalam pernyataan CREATE TABLE memunculkan tabel sementara. Tinjau contoh yang diberikan di bawah ini -

mysql>CREATE TEMPORARY TABLE order (
   item_name VARCHAR(50) NOT NULL
   , price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   , quantity INT UNSIGNED NOT NULL DEFAULT 0
);

Dalam membuat tabel sementara, Anda dapat mengkloning tabel yang sudah ada, yang berarti semua karakteristik umumnya, dengan klausa LIKE. Pernyataan CREATE TABLE yang digunakan untuk menelurkan tabel sementara tidak akan melakukan transaksi sebagai hasil dari kata kunci TEMPORARY.

Meskipun tabel sementara berdiri terpisah dari non-sementara dan jatuh di akhir sesi, mereka mungkin memiliki konflik tertentu -

  • Mereka terkadang bertentangan dengan tabel sementara hantu dari sesi yang kedaluwarsa.

  • Mereka terkadang bertentangan dengan nama bayangan tabel non-sementara.

Note - Tabel sementara diizinkan memiliki nama yang sama dengan tabel non-sementara yang sudah ada karena MariaDB melihatnya sebagai referensi perbedaan.

Administrasi

MariaDB membutuhkan pemberian hak kepada pengguna untuk membuat tabel sementara. Gunakan pernyataan GRANT untuk memberikan hak istimewa ini kepada pengguna non-admin.

GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';

Jatuhkan Tabel Sementara

Meskipun tabel sementara pada dasarnya dihapus di akhir sesi, Anda memiliki opsi untuk menghapusnya. Menghapus tabel sementara memerlukan penggunaan kata kunci TEMPORARY, dan praktik terbaik menyarankan untuk menghapus tabel sementara sebelum tabel non-sementara.

mysql> DROP TABLE order;

Beberapa situasi memerlukan pembuatan salinan yang tepat dari tabel yang ada. Pernyataan CREATE ... SELECT tidak dapat menghasilkan keluaran ini karena mengabaikan hal-hal seperti indeks dan nilai default.

Prosedur untuk menduplikasi tabel adalah sebagai berikut -

  • Memanfaatkan SHOW CREATE TABLE untuk menghasilkan pernyataan CREATE TABLE yang merinci seluruh struktur tabel sumber.

  • Edit pernyataan tersebut untuk memberi nama baru pada tabel, dan jalankan.

  • Gunakan pernyataan INSERT INTO ... SELECT jika Anda juga perlu menyalin data tabel.

mysql> INSERT INTO inventory_copy_tbl (
   product_id,product_name,product_manufacturer,ship_date)
   
   SELECT product_id,product_name,product_manufacturer,ship_date,
   FROM inventory_tbl;

Metode lain untuk membuat duplikat menggunakan pernyataan CREATE TABLE AS. Pernyataan menyalin semua kolom, definisi kolom, dan mengisi salinan dengan data tabel sumber.

Tinjau sintaksnya yang diberikan di bawah ini -

CREATE TABLE clone_tbl AS
   SELECT columns
   FROM original_tbl
   WHERE conditions];

Tinjau contoh penggunaannya di bawah -

CREATE TABLE products_copy_tbl AS
   SELECT *
   FROM products_tbl;

Dalam versi 10.0.3, MariaDB memperkenalkan mesin penyimpanan yang dikenal sebagai sequence. Ad hocnya menghasilkan urutan integer untuk operasi, dan kemudian berhenti. Urutan berisi bilangan bulat positif dalam urutan turun atau naik, dan menggunakan nilai awal, akhir, dan kenaikan.

Itu tidak mengizinkan penggunaan dalam beberapa kueri, hanya dalam kueri aslinya karena sifatnya yang virtual (tidak ditulis ke disk). Namun, tabel urutan dapat diubah menjadi tabel standar melalui perintah ALTER. Jika tabel yang dikonversi dihapus, tabel urutan masih ada. Urutan juga tidak dapat menghasilkan angka negatif atau berputar di minimum / maksimum.

Memasang Mesin Urutan

Menggunakan urutan memerlukan penginstalan mesin urutan, yang didistribusikan MariaDB sebagai plugin, bukan biner. Instal dengan perintah berikut -

INSTALL SONAME "ha_sequence";

After installation, verify it −

SHOW ENGINES\G

Remember that after engine installation, you cannot create a standard table with a name that uses sequence syntax, but you can create a temporary table with a sequence-syntax name.

Creating Sequence

There are two methods of sequence creation −

  • Create a table and use the AUTO_INCREMENT attribute to define a column as auto-increment.

  • Use an existing database and use a sequence SELECT query to produce a sequence. The query uses seq_ [FROM] _to_[TO] or seq_[FROM]_to_[TO]_step_STEP syntax.

Best practices prefer the use of the second method. Review an example of a sequence creation given below −

SELECT * FROM seq_77_to_99;

Sequences have many uses −

  • Locate missing values within a column to protect against related issues in operations −

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  • Construct a combination of values −

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  • Find multiples of a number −

SELECT seq FROM seq_3_to_100_step_4;
  • Construct a date sequence for use in applications like booking systems.
  • Construct a time sequence.

MariaDB, as discussed in earlier lessons, allows duplicate records and tables in some situations. Some of these duplicates are not in fact duplicates due to distinct data or object types, or as a result of unique lifespan or storage of the operation object. These duplicates also typically pose no problems.

In some situations, duplicates do cause problems, and they often appear due to implicit actions or the lenient policy of a MariaDB command. There are ways to control this issue, find duplicates, delete duplicates, and prevent duplicate creation.

Strategies and Tools

There are four key ways to manage duplicates −

  • Fish for them with JOIN, and delete them with a temporary table.

  • Use INSERT...ON DUPLICATE KEY UPDATE to update on discovery of a duplicate.

  • Use DISTINCT to prune the results of a SELECT statement and remove duplicates.

  • Use INSERT IGNORE to stop insertion of duplicates.

Using Join with a Temporary Table

Simply perform a semi-join like an inner join, and then remove the duplicates found with a temporary table.

Using INSERT

When INSERT...ON DUPLICATE KEY UPDATE discovers a duplicate unique or primary key, it performs an update. On discovery of multiple unique keys, it updates only the first. Hence, do not use it on tables with multiple unique indices.

Review the following example, which reveals what happens in a table containing indexed values on insertion into a populated field −

INSERT INTO add_dupl VALUES (1,'Apple');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

Note − If it finds no key, an INSERT...ON DUPLICATE KEY UPDATE statement executes like a normal insert statement.

Using DISTINCT

DISTINCT clauses remove duplicates from results. The general syntax for a DISTINCT clause is as follows −

SELECT DISTINCT fields
FROM table
[WHERE conditions];

Note − The results of a statement with a DISTINCT clause −

  • When using one expression, it returns unique values for it.

  • When using multiple expressions, it returns unique combinations.

  • It does not ignore NULL values; thus, results also contain NULLs as unique values.

Review the following statement using a DISTINCT clause for a single expression −

SELECT DISTINCT product_id
FROM products
WHERE product_name = 'DustBlaster 5000';

Review the following example using multiple expressions −

SELECT DISTINCT product_name, product_id
FROM products
WHERE product_id < 30

Using INSERT IGNORE

An INSERT IGNORE statement instructs MariaDB to cancel insertion on discovery of a duplicate record. Review an example of its use given below −

mysql> INSERT IGNORE INTO customer_tbl (LN, FN)
   VALUES( 'Lex', 'Luther');

Also, note the logic behind duplicates. Some tables require duplicates based on the nature of that table data. Accommodate that need in your strategy for managing duplicate records.

The simple act of accepting user input opens the door to exploits. The problem stems primarily from the logical management of data, but luckily, it is fairly easy to avoid these major flaws.

Opportunities for SQL injection typically occur on users entering data like a name, and the code logic failing to analyze this input. The Code, instead, allows an attacker to insert a MariaDB statement, which will run on the database.

Always consider data entered by users, suspect and are in need of strong validation prior to any processing. Perform this validation through pattern matching. For example, if the expected input is a username, restrict entered characters to alphanumeric chars and underscores, and to a certain length. Review an example given below −

if(check_match("/^\w{8,20}$/", $_GET['user_name'], $matches)) {
   $result = mysql_query("SELECT * FROM system_users WHERE user_name = $matches[0]");
} else {
   echo "Invalid username";
}

Also, utilize the REGEXP operator and LIKE clauses in creating input constraints.

Consider all types of necessary explicit control of input such as −

  • Control the escape characters used.

  • Control the specific appropriate data types for input. Limit input to the necessary data type and size.

  • Control the syntax of entered data. Do not allow anything outside of the needed pattern.

  • Control the terms permitted. Blacklist SQL keywords.

You may not know the dangers of injection attacks, or may consider them insignificant, but they top the list of security concerns. Furthermore, consider the effect of these two entries −

1=1
-or-
*

Code allowing either of those to be entered along with the right command may result in revealing all user data on the database or deleting all data on the database, and neither injection is particularly clever. In some cases, attackers do not even spend time examining holes; they perform blind attacks with simple input.

Also, consider the pattern matching and regular expression tools provided by any programming/scripting language paired with MariaDB, which provide more control, and sometimes better control.

Data serves as the foundation of business and operations, and with various possible threats (e.g., attackers, system failures, bad upgrades, and maintenance errors) out there, backups remain critical. These backups take many forms, and many options exist for creating them with an even wider set of options within those processes. The important things to remember are the database type, the critical information, and the structure involved. This information determines your best option.

OPTIONS

The main options for backups include logical backups and physical backups. Logical backups hold SQL statements for restoring data. Physical backups contain copies of data.

  • Logical backups offer the flexibility of restoring data on another machine with a different configuration in contrast to physical backups, which are often limited to the same machine and database type. Logical backups occur at database and table level, and physical occur at directory and file level.

  • Physical backups are smaller in size than logical, and also take less time to perform and restore. Physical backups also include log and configuration files, but logical backups do not.

Alat Cadangan

Alat utama yang digunakan untuk backup MariaDB adalah mysqldump. Ia menawarkan backup logis dan fleksibilitas. Ini juga membuktikan pilihan yang sangat baik untuk database kecil.Mysqldumpmembuang data ke dalam SQL, CSV, XML, dan banyak format lainnya. Keluarannya tidak mempertahankan prosedur, tampilan, dan kejadian yang tersimpan tanpa instruksi eksplisit.

Ada tiga opsi untuk mysqldump cadangan -

  • Raw data - Buang tabel sebagai file data mentah melalui opsi --tab, yang juga menentukan tujuan file -

$ mysqldump -u root -p --no-create-info \
   --tab=/tmp PRODUCTS products_tbl
  • Data/Definitions export- Opsi ini memungkinkan satu atau beberapa tabel untuk diekspor ke sebuah file, dan mendukung pencadangan semua database yang ada di mesin host. Perhatikan contoh mengekspor konten atau definisi ke file

$ mysqldump -u root -p PRODUCTS products_tbl > export_file.txt
  • Transfer - Anda juga dapat mengeluarkan database dan tabel ke host lain

$ mysqldump -u root -p database_name \
   | mysql -h other-host.com database_name

Menggunakan Pernyataan SELECT ... INTO OUTFILE

Pilihan lain untuk mengekspor data menggunakan pernyataan SELECT ... INTO OUTFILE. Opsi sederhana ini menghasilkan tabel menjadi file teks berformat sederhana -

mysql> SELECT * FROM products_tbl
   -> INTO OUTFILE '/tmp/products.txt';

Atributnya memungkinkan pemformatan file ke spesifikasi pilihan Anda.

Perhatikan kualitas berikut dari pernyataan ini -

  • Nama file harus menentukan lokasi yang Anda inginkan untuk keluaran.

  • Anda memerlukan hak istimewa file MariaDB untuk menjalankan pernyataan tersebut.

  • Nama file keluaran harus unik.

  • Anda membutuhkan kredensial login di host.

  • Di lingkungan UNIX, file keluaran dapat dibaca di seluruh dunia, tetapi kepemilikan servernya memengaruhi kemampuan Anda untuk menghapusnya. Pastikan Anda memiliki hak istimewa.

Menggunakan CONNECT di Backup

Penangan CONNECT memungkinkan mengekspor data. Ini terbukti berguna terutama dalam situasi ketika operasi SELECT ... INTO OUTFILE tidak mendukung format file.

Tinjau contoh berikut -

create table products
engine = CONNECT table_type = XML file_name = 'products.htm' header = yes
option_list = 'name = TABLE,coltype = HTML,attribute = border = 1;cellpadding = 5'

select plugin_name handler, plugin_version version, plugin_author
author, plugin_description description, plugin_maturity maturity
from information_schema.plugins where plugin_type = 'STORAGE ENGINE';

Alat Lainnya

Opsi lain untuk pencadangan adalah sebagai berikut -

  • XtraBackup- Opsi ini menargetkan database XtraDB / InnoDB dan bekerja dengan mesin penyimpanan apa pun. Pelajari lebih lanjut tentang alat ini dari situs resmi Percona.

  • Snapshots- Beberapa filesystem memungkinkan snapshot. Prosesnya terdiri dari membersihkan tabel dengan kunci baca, memasang snapshot, membuka kunci tabel, menyalin snapshot, dan kemudian melepas snapshot.

  • LVM- Metode populer ini menggunakan skrip Perl. Ia mendapat kunci baca di setiap tabel dan membuang cache ke disk. Kemudian ia mendapat snapshot dan membuka kunci tabel. Konsultasikan dengan petugasmylvmbackup situs web untuk informasi lebih lanjut.

  • TokuBackup- Solusi yang disediakan oleh Percona ini menyediakan cadangan panas dengan mempertimbangkan masalah dan batasan opsi cadangan InnoDB. Ini menghasilkan salinan file suara transaksional sementara aplikasi terus memanipulasinya. Kunjungi situs web Percona untuk informasi lebih lanjut ..

Pertimbangan INNODB

InnoDB menggunakan kumpulan buffer untuk peningkatan kinerja. Dalam cadangan, konfigurasikan InnoDB untuk menghindari menyalin seluruh tabel ke kumpulan buffer karena cadangan logis biasanya melakukan pemindaian tabel lengkap.

Dalam bab ini, kita akan mempelajari tentang berbagai metode pemuatan cadangan. Mengembalikan database dari cadangan adalah proses yang sederhana dan terkadang sangat lama.

Ada tiga opsi dalam memuat data: pernyataan LOAD DATA, mysqlimport, dan pemulihan mysqldump sederhana.

Menggunakan LOAD DATA

Pernyataan LOAD DATA berfungsi sebagai pemuat massal. Tinjau contoh penggunaannya yang memuat file teks -

mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl;

Perhatikan kualitas pernyataan LOAD DATA berikut -

  • Gunakan kata kunci LOKAL untuk mencegah MariaDB melakukan pencarian host secara mendalam, dan gunakan jalur yang sangat spesifik.

  • Pernyataan tersebut mengasumsikan format yang terdiri dari baris yang diakhiri oleh umpan baris (baris baru) dan nilai data yang dipisahkan oleh tab.

  • Gunakan klausa FIELDS untuk secara eksplisit menentukan pemformatan bidang pada satu baris. Gunakan klausa LINES untuk menentukan akhiran baris. Tinjau contoh di bawah.

mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl
   FIELDS TERMINATED BY '|'
   LINES TERMINATED BY '\n';
  • Pernyataan tersebut mengasumsikan kolom dalam datafile menggunakan urutan tabel yang sama. Jika Anda perlu mengatur urutan yang berbeda, Anda dapat memuat file sebagai berikut -

mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl (c, b, a);

Menggunakan MYSQLIMPORT

Alat mysqlimport bertindak sebagai pembungkus LOAD DATA yang memungkinkan operasi yang sama dari baris perintah.

Muat data sebagai berikut -

$ mysqlimport -u root -p --local database_name source_file.txt

Tentukan pemformatan sebagai berikut -

$ mysqlimport -u root -p --local --fields-terminated-by="|" \
   --lines-terminated-by="\n" database_name source_file.txt

Menggunakan --columns opsi untuk menentukan urutan kolom -

$ mysqlimport -u root -p --local --columns=c,b,a \
   database_name source_file.txt

Menggunakan MYSQLDUMP

Mengembalikan dengan mysqldump membutuhkan pernyataan sederhana ini untuk memuat file dump kembali ke host -

shell> mysql database_name < source_file.sql

KARAKTER DAN KUTIPAN KHUSUS

Dalam pernyataan LOAD DATA, kutipan dan karakter khusus mungkin tidak diinterpretasikan dengan benar. Pernyataan tersebut mengasumsikan nilai yang tidak dikutip dan memperlakukan garis miring terbalik sebagai karakter pelolosan. Gunakan klausa FIELDS untuk menentukan pemformatan. Arahkan ke kutipan dengan “TERLAMPIRAN OLEH,” yang menyebabkan penghapusan kutipan dari nilai data. Ubah pelolosan dengan "ESCAPED BY".

Bab ini berisi daftar fungsi yang paling sering digunakan, menawarkan definisi, penjelasan, dan contoh.

Fungsi Agregat MariaDB

Fungsi agregat yang paling sering digunakan diberikan di bawah ini -

Sr Tidak Nama & Deskripsi
1

COUNT

Ini menghitung jumlah catatan.

Example - PILIH JUMLAH (*) DARI customer_table;

2

MIN

Ini mengungkapkan nilai minimum dari satu set catatan.

Example - PILIH organisasi, MIN (akun) DARI kontrak GROUP BY organisasi;

3

MAX

Ini mengungkapkan nilai maksimum dari satu set catatan.

Example - PILIH organisasi, MAX (ukuran_akun) DARI kontrak GROUP BY organisasi;

4

AVG

Ini menghitung nilai rata-rata dari satu set catatan.

Example - PILIH AVG (ukuran_kun) DARI kontrak;

5

SUM

Ini menghitung jumlah dari satu set catatan.

Example - PILIH JUMLAH (ukuran_kun) DARI kontrak;

Perhitungan Usia MariaDB

Itu TIMESTAMPDIFF fungsi menyediakan cara untuk menghitung usia -

SELECT CURDATE() AS today;
SELECT ID, DOB, TIMESTAMPDIFF(YEAR,DOB,'2015-07-01') AS age FROM officer_info;

MariaDB String Concatenation

Itu CONCATfungsi mengembalikan string yang dihasilkan setelah operasi penggabungan. Anda dapat menggunakan satu atau lebih argumen. Tinjau sintaksnya yang diberikan di bawah ini -

SELECT CONCAT(item, item,...);

Tinjau contoh berikut -

SELECT CONCAT('Ram', 'bu', 'tan');
Output:Rambutan

Fungsi Tanggal / Waktu MariaDB

Diberikan di bawah ini adalah fungsi tanggal penting -

Sr Tidak Nama & Deskripsi
1

CURDATE()

Ini mengembalikan tanggal dalam format tttt-bb-hh atau tttt.

Example - PILIH CURDATE ();

2

DATE()

Ini mengembalikan tanggal dalam berbagai format.

Example −CREATE TABLE product_release_tbl (x DATE);

3

CURTIME()

Ini mengembalikan waktu dalam format HH: MM: SS atau HHMMSS.uuuuuu.

Example - PILIH CURTIME ();

4

DATE_SUB()

Ini menambah atau mengurangi sejumlah hari dari tanggal yang ditentukan.

Example - PILIH DATE_SUB ('2016-02-08', INTERVAL 60 DAY);

5

DATEDIFF()

Ini menentukan hari antara dua tanggal.

Example - PILIH DATEDIFF ('2016-01-01 23:59:59', '2016-01-03');

6

DATE ADD()

Ini menambah atau mengurangi unit waktu ke / dari tanggal dan waktu.

Example - PILIH DATE_ADD ('04-01 2016 23:59:59', INTERVAL 22 DETIK);

7

EXTRACT()

Ini mengekstrak unit dari tanggal.

Example - PILIH EKSTRAK (TAHUN DARI '2016-01-08');

8

NOW()

Ini mengembalikan tanggal dan waktu saat ini dalam format tttt-bb-hh jj: mm: dd atau yyyymmddhhmmss.uuuuuu format.

Example - PILIH SEKARANG ();

9

DATE FORMAT()

Ini memformat tanggal sesuai dengan format string yang ditentukan.

Example - PILIH DATE_FORMAT ('2016-01-09 20:20:00', '% W% M% Y');

Berikut adalah beberapa fungsi waktu yang penting -

Sr Tidak Nama & Deskripsi
1

HOUR()

Ini mengembalikan jam waktu, atau jam yang telah berlalu.

Example - PILIH JAM ('19: 17: 09 ');

2

LOCALTIME()

Ini berfungsi persis seperti SEKARANG ().

3

MICROSECOND()

Ini mengembalikan mikrodetik dari waktu.

Example - PILIH MICROSECOND ('16: 30: 00.543876 ');

4

MINUTE()

Ini mengembalikan menit dari waktu.

Example - PILIH MENIT ('2016-05-22 17:22:01');

5

SECOND()

Ini mengembalikan detik dari tanggal.

Example - PILIH KEDUA ('2016-03-12 16: 30: 04.000001');

6

TIME_FORMAT()

Ini memformat waktu sesuai dengan format string yang ditentukan.

Example - PILIH TIME_FORMAT ('22: 02: 20 ','% H% k% h% I% l ');

7

TIMESTAMP()

Ini memberikan stempel waktu untuk aktivitas dalam format tttt-bb-hh jj: mm: hh.

Example - BUAT TABEL pesanan_ (ID INT, tmst TIMESTAMP);

Fungsi Numerik MariaDB

Diberikan di bawah ini adalah beberapa fungsi numerik penting dalam MariaDB -

Sr Tidak Nama & Deskripsi
1

TRUNCATE()

Ini mengembalikan angka yang terpotong ke spesifikasi tempat desimal.

Example - PILIH TRUNCATE (101.222, 1);

2

COS()

Ini mengembalikan kosinus x radian.

Example - PILIH COS (PI ());

3

CEILING()

Ini mengembalikan bilangan bulat terkecil tidak di bawah x.

Example - PILIH PLAFON (2.11);

4

DEGREES()

Ini mengubah radian menjadi derajat.

Example - PILIH DERAJAT (PI ());

5

DIV()

Itu melakukan pembagian integer.

Example - PILIH 100 DIV 4;

6

EXP()

Ini mengembalikan e ke pangkat x.

Example - PILIH EXP (2);

7

FLOOR()

Ini mengembalikan bilangan bulat terbesar bukan di atas x.

Example - PILIH LANTAI (2.01);

8

LN()

Ini mengembalikan logaritma natural dari x.

Example - PILIH LN (3);

9

LOG()

Ini mengembalikan logaritma natural atau logaritma ke basis tertentu.

Example - PILIH LOG (3);

10

SQRT()

Ini mengembalikan akar kuadrat.

Example - PILIH SQRT (16);

Fungsi String MariaDB

Fungsi string penting diberikan di bawah ini -

Sr Tidak Nama & Deskripsi
1

INSTR()

Ini mengembalikan posisi contoh pertama substring.

Example - PILIH INSTR ('rambutan', 'tan');

2

RIGHT()

Ini mengembalikan karakter string paling kanan.

Example - PILIH KANAN ('rambutan', 3);

3

LENGTH()

Ini mengembalikan panjang byte dari sebuah string.

Example - PILIH PANJANG ('rambutan');

4

LOCATE()

Ini mengembalikan posisi contoh pertama substring.

Example - PILIH TEMPAT ('tan', 'rambutan');

5

INSERT()

Ini mengembalikan string, dengan substring tertentu pada posisi tertentu, yang telah dimodifikasi.

Example - PILIH INSERT ('ramputan', 4, 1, 'b');

6

LEFT()

Ini mengembalikan karakter paling kiri.

Example - PILIH KIRI ('rambutan', 3);

7

UPPER()

Ini mengubah karakter menjadi huruf besar.

Example - PILIH UPPER (nama belakang);

8

LOWER()

Ini mengubah karakter menjadi huruf kecil.

Example - PILIH RENDAH (nama belakang);

9

STRCMP()

Ini membandingkan string dan mengembalikan 0 ketika mereka sama.

Example - PILIH STRCMP ('telur', 'keju');

10

REPLACE()

Ini mengembalikan string setelah mengganti karakter.

Example - PILIH REPLACE ('sully', 'l', 'n');

11

REVERSE()

Ini membalikkan karakter dalam sebuah string.

Example - PILIH MUNDUR ('mobil balap');

12

REPEAT()

Ini mengembalikan string yang mengulangi karakter yang diberikan x kali.

Example - PILIH REPEAT ('ha', 10);

13

SUBSTRING()

Ini mengembalikan substring dari string, dimulai dari posisi x.

Example - PILIH SUBSTRING ('rambutan', 3);

14

TRIM()

Ini menghapus karakter trailing / leading dari string.

Example - PILIH PANGKAS (LEADING '_' FROM '_rambutan');