File skrip MySQL hanyalah serangkaian pernyataan MySQL di a. .sql. Pernyataan akan dieksekusi secara berurutan. Sebagai contoh, skrip berikut akan membuat database bernama sekolah, tabel bernama siswa, dan akan memasukkan beberapa data ke dalam tabel siswa. Itu hanya berisi semua pernyataan yang seharusnya saya jalankan secara normal di prompt MySQL
CREATE DATABASE school; USE school; CREATE TABLE students ( ID MEDIUMINT NOT NULL AUTO_INCREMENT, FirstName varchar(255), LastName varchar(255), PRIMARY KEY (id) ); INSERT INTO students (FirstName, LastName) VALUES ('Mike', 'Williams');
Cara menjalankan a. file skrip sql
Ada tiga (dan mungkin lebih) metode menjalankan a. skrip sql
Metode 1. Jalankan dari terminal
Kita dapat membaca pernyataan MySQL dari skrip dengan (<) operator. Login ke server host MySQL dan jalankan school.sql seperti ini
mysql -u root -p < school.sql_
Ini akan meminta Anda untuk kata sandi root MySQL
Jika Anda ingin menjalankan skrip Anda terhadap database tertentu, tambahkan nama database sebelum (mysql -u root -p < school.sql0) operator
mysql -u root -p database-name < yourscript.sql
Mari verifikasi perubahan Anda dengan masuk ke server MySQL Anda
mysql -u root -p_
Periksa apakah database sudah dibuat
SHOW DATABASES;
Keluaran
Seperti yang bisa kita lihat database sekolah telah dibuat
Mari kita lihat apa yang ada di dalam tabel yang kita buat
SELECT * FROM school.students;_
Keluaran
Metode 2. Jalankan dari prompt MySQL
Anda juga dapat menjalankan a. sql dari prompt MySQL menggunakan perintah MySQL mysql -u root -p < school.sql1. Perhatikan bahwa skrip terletak di bawah /root/
source /root/school.sql_
keluaran
CATATAN. Jika Anda ingin menjalankan skrip terhadap database tertentu, Anda mengubah database terlebih dahulu dan menjalankan source
use school; source /root/school.sql_
Metode 3. Menggunakan klien visual MySQL seperti Workbench
Aplikasi seperti MySQL Workbench menawarkan editor untuk menulis atau mengimpor skrip untuk dieksekusi
Unduh meja kerja MySQL dan sambungkan ke server database MySQL Anda
Buka File > Jalankan skrip SQL. memilih. sql untuk mengeksekusi, dan klik Jalankan
Kesimpulan
Menggunakan. skrip sql berguna saat menjalankan pernyataan SQL yang panjang. Dalam tutorial ini, kita belajar cara membuat dan mengeksekusi. sql file menggunakan metode yang berbeda
Saya memiliki file input yang berisi beberapa pernyataan SQL yang ingin saya jalankan sekaligus. Apakah ada perintah di klien mysql yang dapat melakukannya?
Salah satu cara memproses file script adalah dengan mengeksekusinya dengan perintah SOURCE dari dalam mysql
mysql> SOURCE input_fileFile harus berada di host klien tempat Anda menjalankan mysql. Nama file harus berupa nama jalur absolut yang mencantumkan nama lengkap file, atau nama jalur yang ditentukan relatif terhadap direktori tempat Anda menjalankan mysql. Misalnya, jika Anda memulai mysql di mesin Windows di C. \mysql direktori dan file skrip Anda adalah my_commands. sql di C. \scripts direktori, kedua perintah SOURCE berikut memberi tahu mysql untuk mengeksekusi pernyataan SQL dalam file
mysql> SOURCE C:\scripts\my_commands.sql;mysql> SOURCE ..\scripts\my_commands.sql;
Cara lain untuk mengeksekusi file skrip adalah dengan menamainya di baris perintah mysql. Aktifkan mysql dan gunakan < input redirection operator untuk menentukan file yang akan digunakan untuk membaca input kueri
Jika pernyataan dalam file skrip gagal dengan kesalahan, mysql mengabaikan sisa file. Untuk mengeksekusi seluruh file terlepas dari apakah terjadi kesalahan, aktifkan mysql dengan opsi --force atau -f
Saat Anda perlu menjalankan file .sql_ yang disimpan langsung dari terminal, Anda dapat menggunakan klien baris perintah mysql
Anda dapat menjalankan skrip SQL dengan atau tanpa membuka koneksi ke server MySQL
Pertama, mari kita lihat cara menjalankan file SQL saat terhubung ke server MySQL
Jalankan file SQL saat terhubung ke server
Misalnya, Anda memiliki file bernama mysql -uroot -p 0 dengan konten berikut
USE school_db; SELECT * FROM students;
Skrip akan memilih database bernama mysql -uroot -p 1 dan mengambil semua baris dari tabel mysql -uroot -p 2
Untuk menjalankan file SQL dari terminal, Anda dapat menggunakan mysql -uroot -p 3 atau perintah garis miring terbalik dan titik (mysql -uroot -p 4)
Pertama, Anda perlu terhubung ke server database MySQL Anda menggunakan perintah mysql. Berikut adalah contoh menghubungkan dengan pengguna mysql -uroot -p 6
mysql -uroot -p
Selanjutnya, masukkan kata sandi untuk mysql -uroot -p 6 pengguna Anda
Begitu masuk, gunakan perintah mysql -uroot -p _3 atau mysql -uroot -p 4 diikuti dengan path absolut ke file SQL seperti yang ditunjukkan di bawah ini
mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql
Jalur mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql _0 di atas perlu diubah menjadi jalur file SQL di komputer Anda
MySQL akan mencetak output di baris perintah jika ada. Berikut adalah contoh menjalankan file mysql -uroot -p 0 di terminal saya
mysql> source /Users/nsebhastian/Desktop/test/main.sql Database changed +----+---------------+---------+-------+--------+ | id | name | topic | score | gender | +----+---------------+---------+-------+--------+ | 1 | Mark Crane | Math | 7.00 | male | | 2 | Natalia Smith | Math | 8.00 | female | | 3 | Gary Anderson | Math | 0.01 | male | | 4 | Joe Natsume | English | 2.50 | male | | 5 | Sarah | Math | NULL | female | | 6 | Peter | English | 6.00 | male | | 7 | Nathan | English | 8.00 | male | +----+---------------+---------+-------+--------+ 7 rows in set (0.00 sec)
Dan begitulah cara Anda menjalankan file SQL dari terminal saat terhubung ke server database MySQL
Mari kita lihat bagaimana Anda dapat menjalankan file SQL tanpa harus terhubung ke server selanjutnya
Jalankan file SQL saat tidak terhubung ke server
Klien baris perintah mysql_ memiliki kemampuan untuk menjalankan skrip SQL tanpa perlu terhubung ke server database MySQL
Anda hanya perlu memberikan opsi mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql _3 diikuti oleh operator yang lebih kecil dari (mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql 4) sebagai berikut
mysql -uroot -p database_name < /path/to/file.sql
Misalnya, inilah cara menjalankan skrip mysql -uroot -p 0 yang sama tanpa terhubung ke server
mysql -uroot -p school_db < /Users/nsebhastian/Desktop/test/main.sql
Sekali lagi, klien baris perintah akan meminta kata sandi untuk menjalankan operasi
Ini contoh output di terminal saya
mysql -uroot -p school_db < /Users/nsebhastian/Desktop/test/main.sql Enter password: id name topic score gender 1 Mark Crane Math 7.00 male 2 Natalia Smith Math 8.00 female 3 Gary Anderson Math 0.01 male 4 Joe Natsume English 2.50 male 5 Sarah Math NULL female 6 Peter English 6.00 male 7 Nathan English 8.00 male
Seperti yang dapat Anda lihat dari output di atas, kumpulan hasil pernyataan mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql 6 agak berantakan dibandingkan saat Anda menjalankan skrip saat terhubung ke server
Tetapi Anda tidak akan melihat perbedaan apa pun jika skrip SQL Anda berisi mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql 7, mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql 8, atau mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql 9 pernyataan
Juga, jika Anda memiliki pernyataan mysql> source /Users/nsebhastian/Desktop/test/main.sql Database changed +----+---------------+---------+-------+--------+ | id | name | topic | score | gender | +----+---------------+---------+-------+--------+ | 1 | Mark Crane | Math | 7.00 | male | | 2 | Natalia Smith | Math | 8.00 | female | | 3 | Gary Anderson | Math | 0.01 | male | | 4 | Joe Natsume | English | 2.50 | male | | 5 | Sarah | Math | NULL | female | | 6 | Peter | English | 6.00 | male | | 7 | Nathan | English | 8.00 | male | +----+---------------+---------+-------+--------+ 7 rows in set (0.00 sec) _0 dalam file SQL Anda, Anda dapat menghilangkan mysql> source /Users/nsebhastian/Desktop/test/main.sql # or mysql> \. /Users/nsebhastian/Desktop/test/main.sql 3 dari baris perintah seperti yang ditunjukkan di bawah ini