Fundamental SQL

Sinau babagan DDL, DML lan JOIN

Structured Query Language minangka salah sawijining pambangunan bangunan arsitektur basis data modern. SQL nemtokake cara sing digunakake kanggo nggawe lan ngolah data relasi ing kabeh platform utama. Ing pacelathon kapisan, basa bisa uga nyenengake lan rumit, nanging ora kabeh angel.

Iki introduksi kanggo fundamentals behind SQL njupuk dipikir Brief ing sawetara saka printah utama digunakake kanggo nggawe lan ngowahi database.

Babagan SQL

Pronunciation sing bener saka SQL iku salah sawijining masalah ing komunitas database. Ing standar SQL, Institut Standarisasi Nasional Amérika nyatakake yen sebutan resmi iku "es queue el." Nanging, akeh ahli basis data njupuk menyang pronunciation slang "terusan." Pilihan sampeyan kagungan.

SQL rawuh ing kathah rasa. Database Oracle nggunakake PL / SQL tertutup. Microsoft SQL Server ndadekake nggunakake Transact-SQL. Kabeh variasi adhedhasar standar industri ANSI SQL. Pambuka iki migunakake perintah SQL sing kompatibel karo ANSI sing nggarap sistem basis data modern.

DDL lan DML

Prentah SQL bisa dipérang dadi loro sub-basa utama. Data Definition Language (DDL) ngemot perintah sing digunakake kanggo nggawe lan numpes database lan objek basis data. Sawise struktur basis data ditemtokake karo DDL, administrator basis data lan kedhaftar bisa nggunakake Data Manipulation Language (DML) kanggo nglebokake, nompo lan ngowahi data sing ana ing njero.

Perintah Data Definition Language

Data Definisi Basa digunakake kanggo nggawe lan numpes database lan obyek basis data. Printah iki utamané dipigunakaké déning pangurus basis data nalika fase persiapan lan pambusakan saka project database. Punika dipirsani struktur lan panggunaan papat dhasar dhasar DDL:

CREATE. Nginstal sistem manajemen basis data ing komputer ngidini sampeyan nggawe lan ngatur akeh database independen. Contone, sampeyan bisa nyimpen database kontak pelanggan kanggo departemen dodolan lan database personel kanggo departemen HR. Print perintah kasebut digunakake kanggo netepake saben database kasebut ing platform sampeyan. Contone, printah iki:

Nggawe karyawan DATABASE

nggawe database kosong sing jenenge "karyawan" ing DBMS. Sawise nggawe database, langkah sabanjure yaiku nggawe tabel sing ngemot data. Varian liyane saka printah CREATE bisa digunakake kanggo tujuan iki. Prentah kasebut:

CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) not null, employee_id int not null)

netepake tabel kanthi irah-irahan "personal_info" ing basis data saiki. Contone, tabel iki ngandhut 3 kawicaksanan: first_name, last_name lan employee_id bebarengan karo sawetara informasi tambahan.

Panganggone. Pangaturan USE ngidini sampeyan nemtokake basis data sing pengin digarap ing DBMS. Contone, yen saiki sampeyan lagi aktif ing basis data dodolan lan pengin ngetokake sawetara dhiskusi sing bakal mangaruhi basis data pegawe, ngetrapake perintah kasebut ing ngisor iki:

USE karyawan

Iku penting kanggo tansah sadar database sing digunakake ing sadurunge nerbitake perintah SQL sing ngapusi data.

MANGSA. Sawise sampeyan nggawe tabel ing basis data, sampeyan pengin ngganti definisi. Pangaturan ALTER ngidini sampeyan nggawe owahan struktur meja tanpa mbusak lan nggawe ulang. Coba goleki printah ing ngisor iki:

ALTER TABLE personal_info Tambah gaji dhuwit null

Contone, nambah atribut anyar menyang tabel pribadi_info-gaji karyawan. Dhuwit "dhuwit" nemtokake manawa gaji pegawe disimpen nganggo format dollar lan sen. Akhire, tembung kunci "nolak" ngandhani basis data yen iku pancene kanggo lapangan iki ora ngemot nilai kanggo karyawan apa wae.

DROP. Perintah pungkasan Data Definition Language, DROP, ngidini kita mbusak kabeh obyek basis data saka DBMS kita. Contone, yen kita arep mbusak tabel personal_info sing kita digawe kanthi permanen, kita bakal nggunakake printah ing ngisor iki:

DROP TABLE personal_info

Kajaba iku, printah ing ngisor iki bakal digunakake kanggo mbusak kabeh database pegawe:

DROP DATABASE karyawan

Gunakake perintah iki kanthi ati-ati. Printiran DROP mbusak kabeh struktur data saka database. Yen sampeyan pengin mbusak rekaman individu, gunakake perintah DELETE saka Data Manipulation Language.

Manipulasi Data

Data Manipulation Language (DML) digunakake kanggo njupuk, masang lan ngowahi informasi basis data. Printah iki digunakake dening kabeh kedhaftar database sajrone operasi rutin database.

INSERT. Pangaturan INSERT ing SQL digunakake kanggo nambah cathetan menyang tabel sing ana. Bali menyang conto pribadi_info saka bagean sadurungé, mbayangno departemen HR kudu nambah karyawan anyar ing basis data. Sampeyan bisa nggunakake printah kaya iki:

INSERT INTO values_info ('bart', 'simpson', 12345, $ 45000)

Elinga yen ana papat nilai kasebut kanggo rekaman. Iki cocog karo atribut tabel ing urutan sing padha ditemtokake: first_name, last_name, employee_id lan gaji.

Pilih. Pangaturan SELECT minangka perintah sing paling umum dipigunakaké ing SQL. Ngidini pangguna basis data kanggo njupuk informasi tartamtu sing dikarepake saka basis data operasional. Coba deleng sawetara conto, kanthi nggunakake tabel pribadi_info saka basis data pegawe.

Pangaturan sing dituduhake ing ngisor iki njupuk kabeh informasi sing ana ing tabel pribadi_info. Elinga yen tanda bintang dijupuk minangka wildcard ing SQL. Iki secara harfiah tegese "Pilih kabeh saka tabel pribadi_info."

SELECT * FROM personal_info

Utawa, kedhaftar bisa mbatesi atribut sing diduweni saka basis data. Contone, Departemen Sumber Daya Manungsa bisa mbutuhake dhaptar jeneng-jeneng pungkasan kabeh karyawan ing perusahaan. Pangaturan SQL tinamtu bakal nompo informasi kasebut:

SELECT last_name FROM personal_info

Klausa WHERE bisa digunakake kanggo matesi cathetan sing diduweni kanggo wong sing ketemu kritéria kasebut. CEO bisa uga ngupaya nganalisa cathetan personil kabeh karyawan sing dibayar banget. Perintah ing ngisor iki njupuk kabeh data sing ana ing personal_info kanggo cathetan sing duwe gaji sing luwih dhuwur tinimbang $ 50,000:

SELECT * FROM personal_info WHERE salary> $ 50000

UPDATE. Printah UPDATE bisa digunakake kanggo ngowahi informasi sing ana ing meja, kanthi massal utawa individu. Anggap perusahaan menehi kabeh karyawan biaya 3 persen biaya urip ing gaji saben taun. Pangaturan SQL kasebut bisa digunakake kanthi cepet kanggo nerapake kabeh karyawan sing disimpen ing basis data:

UPDATE personal_info SET gaji = gaji * 1.03

Nalika karyawan anyar Bart Simpson nduduhake kinerja ing ndhuwur lan ngluwihi tugas, manajemen kepengin ngakoni prestasi lintang kanthi mundhakaken $ 5,000. Klausa WHERE bisa digunakake kanggo ndongkrak Bart kanggo mundhakaken:

UPDATE personal_info SET gaji = gaji + $ 5000 WHERE employee_id = 12345

DELETE. Pungkasan, ayo ndelok perintah DELETE. Sampeyan bakal nemokake yen sintaks perintah iki meh padha karo perintah DML liyane. Sayange, laporan laba perusahaan paling anyar iki durung cukup nggoleki pangarep-arep lan Bart durung rampung. Perintah DELETE karo klausa WHERE bisa digunakake kanggo nyopot rekaman saka tabel pribadi_info:

DELETE FROM personal_info WHERE employee_id = 12345

JOIN

Saiki sampeyan wis sinau dasar SQL, wektu iku kanggo pindhah menyang salah sawijining konsep sing paling kuat sing diwenehake basa-statement JOIN. A JOIN statement ngijini sampeyan kanggo gabungke data ing sawetara tabel kanggo efisiensin proses jumlah data gedhe. Iki minangka panjelasan ing ngendi daya bener saka basis data dumunung.

Kanggo njelajah nganggo operasi JOIN dhasar kanggo gabungke data saka rong tabel, terus nganggo conto nggunakake tabel PERSONAL_INFO lan nambahake tabel tambahan kanggo campuran. Anggap sampeyan duwe tabel sing disebut DISCIPLINARY_ACTION sing digawe karo pernyataan ing ngisor iki:

CREATE TABLE disipliner_action (action_id int not null, employee_id int not null, comments char (500))

Tabel iki ngandhut asil tumindak disiplin ing karyawan perusahaan. Sampeyan bakal sok dong mirsani sing ora ngemot informasi babagan karyawan liyane saka nomer pegawe. Iku gampang kanggo mbayangno akeh skenario ing ngendi sampeyan pengin nggabungake informasi saka tabel DISCIPLINARY_ACTION lan PERSONAL_INFO.

Ngira sampeyan wis tugas karo nggawe laporan sing nampilake tumindak disiplin sing dijupuk marang kabeh karyawan kanthi gaji luwih saka $ 40.000. Panggunaan operasi JOIN, ing kasus iki, langsung. Kita bisa nompo informasi iki kanthi nggunakake printah ing ngisor iki:

Pilih personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kode kasebut nemtokake tabel loro sing arep kita gabung ing paragraf FROM lan banjur nyakup statement ing klausa WHERE kanggo mbatesi asil kanggo cathetan sing cocog karo ID pegawe lan ketemu kritéria kita saka gaji luwih saka $ 40.000.