Menggunakan Paparan MySQL pada Debian 7

Pengenalan

MySQL mempunyai ciri hebat yang dikenali sebagai "paparan". Paparan adalah pertanyaan yang disimpan. Anggap mereka sebagai alias untuk pertanyaan yang panjang. Dalam panduan ini, saya akan menunjukkan cara menggunakan pandangan untuk menyusun data dengan lebih berkesan.

Prasyarat

  • Pelayan awan Vultr SSD yang dimuatkan dengan Debian 7.
  • Pengguna dengan hak pentadbir (root).
  • Pengetahuan asas mengenai Linux, baris arahan, dan SSH.

Langkah pertama - Pasang pelayan MySQL

Memasang MySQL pada Debian 7.x sangat mudah. Pertama, kita perlu memastikan bahawa sumber kita dikemas kini dengan melaksanakan:

sudo apt-get update

Seterusnya, kita boleh memasang pelayan MySQL:

sudo apt-get install -y mysql-server

Kotak dialog akan dipaparkan yang meminta anda membuat kata laluan untuk pengguna "root". Pastikan anda mengingati kata laluan ini.

Mari mengeraskan keselamatan pemasangan kami dengan melaksanakan:

sudo mysql_secure_installation

Setelah dilaksanakan, anda akan diberi serangkaian arahan. Setiap jawapan yang harus anda pilih ditunjukkan di bawah.

...
Enter current password for root (enter for none):
OK, successfully used password, moving on...
...
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
...
Remove anonymous users? [Y/n] y
 ... Success!
...
Disallow root login remotely? [Y/n] y
 ... Success!
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
...
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...

Langkah kedua - Pasang pangkalan data sampel

Pada ketika ini, kami tidak mempunyai data pada pelayan untuk bereksperimen. Untuk tutorial ini, kami akan menggunakan pangkalan data pekerja kerana senang digunakan dan tersedia secara percuma dari laman web MySQL.

sudo wget https://launchpad.net/test-db/employees-db-1/1.0.6/+download/employees_db-full-1.0.6.tar.bz2

Kita perlu memasang bzip2supaya kita dapat mengekstrak fail tersebut.

sudo apt-get install bzip2

Ekstrak pangkalan data. Failnya cukup besar, jadi mungkin memerlukan beberapa saat.

sudo bzip2 -dfv employees_db-full-1.0.6.tar.bz2
sudo tar -xf employees_db-full-1.0.6.tar

Setelah fail diekstrak, anda akan mempunyai folder berjudul employees_db. Kita perlu menavigasi ke direktori ini untuk memasang pangkalan data.

cd employees_db 
ls -l

Keluarannya akan kelihatan seperti ini:

-rw-r--r--. 1 501 games       752 Mar 30  2009 Changelog
-rw-r--r--. 1 501 games      6460 Oct  9  2008 employees_partitioned2.sql
-rw-r--r--. 1 501 games      7624 Feb  6  2009 employees_partitioned3.sql
-rw-r--r--. 1 501 games      5660 Feb  6  2009 employees_partitioned.sql
-rw-r--r--. 1 501 games      3861 Nov 28  2008 employees.sql
-rw-r--r--. 1 501 games       241 Jul 30  2008 load_departments.dump
-rw-r--r--. 1 501 games  13828291 Mar 30  2009 load_dept_emp.dump
-rw-r--r--. 1 501 games      1043 Jul 30  2008 load_dept_manager.dump
-rw-r--r--. 1 501 games  17422825 Jul 30  2008 load_employees.dump
-rw-r--r--. 1 501 games 115848997 Jul 30  2008 load_salaries.dump
-rw-r--r--. 1 501 games  21265449 Jul 30  2008 load_titles.dump
-rw-r--r--. 1 501 games      3889 Mar 30  2009 objects.sql
-rw-r--r--. 1 501 games      2211 Jul 30  2008 README
-rw-r--r--. 1 501 games      4455 Mar 30  2009 test_employees_md5.sql
-rw-r--r--. 1 501 games      4450 Mar 30  2009 test_employees_sha.sql

Jalankan perintah berikut untuk menyambung ke pelayan MySQL, membuat pangkalan data, dan mengimport data:

sudo mysql -h localhost -u root -p -t < employees.sql

Permintaan akan muncul meminta kata laluan root anda. Ini adalah kata laluan yang anda tetapkan pada langkah pertama.

Oleh kerana pangkalan data cukup besar, mungkin memerlukan masa 1-3 minit untuk mengimport data sepenuhnya. Sekiranya semuanya dilakukan dengan betul, anda akan melihat output berikut.

+-----------------------------+
| INFO                        |
+-----------------------------+
| CREATING DATABASE STRUCTURE |
+-----------------------------+
+------------------------+
| INFO                   |
+------------------------+
| storage engine: InnoDB |
+------------------------+
+---------------------+
| INFO                |
+---------------------+
| LOADING departments |
+---------------------+
+-------------------+
| INFO              |
+-------------------+
| LOADING employees |
+-------------------+
+------------------+
| INFO             |
+------------------+
| LOADING dept_emp |
+------------------+
+----------------------+
| INFO                 |
+----------------------+
| LOADING dept_manager |
+----------------------+
+----------------+
| INFO           |
+----------------+
| LOADING titles |
+----------------+
+------------------+
| INFO             |
+------------------+
| LOADING salaries |
+------------------+

Sekarang, kita boleh log masuk ke MySQL dan melihat data yang diimport.

sudo mysql -h localhost -u root -p

Masukkan kata laluan root yang anda tetapkan di bahagian sebelumnya.

Periksa senarai pangkalan data untuk pangkalan data pekerja kami yang baru dibuat .

show databases;

Keluarannya akan kelihatan seperti ini:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| employees          |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)

Mari gunakan pangkalan data pekerja .

use employees;

Periksa jadual di dalamnya.

show tables;

Ini akan menghasilkan:

+---------------------+
| Tables_in_employees |
+---------------------+
| departments         |
| dept_emp            |
| dept_manager        |
| employees           |
| salaries            |
| titles              |
+---------------------+
6 rows in set (0.01 sec)

Langkah ketiga - Membuat, menggunakan, dan membuang pandangan

Dalam langkah ini, anda akan belajar membuat dan menggunakan pandangan. Saya telah membahagikan langkah ini menjadi bahagian yang lebih kecil untuk memadankan data, dan menggabungkan data untuk organisasi. Sudah tiba masanya untuk mula berinteraksi dengan data ujian kami.

Penggabungan / pemadanan data

Di bawah ini, saya mempunyai pertanyaan yang menunjukkan semua pekerja yang mempunyai gaji tahunan sama dengan, atau lebih besar daripada $ 50,000.

select * from salaries where salary >= 50000;

Keluaran (terpotong):

+--------+--------+------------+------------+
| emp_no | salary | from_date  | to_date    |
+--------+--------+------------+------------+
|  10001 |  60117 | 1986-06-26 | 1987-06-26 |
|  10001 |  62102 | 1987-06-26 | 1988-06-25 |
|  10001 |  66074 | 1988-06-25 | 1989-06-25 |
|  10001 |  66596 | 1989-06-25 | 1990-06-25 |
|  10001 |  66961 | 1990-06-25 | 1991-06-25 |
(...)

Seperti yang anda lihat, ini hanya memaparkan nombor pekerja. Ini boleh mengganggu apabila cuba mengenal pasti pekerja dengan cepat. Nasib baik, kita dapat membuat paparan yang akan menyimpan pertanyaan yang cukup panjang yang dapat memadankan nombor pekerja dengan nama pekerja dengan menarik dan memadankan data dari beberapa jadual. Pertanyaan ditunjukkan di bawah.

select employees.first_name,employees.last_name,employees.emp_no,salaries.salary,salaries.to_date,salaries.from_date from employees, salaries where employees.emp_no = salaries.emp_no;

Perhatikan bagaimana saya telah menghilangkan >= 50000pertanyaan. Kami akan menggunakan nilai ini setelah pandangan kami dibuat.

Untuk membuat paparan, kami hanya menambahkan create view view_name aspertanyaan. Dalam kes ini, saya akan membuat paparan yang disebut bernama_salaries .

create view named_salaries as select employees.first_name,employees.last_name,employees.emp_no,salaries.salary,salaries.to_date,salaries.from_date from employees, salaries where employees.emp_no = salaries.emp_no;

Kami memaparkan data dari pandangan dengan cara yang sama seperti kami memaparkan data dari jadual.

select * from named_salaries

Sekiranya paparan telah dibuat dengan betul, maka anda akan melihat output berikut (data telah dipotong):

+------------+-----------+--------+--------+------------+------------+
| first_name | last_name | emp_no | salary | to_date    | from_date  |
+------------+-----------+--------+--------+------------+------------+
| Georgi     | Facello   |  10001 |  60117 | 1987-06-26 | 1986-06-26 |
| Georgi     | Facello   |  10001 |  62102 | 1988-06-25 | 1987-06-26 |
| Georgi     | Facello   |  10001 |  66074 | 1989-06-25 | 1988-06-25 |
| Georgi     | Facello   |  10001 |  66596 | 1990-06-25 | 1989-06-25 |
| Georgi     | Facello   |  10001 |  66961 | 1991-06-25 | 1990-06-25 |
| Georgi     | Facello   |  10001 |  71046 | 8  1992-06-24 | 1991-06-25 |
(...)

Oleh kerana kita dapat berinteraksi dengan pandangan dengan cara yang sama seperti kita dapat berinteraksi dengan jadual, adalah mungkin untuk mengambil >= 50000dari pertanyaan asal dan menerapkannya pada paparan.

select * from named_salaries where salary >= 50000;

Keluaran (terpotong):

+------------+-----------+--------+--------+------------+------------+
| first_name | last_name | emp_no | salary | to_date    | from_date  |
+------------+-----------+--------+--------+------------+------------+
| Georgi     | Facello   |  10001 |  60117 | 1987-06-26 | 1986-06-26 |
(...)
| Bezalel    | Simmel    |  10002 |  65828 | 1997-08-03 | 1996-08-03 |
(...)
| Chirstian  | Koblick   |  10004 |  50594 | 1992-11-29 | 1991-11-30 |
(...)
| Kyoichi    | Maliniak  |  10005 |  78228 | 1990-09-12 | 1989-09-12 |
(...)
| Anneke     | Preusig   |  10006 |  53747 | 1998-08-03 | 1997-08-03 |
(...)
+------------+-----------+--------+--------+------------+------------+

Seperti yang anda lihat, pertanyaan tersebut memperlakukan pandangan seperti jadual tradisional.

Mari gunakan pandangan dalam contoh lain. Di bawah ini, saya mempunyai pertanyaan yang panjang lebar yang menyenaraikan pengurus jabatan, nama pertama / terakhir, nombor pekerja, nama jabatan mereka, dan nombor jabatan. Pertanyaan mengumpulkan data dari beberapa jadual yang berbeza.

select employees.first_name,employees.last_name,employees.emp_no,dept_manager.to_date,dept_manager.from_date,departments.dept_name,departments.dept_no from employees, dept_manager, departments where employees.emp_no = dept_manager.emp_no AND departments.dept_no = dept_manager.dept_no;

Keluaran (terpotong):

+-------------+--------------+--------+------------+------------+--------------------+---------+
| first_name  | last_name    | emp_no | to_date    | from_date  | dept_name          | dept_no |
+-------------+--------------+--------+------------+------------+--------------------+---------+
| Tonny       | Butterworth  | 111692 | 1988-10-17 | 1985-01-01 | Customer Service   | d009    |
| Marjo       | Giarratana   | 111784 | 1992-09-08 | 1988-10-17 | Customer Service   | d009    |
| Xiaobin     | Spinelli     | 111877 | 1996-01-03 | 1992-09-08 | Customer Service   | d009    |
| Yuchang     | Weedman      | 111939 | 9999-01-01 | 1996-01-03 | Customer Service   | d009    |
| DeForest    | Hagimont     | 110511 | 1992-04-25 | 1985-01-01 | Development        | d005    |
| Leon        | DasSarma     | 110567 | 9999-01-01 | 1992-04-25 | Development        | d005    |
(...)

Seperti yang anda lihat, agak sukar untuk memasukkan pertanyaan tersebut setiap kali anda perlu mengambil senarai pengurus jabatan. Mari buat pandangan untuk menjadikannya lebih mudah. Saya akan memanggil pandangan "pengurusan".

create view management as select employees.first_name,employees.last_name,employees.emp_no,dept_manager.to_date,dept_manager.from_date,departments.dept_name,departments.dept_no from employees, dept_manager, departments where employees.emp_no = dept_manager.emp_no AND departments.dept_no = dept_manager.dept_no;

Sekarang, kita hanya boleh menaip select * from management;untuk mendapatkan data yang sama. Sudah tentu, kita juga boleh menggunakan parameter tambahan untuk itu - seperti jadual tradisional. Sebagai contoh, katakan kami hanya ingin menunjukkan kepada pengurus jabatan untuk "Perkhidmatan Pelanggan".

select * from management where dept_name = 'Customer Service';

Pengeluaran:

+------------+-------------+--------+------------+------------+------------------+---------+
| first_name | last_name   | emp_no | to_date    | from_date  | dept_name        | dept_no |
+------------+-------------+--------+------------+------------+------------------+---------+
| Tonny      | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009    |
| Marjo      | Giarratana  | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009    |
| Xiaobin    | Spinelli    | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009    |
| Yuchang    | Weedman     | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009    |
+------------+-------------+--------+------------+------------+------------------+---------+

Atau mungkin kita mahukan "Perkhidmatan Pelanggan" dan "Sumber Manusia":

select * from management where dept_name = 'Customer Service' OR dept_name = 'Human Resources';

Pengeluaran:

+------------+--------------+--------+------------+------------+------------------+---------+
| first_name | last_name    | emp_no | to_date    | from_date  | dept_name        | dept_no |
+------------+--------------+--------+------------+------------+------------------+---------+
| Tonny      | Butterworth  | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009    |
| Marjo      | Giarratana   | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009    |
| Xiaobin    | Spinelli     | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009    |
| Yuchang    | Weedman      | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009    |
| Shirish    | Ossenbruggen | 110183 | 1992-03-21 | 1985-01-01 | Human Resources  | d003    |
| Karsten    | Sigstam      | 110228 | 9999-01-01 | 1992-03-21 | Human Resources  | d003    |
+------------+--------------+--------+------------+------------+------------------+---------+

Mengalih keluar pandangan

Memadamkan paparan sangat mudah. Sama seperti membuang jadual, anda akan menaip drop view view_name;. Sebagai contoh, jika kita mahu memadamkan named_salaries pandangan, arahan adalah: drop view named_salaries;.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut