Dasar-dasar SQL untuk Pemula dengan Pelajaran. Bahasa Pemrograman SQL Yang Anda Butuhkan

Dari penulis: Apakah mereka menyebutmu teko? Nah, ini bisa diperbaiki! Setiap samovar pernah menjadi teko! Atau apakah setiap profesional pernah menjadi samovar? Tidak, ada yang salah lagi! Secara umum MySQL ditujukan untuk pemula.

Mengapa boneka membutuhkan MySQL?

Jika Anda serius berencana untuk menghubungkan hidup Anda dengan Internet, maka sejak langkah pertama di "web" Anda akan menemukan DBMS ini. MySQL dapat dengan mudah disebut sebagai sistem manajemen basis data “semua-Internet”. Tidak ada satu pun sumber daya yang kurang lebih serius yang dapat melakukannya tanpanya, ia ada di panel admin setiap hosting. Dan sebagian besar CMS populer dan bahkan mesin "buatan sendiri" dibuat dengan partisipasinya.

Secara umum, Anda tidak dapat melakukannya tanpa platform ini. Namun untuk mempelajarinya Anda juga memerlukan pendekatan yang tepat, alat yang tepat, dan yang terpenting keinginan dan kesabaran. Saya harap Anda memiliki cukup bahan terakhir. Dan bersiaplah untuk kenyataan bahwa otak Anda mendidih dan uap keluar dari kepala Anda, seperti dari ketel sungguhan

Tetapi MySQL sangat sulit bagi orang bodoh hanya jika Anda salah mempelajarinya. Anda dan saya tidak akan membuat kesalahan seperti itu, dan kita akan mulai mengenal teknologi ini dari awal.

Konsep dasar

Pertama, mari kita bahas konsep dasar yang akan kami sebutkan dalam publikasi ini:

Basis Data (DB) adalah unit komponen utama DBMS. Basis data mencakup tabel yang terdiri dari kolom dan catatan (baris). Sel-sel yang terbentuk di persimpangan berisi data terstruktur dari tipe tertentu.

DBMS (sistem manajemen basis data) adalah seperangkat semua modul perangkat lunak untuk administrasi basis data.

SQL adalah bahasa kueri terstruktur yang digunakan pengembang untuk “berkomunikasi” dengan inti DBMS (server). Seperti bahasa pemrograman lainnya, SQL memiliki sintaksnya sendiri, kumpulan perintah dan operator, serta tipe data yang didukung.

Saya pikir pengetahuan teoretis sudah cukup untuk kita mulai. Kami akan “mewarnai” kesenjangan yang hilang dalam teori dengan praktik. Sekarang yang tersisa hanyalah memilih alat perangkat lunak yang tepat.

Memilih alat yang tepat

Setelah mengobrak-abrik seluruh rangkaian shell MySQL untuk pemula, saya menyadari bahwa itu tidak ada. Semua produk perangkat lunak untuk administrasi DBMS memerlukan server database yang sudah terinstal. Secara umum, saya memutuskan sekali lagi untuk tidak menciptakan "skuter", dan memilih paket Denwer domestik. Anda dapat mengunduhnya di situs resminya.

Ini sudah mencakup semua komponen DBMS, memungkinkan pemula untuk memulai pengenalan praktis dengan MySQL segera setelah instalasi sederhana dan mudah. Selain itu, Denwer menyertakan beberapa alat lagi yang diperlukan untuk pengembang pemula: server lokal, PHP.

Langkah pertama

Saya tidak akan menjelaskan proses instalasi set "gentleman", karena semuanya terjadi secara otomatis di sana. Setelah meluncurkan instalasi, hanya punya waktu untuk menekan tombol yang diperlukan. Hanya apa yang Anda butuhkan dalam versi MySQL for dummies.

Ketika proses instalasi selesai, mulai server lokal, tunggu beberapa detik. Setelah itu, ketikkan localhost di bilah alamat browser Anda.

Di halaman “Hore, berhasil!” ikuti salah satu tautan yang ditunjukkan pada gambar. Setelah itu Anda akan dibawa ke phpMyAdmin - shell untuk mengelola database.

Dengan mengikuti tautan http://downloads.mysql.com/docs/world.sql.zip, Anda akan mengunduh contoh database pengujian dari situs resmi MySQL. Buka phpMyAdmin lagi, di menu utama di atas, buka tab “Impor”. Di jendela Impor ke Saat Ini, di bagian pertama (File untuk Diimpor), atur nilainya menjadi Telusuri komputer Anda.

Di jendela Explorer, pilih arsip dengan contoh database yang diunduh. Jangan lupa klik "Ok" di bagian bawah jendela utama.

Saya menyarankan Anda untuk tidak mengubah nilai parameter yang ditentukan untuk saat ini. Hal ini dapat mengakibatkan tampilan data sumber yang diimpor salah. Jika sistem phpMyAdmin menghasilkan kesalahan sehingga tidak dapat mengenali algoritma kompresi database, maka unzip dan ulangi seluruh proses impor dari awal.

Jika semuanya berjalan dengan baik, maka akan muncul pesan program di bagian atas bahwa impor berhasil, dan di sebelah kiri daftar database akan ada satu lagi (kata).

Mari kita lihat strukturnya dari dalam agar Anda bisa lebih jelas membayangkan apa yang harus Anda hadapi.

Klik pada nama database MySQL untuk pemula. Daftar tabel yang terdiri darinya akan ditampilkan di bawahnya. Klik salah satunya. Lalu pergi ke item menu atas "Struktur". Area kerja utama akan menampilkan struktur tabel: nama semua kolom, tipe data dan semua atribut.

Selamat datang di pengembangan database menggunakan bahasa kueri SQL standar. Sistem manajemen basis data (DBMS) memiliki banyak alat yang berjalan pada berbagai platform perangkat keras.

  • Dasar-dasar Basis Data Relasional

    Dalam bab ini... | Penyelenggaraan Informasi | Apa itu basis data | Apa itu DBMS | Perbandingan model database | Apa itu database relasional

  • Dasar-dasar SQL

    Dalam bab ini... | Apa itu SQL | Kesalahpahaman SQL | Melihat Standar SQL yang Berbeda | Pengantar Perintah SQL Standar dan Kata Cadangan | Mewakili angka, simbol, tanggal, waktu dan jenis data lainnya | Nilai dan batasan yang tidak ditentukan

  • Komponen SQL

    Dalam bab ini... | Pembuatan database | Pengolahan data | Perlindungan basis data | SQL adalah bahasa yang dirancang khusus untuk membuat dan memelihara data dalam database relasional. Dan meskipun perusahaan yang menyediakan sistem untuk mengelola database tersebut menawarkan implementasi SQL mereka sendiri, pengembangan bahasa itu sendiri ditentukan dan dikendalikan oleh standar ISO/ANSI.

  • Membuat dan memelihara database sederhana

    Dalam bab ini... | Membuat, memodifikasi, dan menghapus tabel dari database menggunakan alat RAD. | Membuat, memodifikasi, dan menghapus tabel dari database menggunakan SQL. | Mentransfer database ke DBMS lain.

  • Membuat database relasional multi-tabel

    Dalam bab ini... | Apa yang harus ada di database | Mendefinisikan hubungan antar elemen database | Menghubungkan tabel menggunakan kunci | Desain Integritas Data | Normalisasi Basis Data | Bab ini akan menyajikan contoh pembuatan database multi-tabel.

  • Memanipulasi data dari database

    Dalam bab ini... | Bekerja dengan data | Memperoleh data yang diperlukan dari tabel | Menampilkan informasi yang dipilih dari satu atau beberapa tabel | Memperbarui informasi dalam tabel dan tampilan | Menambahkan baris baru ke tabel

  • Mendefinisikan Nilai

    Dalam bab ini... | Menggunakan Variabel untuk Mengurangi Redundant Coding | Mengambil informasi yang sering diminta yang terletak di kolom tabel database | Menggabungkan Nilai Sederhana untuk Membuat Ekspresi Majemuk | Buku ini terus menekankan betapa pentingnya struktur database untuk menjaga integritas database.

  • Ekspresi kompleks dengan makna

    Dalam bab ini... | Menggunakan pernyataan kasus bersyarat | Mengonversi Item Data dari Satu Tipe Data ke Tipe Data Lainnya | Menghemat waktu entri data dengan ekspresi bernilai rekor | Di Bab 2, SQL disebut subbahasa data.

  • "Menargetkan" ke data yang dibutuhkan

    Dalam bab ini... | Menentukan tabel yang diperlukan | Memisahkan garis yang diperlukan dari garis lainnya | Membuat Klausa Where yang Efektif | Cara bekerja dengan nilai null | Membuat ekspresi majemuk dengan penghubung logis | Mengelompokkan keluaran hasil query berdasarkan kolom

  • Operator Relasional

    Dalam bab ini... | Menggabungkan tabel yang memiliki struktur serupa | Menggabungkan tabel yang mempunyai struktur berbeda | Mendapatkan data yang Anda perlukan dari beberapa tabel | SQL adalah bahasa query yang digunakan dalam database relasional.

  • Menggunakan Kueri Bersarang

    Dalam bab ini... | Mengambil data dari beberapa tabel dengan satu pernyataan SQL | Menemukan item data dengan membandingkan suatu nilai dari satu tabel dengan sekumpulan nilai dari tabel lain | Menemukan item data dengan membandingkan nilai dari satu tabel dengan satu nilai yang dipilih menggunakan pernyataan pilih dari tabel lainnya

  • Kueri rekursif

  • Mengamankan Basis Data

    Dalam bab ini... | Mengontrol akses ke tabel database | Memutuskan apakah akan memberikan akses | Pemberian Izin Akses | Mencabut Otoritas Akses | Mencegah upaya akses yang tidak sah

  • Perlindungan data

    Dalam bab ini... | Bagaimana menghindari kerusakan database | Masalah yang disebabkan oleh operasi simultan | Memecahkan Masalah Ini Menggunakan Mesin SQL | Mengatur tingkat keamanan yang diperlukan menggunakan perintah set transaksi

  • Menggunakan SQL dalam Aplikasi

    Dalam bab ini... | SQL dalam aplikasi | Berbagi SQL dengan Bahasa Prosedural | Bagaimana menghindari ketidakcocokan | Kode SQL Tertanam dalam Kode Prosedural | Memanggil Modul SQL dari Kode Prosedural | Memanggil SQL dari Alat RAD | Dalam bab sebelumnya, kita terutama melihat perintah SQL satu per satu, yaitu. Tugas pemrosesan data dirumuskan, dan kueri SQL dibuat untuk itu.

  • ODBC dan JDBC

    Dalam bab ini... | Definisi ODBC | Deskripsi Bagian ODBC | Menggunakan ODBC di Lingkungan Klien/Server | Menggunakan ODBC di Internet | Menggunakan ODBC di Jaringan Lokal | Menggunakan JDBC | Setiap tahun, komputer dari satu organisasi atau beberapa organisasi berbeda semakin terhubung satu sama lain. Oleh karena itu, ada kebutuhan untuk membangun akses bersama ke database melalui jaringan.

  • SQL:2003 dan XML

    Dalam bab ini... | Menggunakan SQL dengan XML | XML, database dan Internet | Salah satu fitur baru yang paling signifikan dari SQL:2003 adalah dukungannya terhadap file Extensible Markup Language (XML), yang semakin menjadi standar universal untuk pertukaran data antar platform yang berbeda.

  • Kursor

    Dalam bab ini... | Mendefinisikan ruang lingkup kursor dalam pernyataan deklarasi | Membuka kursor | Pengambilan sampel data baris demi baris | Menutup kursor | SQL berbeda dari kebanyakan bahasa pemrograman terpopuler karena ia melakukan operasi pada data semua baris tabel secara bersamaan, sedangkan bahasa prosedural memproses data baris demi baris.

  • Saat ini, kursus SQL “untuk boneka” menjadi semakin populer. Hal ini dapat dijelaskan dengan sangat sederhana, karena di dunia modern Anda semakin dapat menemukan apa yang disebut layanan web “dinamis”. Mereka dibedakan oleh shell yang cukup fleksibel dan didasarkan pada Semua programmer pemula yang memutuskan untuk mendedikasikan situs web, pertama-tama mendaftar di kursus SQL "untuk boneka".

    Mengapa mempelajari bahasa ini?

    Pertama-tama, SQL diajarkan untuk selanjutnya menciptakan berbagai macam aplikasi untuk salah satu mesin blog paling populer saat ini - WordPress. Setelah menyelesaikan beberapa pelajaran sederhana, Anda akan dapat membuat kueri dengan kompleksitas apa pun, yang menegaskan kesederhanaan bahasa ini.

    Apa itu SQL?

    Atau bahasa kueri terstruktur, dibuat untuk satu tujuan: untuk menentukan, menyediakan akses, dan memprosesnya dalam jangka waktu yang cukup singkat. Jika Anda mengetahui arti SQL, maka Anda akan memahami bahwa server ini diklasifikasikan sebagai bahasa yang disebut “non-prosedural”. Artinya, kemampuannya hanya mencakup deskripsi komponen atau hasil apa pun yang ingin Anda lihat di masa mendatang di situs. Namun kapan tidak menunjukkan secara pasti hasil apa yang akan diperoleh. Setiap permintaan baru dalam bahasa ini seperti “superstruktur” tambahan. Sesuai dengan urutan pemasukannya ke dalam database, maka query akan dieksekusi.

    Prosedur apa yang dapat dilakukan dengan menggunakan bahasa ini?

    Meskipun sederhana, database SQL memungkinkan Anda membuat berbagai macam kueri. Jadi apa yang dapat Anda lakukan jika Anda mempelajari bahasa pemrograman penting ini?

    • membuat berbagai macam tabel;
    • menerima, menyimpan dan mengubah data yang diterima;
    • ubah struktur tabel sesuai kebijaksanaan Anda;
    • menggabungkan informasi yang diterima menjadi satu blok;
    • menghitung data yang diterima;
    • memastikan perlindungan informasi yang lengkap.

    Perintah apa yang paling populer dalam bahasa ini?

    Jika Anda memutuskan untuk mengambil kursus SQL for Dummies, maka Anda akan menerima informasi rinci tentang perintah yang digunakan dalam membuat kueri yang menggunakannya. Yang paling umum saat ini adalah:

    1. DDL adalah perintah yang mendefinisikan data. Ini digunakan untuk membuat, memodifikasi, dan menghapus berbagai macam objek dalam database.
    2. DCL adalah perintah yang memanipulasi data. Ini digunakan untuk memberikan pengguna yang berbeda akses ke informasi dalam database, serta untuk menggunakan tabel atau tampilan.
    3. TCL adalah tim yang mengelola berbagai transaksi. Tujuan utamanya adalah untuk mengetahui kemajuan suatu transaksi.
    4. DML - memanipulasi data yang diterima. Tugasnya adalah memungkinkan pengguna untuk memindahkan berbagai informasi dari database atau memasukkannya ke sana.

    Jenis hak istimewa yang ada di server ini

    Hak istimewa mengacu pada tindakan yang dapat dilakukan pengguna tertentu sesuai dengan statusnya. Yang paling minim tentunya adalah login biasa. Tentu saja, hak istimewa dapat berubah seiring waktu. Yang lama akan dihapus dan yang baru akan ditambahkan. Saat ini, semua orang yang mengikuti kursus SQL Server "for dummies" tahu bahwa ada beberapa jenis tindakan yang diizinkan:

    1. Jenis objek - pengguna diperbolehkan menjalankan perintah apa pun hanya dalam kaitannya dengan objek tertentu yang terletak di database. Pada saat yang sama, hak istimewa berbeda untuk objek yang berbeda. Mereka juga terikat tidak hanya pada pengguna tertentu, tetapi juga pada tabel. Jika seseorang, dengan menggunakan kemampuannya, membuat tabel, maka dia dianggap sebagai pemiliknya. Oleh karena itu, ia berhak memberikan hak istimewa baru kepada pengguna lain terkait informasi di dalamnya.
    2. Tipe sistem inilah yang disebut hak cipta data. Pengguna yang telah menerima hak istimewa tersebut dapat membuat berbagai objek di database.

    Sejarah SQL

    Bahasa ini diciptakan oleh IBM Research Laboratory pada tahun 1970. Saat itu namanya sedikit berbeda (SEQUEL), namun setelah beberapa tahun digunakan diubah, disingkat sedikit. Meskipun demikian, bahkan saat ini banyak pakar pemrograman terkenal di dunia yang masih menyebut nama tersebut dengan cara kuno. SQL diciptakan dengan satu tujuan - untuk menciptakan bahasa yang sangat sederhana sehingga bahkan pengguna Internet biasa pun dapat mempelajarinya tanpa masalah. Fakta menariknya adalah pada saat itu SQL bukanlah satu-satunya bahasa tersebut. Di California, kelompok spesialis lain mengembangkan Ingres serupa, tetapi tidak pernah tersebar luas. Sebelum tahun 1980, terdapat beberapa variasi SQL yang hanya sedikit berbeda satu sama lain. Untuk mencegah kebingungan, versi standar dibuat pada tahun 1983, yang masih populer hingga saat ini. Kursus SQL "untuk boneka" memungkinkan Anda mempelajari lebih banyak tentang layanan ini dan mempelajarinya sepenuhnya dalam beberapa minggu.

    Bahasa Kueri Terstruktur atau SQL adalah bahasa pemrograman deklaratif untuk digunakan dalam database kuasi-relasional. Banyak fitur asli SQL diambil dari kalkulus tuple, namun perluasan terbaru ke SQL mencakup lebih banyak aljabar relasional.
    SQL awalnya dibuat oleh IBM, namun banyak vendor telah mengembangkan dialek mereka sendiri. Ini diadopsi sebagai standar oleh American National Standards Institute (ANSI) pada tahun 1986 dan ISO pada tahun 1987. Dalam standar bahasa pemrograman SQL, ANSI menyatakan bahwa pengucapan resmi SQL adalah “es q el”. Namun, banyak spesialis basis data menggunakan pengucapan "gaul" "Sekuel", yang mencerminkan nama asli bahasa tersebut, Sekuel, yang kemudian diubah karena konflik merek dagang dan nama dengan IBM. Pemrograman untuk pemula.
    Bahasa pemrograman SQL direvisi pada tahun 1992 dan versi ini dikenal sebagai SQL-92. 1999 kemudian direvisi lagi menjadi SQL:1999 (AKA SQL3). Pemrograman untuk boneka. SQL 1999 mendukung objek yang sebelumnya tidak didukung di versi lain, namun pada akhir tahun 2001, hanya beberapa sistem manajemen database yang mendukung implementasi SQL: SQL 1999.
    SQL, meskipun didefinisikan sebagai ANSI dan ISO, memiliki banyak variasi dan ekstensi, yang sebagian besar memiliki karakteristiknya sendiri, seperti implementasi "PL/SQL" Oracle Corporation atau Sybase dan implementasi Microsoft yang disebut "Transact-SQL", yang dapat membingungkan untuk mereka yang akrab dengan dasar-dasar pemrograman. Hal ini juga tidak biasa bagi implementasi komersial untuk menghilangkan dukungan untuk fitur utama standar, seperti tipe data seperti tanggal dan waktu, dan lebih memilih beberapa variannya sendiri. Akibatnya, tidak seperti ANSI C atau ANSI Fortran yang biasanya dapat di-porting dari platform ke platform tanpa perubahan struktural yang besar, kueri bahasa pemrograman SQL jarang dapat di-porting antara sistem database yang berbeda tanpa modifikasi yang signifikan. Kebanyakan orang di industri basis data percaya bahwa kurangnya kompatibilitas ini disengaja, untuk menyediakan sistem manajemen basis data mereka sendiri kepada setiap pengembang dan mengikat pembeli ke basis data tertentu.
    Seperti namanya, bahasa pemrograman SQL dirancang untuk tujuan tertentu dan terbatas - menanyakan data yang terdapat dalam database relasional. Dengan demikian, ini adalah seperangkat instruksi bahasa pemrograman untuk membuat sampel data, bukan bahasa prosedural seperti C atau BASIC, yang dirancang untuk memecahkan masalah yang lebih luas. Ekstensi bahasa seperti "PL/SQL" dirancang untuk mengatasi keterbatasan ini dengan menambahkan elemen prosedural ke SQL sambil mempertahankan manfaat SQL. Pendekatan lain adalah dengan menanamkan perintah bahasa pemrograman prosedural ke dalam query SQL dan berinteraksi dengan database. Misalnya, Oracle dan lainnya mendukung Java dalam database, sedangkan PostgreSQL mengizinkan fungsi ditulis dalam Perl, Tcl, atau C.
    Salah satu lelucon tentang SQL: "SQL tidak terstruktur atau bahasa." Inti dari leluconnya adalah bahwa SQL bukanlah bahasa Turing. .

    Pilih * dari T
    C1 C2
    1 A
    2 B
    C1 C2
    1 A
    2 B
    Pilih C1 dari T
    C1
    1
    2
    C1 C2
    1 A
    2 B
    Pilih * dari T di mana C1=1
    C1 C2
    1 A

    Diberikan tabel T, kueri Pilih * dari T akan menampilkan semua elemen dari semua baris dalam tabel.
    Dari tabel yang sama, query Pilih C1 dari T akan menampilkan elemen dari kolom C1 dari semua baris dalam tabel.
    Dari tabel yang sama, query Select * from T dimana C1=1 akan menampilkan semua elemen dari semua baris yang nilai kolom C1 adalah "1".

    Kata kunci SQL

    Kata-kata SQL dibagi menjadi beberapa kelompok.

    Yang pertama adalah Bahasa Manipulasi Data atau DML(bahasa manajemen data). DML adalah bagian dari bahasa yang digunakan untuk menanyakan database dan menambah, memperbarui, dan menghapus data.

    • SELECT adalah salah satu perintah DML yang paling umum digunakan dan memungkinkan pengguna untuk menentukan kueri sebagai deskripsi kumpulan hasil yang diinginkan. Kueri tidak menentukan bagaimana hasil harus diatur - menerjemahkan kueri ke dalam bentuk yang dapat dieksekusi dalam database adalah tugas sistem database, lebih khusus lagi pengoptimal kueri.
    • INSERT digunakan untuk menambahkan baris (set formal) ke tabel yang sudah ada.
    • UPDATE digunakan untuk mengubah nilai data pada baris tabel yang sudah ada.
    • DELETE menentukan baris yang ada yang akan dihapus dari tabel.

    Tiga kata kunci lainnya dapat dikatakan termasuk dalam grup DML:

    • BEGIN WORK (atau MULAI TRANSAKSI, bergantung pada dialek SQL) dapat digunakan untuk menandai dimulainya transaksi database yang akan menyelesaikan semuanya atau tidak mengeksekusi sama sekali.
    • COMMIT menyatakan bahwa semua perubahan data yang dilakukan setelah operasi dilakukan disimpan.
    • ROLLBACK menetapkan bahwa semua perubahan data setelah komit atau rollback terakhir harus dimusnahkan, hingga titik yang dicatat dalam database sebagai "rollback".

    COMMIT dan ROLLBACK digunakan di berbagai bidang seperti kontrol transaksi dan penguncian. Kedua instruksi menyelesaikan semua transaksi saat ini (kumpulan operasi pada database) dan menghapus semua kunci perubahan data dalam tabel. Ada atau tidaknya BEGIN WORK atau pernyataan serupa bergantung pada implementasi SQL tertentu.

    Kelompok kata kunci kedua termasuk dalam grup Bahasa Definisi Data atau DDL (Bahasa Definisi Data). HAL-HAL memungkinkan pengguna untuk menentukan tabel baru dan elemen terkaitnya. Sebagian besar database SQL komersial memiliki ekstensi DDL sendiri yang memungkinkan kontrol atas elemen non-standar, tetapi biasanya penting, dari sistem tertentu.
    Poin utama dari DDL adalah perintah buat dan hapus.

    • CREATE menentukan objek (seperti tabel) yang akan dibuat dalam database.
    • DROP menentukan objek mana yang ada di database yang akan dihapus, biasanya secara permanen.
    • Beberapa sistem database juga mendukung perintah ALTER, yang memungkinkan pengguna untuk memodifikasi objek yang ada dengan berbagai cara, seperti menambahkan kolom ke tabel yang sudah ada.

    Kelompok ketiga dari kata kunci SQL adalah Bahasa Kontrol Data atau DCL (Bahasa Kontrol Data). DCL bertanggung jawab atas hak akses data dan memungkinkan pengguna untuk mengontrol siapa yang memiliki akses untuk melihat atau memanipulasi data dalam database. Ada dua kata kunci utama di sini.

    Dalam materi ini saya mencoba menggabungkan semua poin utama Transaksi-SQL, yang akan membantu pemrogram basis data pemula menguasai bahasa ini dan menulis kueri dan aplikasi dalam bahasa Transact-SQL.

    Pemrograman basis data, dan lebih khusus lagi, basis data yang menjalankan Microsoft SQL Server, telah menjadi sangat populer, itulah sebabnya saya memutuskan untuk membuat semacam buku referensi mini di mana Anda dapat menemukan semua poin utama dengan penjelasan dan, tentu saja, contoh.

    Untuk berlatih menulis query SQL atau membuat objek database, Anda dapat menggunakan SQL Server Express edisi gratis, pada saat penyusunan buku referensi, versi terbaru adalah Microsoft SQL Server 2014 Express.

    Referensi Transact-SQL untuk pemula - deskripsi referensi

    Buku referensi ini akan terlihat seperti ini, pertama saya akan memberikan daftar isi kecil dengan navigasi, kemudian buku referensi itu sendiri akan dimulai, akan ada komentar, penjelasan dan contoh untuk setiap item. Selain itu, jika kami telah memeriksa secara detail atau menggunakan objek atau tindakan ini atau itu di suatu tempat dalam materi di situs kami, tentu saja saya akan memberikan tautan agar Anda dapat melihat contoh detail atau cara menggunakan tindakan ini atau itu dalam praktiknya. .

    Karena tidak mungkin mencakup semuanya secara mutlak, jadi jangan heran jika Anda tidak menemukan sesuatu di sini. Saya ulangi sekali lagi bahwa buku referensi ini dibuat untuk pemrogram Transact-SQL pemula, serta untuk administrator sederhana yang secara berkala perlu mengunduh beberapa data dari server SQL.

    Untuk mempelajari bahasa T-SQL secara mendetail, saya sarankan membaca buku saya “The T-SQL Programmer’s Way. Tutorial bahasa Transact-SQL”, dimana saya membahas bahasa T-SQL sedetail mungkin, dengan banyak contoh.

    Basis data

    Bahkan seorang programmer Transact-SQL pemula pun harus mengetahui cara membuat database atau mengubah propertinya, jadi sebelum melihat tabel, tampilan, fungsi, dan lainnya, mari kita lihat proses membuat, memodifikasi, dan menghapus database Transact-SQL.

    Penciptaan

    Untuk membuat database, Anda perlu menjalankan query berikut:

    BUAT tes DATABASE

    di mana tes adalah nama database.

    Kami berbicara lebih banyak tentang membuat database di SQL server pada materi Cara membuat database di MS Sql 2008

    Pemindahan

    Jika Anda perlu menghapus database, Anda bisa menggunakan kueri:

    Tes JATUH DATABASE

    Mengubah

    Untuk mengubah parameter database, Anda dapat menggunakan antarmuka grafis Management Studio, di mana semua parameter dijelaskan secara rinci, atau Anda dapat mengirim kueri ALTER DATABASE, misalnya, untuk mengaktifkan kompresi otomatis database pengujian, gunakan kueri berikut

    Tes ALTER DATABASE SET AUTO_SHRINK AKTIF; --Dan untuk mematikan tes ALTER DATABASE SET AUTO_SHRINK OFF;

    Mudah-mudahan jelas, ALTER DATABASE adalah perintah untuk mengubah, test adalah nama database yang diubah, SET adalah perintah yang menandakan kita akan mengubah parameter database, AUTO_SHRINK adalah parameter itu sendiri, ON/OFF adalah nilai parameternya.

    Tipe data

    Yang paling umum dan sering digunakan

    Angka pasti

    • kecilint - 1 byte
    • kecil - 2 byte
    • int - 4 byte
    • bigint - 8 byte
    • numerik dan desimal ( mengetik dengan presisi dan skala tetap)
    • uang - 8 byte
    • uang kecil - 4 byte

    Perkiraan angka

    • float [ (n) ] – ukuran bergantung pada n (n bisa dari 1 hingga 53, default 53)
    • nyata - 4 byte

    tanggal dan waktu

    • tanggal – tanggal
    • waktu - waktu
    • datetime - tanggal termasuk waktu dalam sepersekian detik dalam format 24 jam.

    String karakter

    • char [ (n) ] – string dengan panjang tetap, di mana n adalah panjang string (dari 1 hingga 8000). Ukuran penyimpanannya adalah n byte.
    • varchar [ (n | max) ] adalah string dengan panjang tetap, di mana n adalah panjang string (dari 1 hingga 8000). Jika Anda menentukan maks, maka ukuran penyimpanan maksimum adalah 2^31-1 byte (2 GB), dan jika Anda menentukan n, maka panjang sebenarnya dari data yang dimasukkan ditambah 2 byte.
    • teks – data string dengan panjang variabel, ukuran maksimum 2.147.483.647 byte (2 GB).
    • nchar[(n)] adalah string Unicode dengan panjang tetap, di mana n adalah panjang string (dari 1 hingga 4000). Ukuran penyimpanan adalah dua kali nilai n dalam byte
    • nvarchar [ (n | max) ] adalah string Unicode dengan panjang tetap, di mana n adalah panjang string (dari 1 hingga 4000). Jika Anda menentukan maks, ukuran penyimpanan maksimum adalah 2^31-1 byte (2 GB), dan jika n, maka dua kali panjang sebenarnya data yang dimasukkan ditambah 2 byte.
    • ntext adalah data string dengan panjang variabel, dengan panjang string maksimum 1.073.741.823 byte.

    Data biner

    • biner [ (n) ] - data biner dengan panjang tetap, ukuran n byte, di mana n adalah nilai dari 1 hingga 8000. Ukuran penyimpanan adalah n byte.
    • varbinary [ (n | max) ] - data biner dengan panjang variabel, di mana n dapat memiliki nilai dari 1 hingga 8000. Jika Anda menentukan maks, ukuran penyimpanan maksimum adalah 2^31-1 byte (2 GB). Ketika n ditentukan, ukuran penyimpanan adalah panjang sebenarnya dari data masukan ditambah 2 byte.
    • image - data biner dengan panjang variabel, dengan ukuran mulai dari 0 hingga 2^31 - 1 (2.147.483.647) byte.

    Lainnya

    • xml – penyimpanan data xml. Kami membahasnya secara detail di materi Transact-sql - bekerja dengan xml, dan jika Anda belum tahu apa itu XML, maka kami membicarakannya di artikel Dasar-Dasar XML untuk Pemula.
    • tabel – penyimpanan kumpulan baris yang dihasilkan.

    Tabel

    Contoh pembuatan tabel di situs ini cukup banyak, karena hampir di setiap artikel yang berhubungan dengan SQL saya memberikan contoh pembuatan tabel uji, namun untuk mengkonsolidasikan pengetahuan, mari kita membuat, memodifikasi, dan menghapus tabel uji. Mari kita lihat bagaimana tipe data bidang diatur dalam tabel Transact-SQL.

    Penciptaan

    CREATE TABLE test_table( IDENTITY(1,1) BUKAN NULL, --identifier, int integer, nilai NULL tidak diperbolehkan (50) NULL, --nama lengkap, string 50 karakter, nilai NULL diperbolehkan NULL, -- jumlah, perkiraan nilai numerik, nilai NULL diperbolehkan NULL, --tanggal dan waktu, nilai NULL diperbolehkan (100) NULL --string sepanjang 100 karakter, nilai NULL diperbolehkan) ON GO

    Menambahkan Kolom

    ALTER TABLE test_table TAMBAHKAN prosto_pole numerik(18, 0) NULL
    • test_table adalah nama tabel;
    • tambahkan — perintah untuk menambahkan;
    • prosto_pole – nama kolom;
    • pole numerik (18, 0) – tipe data kolom baru;
    • NULL – parameter yang berarti nilai NULL dapat disimpan di kolom ini.

    Mengubah tipe data

    Mari kita ubah tipe data kolom baru yang baru kita buat (prosto_pole) dari numerik (18, 0) menjadi bigint dan tambah panjang kolom komentar menjadi 300 karakter.

    ALTER TABLE test_table ALTER KOLOM prosto_pole bigint; ALTER TABLE test_table ALTER KOLOM komentar varchar(300);

    Catatan! Server SQL tidak akan dapat mengubah tipe data jika nilai dalam bidang ini tidak dapat dikonversi, dalam hal ini Anda harus menghapus kolom dengan semua data dan menambahkan lagi atau menghapus semua data di bidang ini.

    Menghapus kolom

    Untuk menghapus kolom tertentu, gunakan perintah drop, misalnya untuk menghapus bidang prosto_pole, gunakan kueri berikut

    ALTER TABLE test_table DROP COLUMN prosto_pole

    Menghapus tabel

    Untuk menghapus tabel, mari tulis query sederhana ini, di mana test_table adalah tabel yang akan dihapus

    DROP TABLE test_table

    Perwakilan

    Objek yang sangat berguna dalam database adalah tampilan (VIEW) atau, menurut kami, sekadar tampilan. Kalau ada yang belum tahu, view adalah sejenis query tersimpan yang bisa diakses dengan cara yang sama seperti tabel. Mari kita buat tampilan berdasarkan tabel pengujian test_table, dan asumsikan bahwa sangat sering kita perlu menulis query, misalnya sesuai dengan kondisi, jumlahnya lebih besar dari 1000, jadi agar tidak menulis query ini setiap saat, kami akan menulis tampilannya satu kali, dan selanjutnya kami akan merujuknya.

    Penciptaan

    BUAT LIHAT test_view SEBAGAI PILIH id, fio, komentar DARI test_table WHERE summa > 1000 GO

    Contoh mengakses tampilan:

    PILIH * DARI test_view

    Mengubah

    ALTER LIHAT test_view SEBAGAI PILIH id, fio, komentar DARI test_table WHERE summa > 1500 GO

    Pemindahan

    JATUH LIHAT test_view

    Tampilan Sistem

    DBMS MS SQL Server memang memiliki objek sistem yang terkadang dapat memberikan informasi yang cukup berguna, misalnya tampilan sistem. Sekarang kita akan menganalisis beberapa representasi tersebut. Anda dapat mengaksesnya dengan cara yang sama seperti tampilan biasa ( misalnya pilih * dari tampilan judul)

    • sys.all_objects – berisi semua objek database, termasuk parameter seperti: nama, tipe, tanggal pembuatan dan lain-lain.
    • sys.all_columns – mengembalikan semua kolom tabel dengan karakteristik detailnya.
    • sys.all_views – Mengembalikan semua tampilan dalam database.
    • sys.tables – semua tabel database.
    • sys.triggers – semua pemicu database.
    • sys.databases – semua database di server.
    • sys.sysprocesses – proses aktif, sesi dalam database.

    Sebenarnya jumlahnya banyak, jadi tidak mungkin memilah semuanya. Jika Anda ingin melihat bagaimana penerapannya dalam praktik, kami telah melakukannya, misalnya pada materi

    Fungsi

    Server MS SQL memungkinkan Anda membuat fungsi yang akan mengembalikan data tertentu, dengan kata lain, pengguna sendiri dapat menulis fungsi dan menggunakannya di masa mendatang, misalnya ketika diperlukan untuk mendapatkan nilai yang memerlukan perhitungan rumit atau rumit pemilihan data. Terkadang hanya untuk mengurangi kode, ketika pemanggilan fungsi akan menggantikan nilai yang sering dibutuhkan dalam permintaan dan aplikasi yang berbeda.

    Penciptaan

    BUAT FUNGSI test_function (@par1 bigint, @par2 float) RETURNS varchar(300) SEBAGAI MULAI DECLARE @rezult varchar(300) SELECT @rezult=comment FROM test_table WHERE id = @par1 AND summa > @par2 RETURN @rezult END
    • CREATE FUNCTION – perintah untuk membuat objek fungsi;
    • test_function – nama fungsi baru;
    • @par1 dan @par2 – parameter masuk;
    • KEMBALI varchar(300) – tipe pengembalian;
    • DECLARE @rezult varchar(300) – deklarasi variabel dengan tipe varchar(300);
    • Pernyataan pilih dalam kasus kita adalah tindakan fungsi;
    • KEMBALI @rezult – mengembalikan hasilnya;
    • BEGIN dan END masing-masing merupakan awal dan akhir dari kode fungsi.

    Contoh penggunaannya dalam permintaan:

    PILIH fungsi_tes(1, 20)

    Mengubah

    ALTER FUNGSI test_function (@par1 bigint, @par2 float) RETURNS varchar(300) SEBAGAI MULAI DECLARE @rezult varchar(300) SELECT @rezult=comment FROM test_table_new WHERE id = @par1 AND summa >= @par2 RETURN @rezult END

    Pemindahan

    DROP FUNGSI test_function

    Fungsi bawaan

    Selain fakta bahwa server SQL memungkinkan Anda membuat fungsi khusus, server ini juga menyediakan kemampuan untuk menggunakan fungsi bawaan yang telah ditulis oleh pengembang DBMS untuk Anda. Ada banyak sekali, jadi saya membagi yang paling umum menjadi beberapa kelompok dan mencoba menjelaskannya secara singkat.

    Fungsi sistem

    Disini saya akan memberikan beberapa contoh fungsi yang mengembalikan berbagai data sistem

    • @@VERSION – mengembalikan versi server SQL;
    • @@SERVERNAME – mengembalikan nama server;
    • SUSER_NAME() – nama login pengguna di server, dengan kata lain, di bawah login apa pengguna ini atau itu bekerja;
    • nama_pengguna() – nama pengguna basis data;
    • @@SERVICENAME – nama layanan DBMS;
    • @@IDENTITY - pengidentifikasi terakhir dimasukkan ke dalam tabel;
    • db_name() - nama database saat ini;
    • db_id() – pengidentifikasi basis data.

    Fungsi agregat

    Fungsi yang menghitung nilai berdasarkan sekumpulan (kelompok) nilai. Jika, saat memanggil fungsi-fungsi ini, Anda perlu menentukan kolom untuk menampilkan hasilnya, maka Anda harus mengelompokkan data (dikelompokkan berdasarkan) berdasarkan bidang ini. Kami membahas konstruksi ini secara rinci dalam artikel pengelompokan data Transact-SQL berdasarkan

    • rata-rata – mengembalikan nilai rata-rata;
    • count – jumlah nilai;
    • maks – nilai maksimum;
    • min – nilai minimum;
    • jumlah – jumlah nilai.

    Contoh penggunaan:

    SELECT COUNT(*) sebagai hitungan, SUM(summa) sebagai jumlah, MAX(id) sebagai maks, MIN(id) sebagai min, AVG(summa) sebagai rata-rata FROM test_table

    Fungsi string

    Jenis fungsi ini bekerja dengan string yang sesuai.

    Kiri (ekspresi string, Karakter) – mengembalikan jumlah karakter tertentu dalam string yang dimulai dari kiri.

    Contoh

    SELECT LEFT("Contoh fungsi kiri", 10) --Hasil dari "Contoh"

    Benar (ekspresi string, Karakter) – mengembalikan jumlah karakter tertentu dalam string yang dimulai dari kanan

    Contoh

    SELECT Right("Contoh fungsi yang Benar", 10) -- Hasil dari "Fungsi yang Benar"

    Len (garis) – mengembalikan panjang string.

    Contoh

    SELECT len("Contoh cara kerja fungsi len") --Hasil 28

    Lebih rendah (garis) – mengembalikan string yang semua karakternya diubah menjadi huruf kecil.

    Contoh

    SELECT lower("Contoh fungsi yang lebih rendah") --Hasil dari "contoh fungsi yang lebih rendah"

    Atas (garis) - mengembalikan string yang semua karakternya diubah menjadi huruf besar.

    Contoh

    SELECT Upper("Contoh fungsi Atas") --Hasil dari "CONTOH FUNGSI ATAS"

    Potong (garis) – mengembalikan string dengan semua spasi di depannya dihapus.

    Contoh

    SELECT ltrim("Contoh pengoperasian fungsi ltrim") --Hasil dari "Contoh pengoperasian fungsi ltrim"

    Potong (garis) – mengembalikan string dengan semua spasi di sisi kanan dihilangkan

    Contoh

    SELECT Rtrim ("Contoh pengoperasian fungsi Rtrim") -- Hasil dari "Contoh pengoperasian fungsi Rtrim"

    Mengganti (garis, apa yang kita cari, dengan apa kita menggantinya?) – menggantikan dalam ekspresi string semua kemunculan yang ditentukan dalam parameter kedua dengan karakter yang ditentukan dalam parameter ketiga.

    Contoh

    SELECT Ganti ("Contoh fungsi Ganti", "bekerja", "REPLACEMENT") -- Hasil dari "Contoh fungsi REPLACE"

    Mengulangi (garis, jumlah pengulangan) – mengulangi baris (parameter pertama) sebanyak yang ditentukan pada parameter kedua.

    Contoh

    SELECT Replikasi ("Replikasi Contoh", 3) -- Hasil "Contoh Replikasi Contoh Replikasi Contoh Replikasi"

    Balik (garis) – mengembalikan semuanya dalam urutan terbalik.

    Contoh

    SELECT Reverse ("Contoh fungsi Reverse") -- Hasil dari "esreveR iitsknuf etobar op remirP"

    Ruang angkasa (jumlah spasi) – mengembalikan string sebagai jumlah spasi tertentu.

    Contoh

    PILIH Spasi(10) -- Hasil " "

    Substring (garis, posisi awal, berapa banyak karakter) – mengembalikan string dengan panjang yang sama dengan angka yang ditentukan pada parameter ketiga, dimulai dari karakter yang ditentukan pada parameter kedua.

    Contoh

    SELECT Substring("Contoh pengoperasian fungsi Substring", 11, 14) -- Hasil dari "operasi fungsi"

    Fungsi matematika

    Bulat (nomor, akurasi pembulatan) – membulatkan ekspresi numerik ke jumlah digit yang ditentukan dalam parameter kedua

    Contoh

    PILIH Putaran (10.4569, 2) -- Hasil "10.4600"

    Lantai (nomor) – mengembalikan bilangan bulat yang dibulatkan ke bawah.

    Contoh

    PILIH Lantai (10.4569) -- Hasil "10"

    Langit-langit (nomor) – mengembalikan bilangan bulat yang dibulatkan ke atas.

    Contoh

    SELECT Plafon (10.4569) -- Hasil "11"

    Kekuatan (nomor, derajat) — mengembalikan angka yang dipangkatkan pada parameter kedua.

    Contoh

    PILIH Daya(5,2) -- Hasil "25"

    Persegi (nomor) – mengembalikan nilai numerik kuadrat

    Contoh

    PILIH Kotak(5) -- Hasil "25"

    Abs (nomor) – mengembalikan nilai positif absolut

    Contoh

    PILIH Abs(-5) -- Hasil "5"

    Catatan(nomor) – logaritma natural dengan floating point.

    Contoh

    PILIH Log(5) -- Hasil "1.6094379124341"

    pi- Pi.

    Contoh

    PILIH Pi() -- Hasil "3.14159265358979"

    acak– mengembalikan angka floating point acak antara 0 dan 1

    Contoh

    PILIH rand() -- Hasil "0.713273187517105"

    Fungsi tanggal dan waktu

    Tanggal Dapatkan()– mengembalikan tanggal dan waktu saat ini

    Contoh

    PILIH Getdate() -- Hasil "24-10-2014 16:36:23.683"

    Hari(tanggal) – mengembalikan hari dari suatu tanggal.

    Contoh

    PILIH Hari(Getdate()) -- Hasil "24"

    Bulan(tanggal) – mengembalikan nomor bulan dari suatu tanggal.

    Contoh

    PILIH Bulan(Getdate()) -- Hasil "10"

    Tahun (tanggal) – mengembalikan tahun dari suatu tanggal

    Contoh

    PILIH tahun(Getdate()) -- Hasil "2014"

    TANGGAL(bagian tanggal, tanggal) – mengembalikan bagian tertentu dari tanggal (DD,MM,YYYY, dll.)

    Contoh

    PILIH DATEPART(MM,GETDATE()) -- Hasil "10"

    tanggal (tanggal) – memeriksa ekspresi yang dimasukkan untuk melihat apakah itu tanggal

    Contoh

    PILIH Tanggal(GETDATE()) -- Hasil "1"

    Fungsi konversi

    Pemeran (ekspresi sebagai tipe data) – fungsi untuk mengubah satu tipe ke tipe lainnya. Dalam contoh ini kita mengubah tipe float menjadi int

    Contoh

    PILIH CAST(10,54 sebagai int) --hasil 10

    Mengubah – (tipe data, ekspresi, format tanggal) adalah fungsi untuk mengubah satu tipe data ke tipe data lainnya. Sangat sering digunakan untuk mengonversi tanggal, menggunakan parameter opsional ketiga - format tanggal.

    Contoh

    SELECT GETDATE(), CONVERT(DATE, GETDATE(), 104) --Hasil --24-10-2014 15:20:45.270 – tanpa konversi; --24-10-2014 setelah konversi.

    Fungsi tabel

    Mereka dibuat untuk mendapatkan data darinya seperti dari tabel, tetapi setelah berbagai jenis perhitungan. Kami berbicara secara rinci tentang fungsi tabel dalam materi Transact-sql - Fungsi tabel dan tabel sementara

    Penciptaan

    --nama fungsi kita CREATE FUNCTION fun_test_tabl (--parameter masuk dan tipenya @id INT) --nilai kembalian, mis. table RETURNS TABLE AS --segera mengembalikan hasilnya RETURN (--query itu sendiri atau beberapa perhitungan SELECT * FROM test_table dimana id = @id) GO

    Mengubah

    --nama fungsi kami ALTER FUNCTION fun_test_tabl (--parameter masuk dan tipenya @id INT) --nilai kembalian, mis. table RETURNS TABLE AS --segera mengembalikan hasilnya RETURN (--query itu sendiri atau beberapa perhitungan SELECT * FROM test_table di mana id = @id dan summa > 100) GO

    Pemindahan

    JATUHKAN FUNGSI fun_test_tabl

    Seperti yang Anda lihat, untuk membuat, mengubah, atau menghapus fungsi tersebut, operator yang sama digunakan seperti pada fungsi biasa, satu-satunya perbedaan adalah jenis fungsi yang dikembalikan.

    Contoh pemanggilan fungsi ini

    PILIH * DARI fun_test_tabl(1)

    Prosedur

    Prosedur adalah sekumpulan instruksi SQL yang dikompilasi satu kali dan, seperti fungsi, dapat mengambil berbagai parameter. Digunakan untuk menyederhanakan perhitungan dan melakukan tindakan kelompok.

    Penciptaan

    BUAT PROSEDUR sp_test_procedure (@id INT) AS --deklarasikan variabel DECLARE @sum FLOAT --SQL statement SET @sum = 100 UPDATE test_table SET summa = summa + @sum WHERE id = @id GO

    Mengubah

    ALTER PROCEDURE sp_test_procedure (@id int) AS --deklarasikan variabel DECLARE @sum float --SQL statement SET @sum = 500 UPDATE test_table SET summa = summa + @sum WHERE id = @id GO

    Pemindahan

    JATUHKAN PROSEDUR sp_test_procedure

    Memanggil suatu prosedur

    Anda dapat menyebutnya dengan berbagai cara, misalnya:

    JALANKAN sp_test_procedure 1 --atau EXEC sp_test_procedure 1

    Dimana, EXECUTE dan EXEC adalah pemanggilan prosedur, sp_test_procedure, masing-masing, nama prosedur kita, 1 nilai parameter

    Prosedur sistem

    Prosedur sistem– ini adalah prosedur untuk melakukan berbagai tindakan administratif baik pada objek di server maupun pada konfigurasi server itu sendiri. Mereka dipanggil dengan cara yang sama seperti prosedur biasa, tetapi dalam konteks database apa pun.

    Jumlahnya sangat banyak, jadi saya akan memberikan beberapa contoh saja.

    sp_configure– prosedur untuk menampilkan dan membuat perubahan pada konfigurasi kernel DBMS. Parameter pertama adalah nama parameter konfigurasi, parameter kedua adalah nilainya.

    Contoh

    Ubah nilai parameter EXEC sp_configure "Ad Hoc Distributed Queries",1 konfigurasi ulang --apply EXEC sp_configure --lihat saja nilai semua parameter

    dimana, 'Kueri Terdistribusi Ad Hoc' adalah nama parameter, 1 sesuai dengan nilai yang ingin kita ubah, konfigurasi ulang akan menerapkan nilai yang dimasukkan.

    Dalam praktiknya, kami menggunakan prosedur ini dalam materi Interdatabase Query di Transact-SQL

    sp_executesql– mengeksekusi pernyataan Transact-SQL atau serangkaian pernyataan yang dapat dihasilkan secara dinamis. Kami menggunakan prosedur ini dalam perubahan data pencatatan material dalam tabel menggunakan Transact-SQL

    Contoh

    JALANKAN sp_executesql N"PILIH * DARI test_table WHERE id = @id", N"@id int", @id = 1

    Dimana, parameter pertama adalah instruksi sql (string dalam Unicode), yang kedua adalah definisi semua parameter yang dibangun ke dalam instruksi sql, yang ketiga adalah nilai parameter.

    sp_help– mengembalikan informasi rinci tentang objek database apa pun.

    Contoh

    JALANKAN sp_help "test_table"

    sp_ganti nama– mengganti nama objek dalam database. Dapat digunakan untuk mengganti nama tabel, indeks, nama kolom dalam tabel. Tidak disarankan menggunakan prosedur ini untuk mengganti nama prosedur pengguna, pemicu, fungsi.

    Contoh penggantian nama tabel

    EXEC sp_rename "test_table", "test_table_new"

    dimana parameter pertama adalah objek dengan nama lama, dan parameter kedua adalah nama objek baru.

    Contoh penggantian nama kolom pada tabel

    EXEC sp_rename "test_table.summa", "summa_new", "COLUMN"

    Parameter ketiga menunjukkan bahwa kolom sedang diganti namanya.

    Pemicu

    Pemicu adalah prosedur normal, tetapi dipanggil oleh suatu peristiwa, bukan oleh pengguna. Suatu kejadian, misalnya, dapat berupa menyisipkan baris baru ke dalam tabel (insert), memperbarui data dalam tabel (update), atau menghapus data dari tabel (delete).

    Penciptaan

    BUAT TRIGGER trg_test_table_update ON test_table untuk UPDATE --Anda juga dapat menghapus, masukkan AS BEGIN --sql instruksi jika UPDATE END GO

    Mengubah

    ALTER TRIGGER trg_test_table_update ON test_table untuk menyisipkan --Anda juga dapat menghapus, memperbarui SEBAGAI BEGIN --petunjuk sql jika memasukkan END GO

    Pemindahan

    JATUHKAN PEMICU trg_test_table_update

    Aktifkan/Nonaktifkan

    --disable DISABLE TRIGGER trg_test_table_update PADA test_table; -- aktifkan ENABLE TRIGGER trg_test_table_update PADA test_table;

    Kami berbicara tentang pemicu di artikel - Cara membuat pemicu di Transact-SQL.

    Indeks

    Ini adalah objek database yang meningkatkan kinerja pengambilan data dengan mengurutkan data berdasarkan bidang tertentu. Jika kita analogikan misalnya, pencarian informasi tertentu dalam sebuah buku jauh lebih mudah dan cepat berdasarkan daftar isinya dibandingkan jika daftar isi tersebut tidak ada. Jenis indeks berikut ini ada di DBMS MS SQL Server:

    Indeks berkerumun— dengan indeks seperti itu, baris-baris dalam tabel diurutkan dengan kunci tertentu, mis. bidang yang ditentukan. Jenis indeks per tabel di server MS SQL ini hanya boleh ada satu dan, mulai dari MS SQL 2000, secara otomatis dibuat ketika kunci utama (PRIMARY KEY) ditentukan dalam tabel.

    Indeks non-cluster– saat menggunakan indeks jenis ini, indeks berisi penunjuk baris yang diurutkan berdasarkan bidang yang ditentukan, dan bukan baris itu sendiri, sehingga terjadi pencarian cepat untuk baris yang diperlukan. Sebuah tabel dapat memiliki beberapa indeks seperti itu.

    Indeks penyimpan kolom– jenis indeks ini didasarkan pada teknologi penyimpanan data tabel bukan sebagai baris, tetapi sebagai kolom (sesuai dengan namanya); sebuah tabel dapat memiliki satu indeks penyimpan kolom.

    Saat menggunakan indeks jenis ini, tabel segera menjadi hanya-baca, dengan kata lain, tidak mungkin lagi menambah atau mengubah data dalam tabel; untuk melakukan ini, Anda harus menonaktifkan indeks, menambah/mengubah data , lalu aktifkan kembali indeks.

    Indeks seperti ini cocok untuk kumpulan data berukuran sangat besar yang digunakan di gudang.

    Operasi yang menggunakan fungsi agregat menggunakan pengelompokan dilakukan lebih cepat (beberapa kali!) dengan indeks seperti itu.

    Indeks Columnstore tersedia mulai dari SQL Server versi 2012 di edisi Enterprise, Developer, dan Evaluation.

    Penciptaan

    Indeks berkerumun

    BUAT INDEKS CLUSTERED idx_clus_one PADA test_table(id) GO

    Dimana, CREATE CLUSTERED INDEX adalah instruksi untuk membuat indeks berkerumun, idx_clus_one adalah nama indeks, test_table(id) masing-masing adalah tabel dan kolom kunci untuk pengurutan.

    Indeks non-cluster

    BUAT INDEKS idx_no_clus PADA test_table(summa) GO

    Indeks penyimpan kolom

    BUAT INDEKS penyimpan kolom idx_columnstore PADA test_table(date_create) GO

    Matikan

    --nonaktifkan ALTER INDEX idx_no_clus ON test_table DISABLE --aktifkan, bangun kembali ALTER INDEX idx_no_clus ON test_table REBUILD

    Pemindahan

    JATUHKAN INDEKS idx_no_clus PADA test_table GO

    Kursor

    Kursor - ini adalah jenis tipe data yang digunakan terutama dalam prosedur dan pemicu. Ini mewakili kumpulan data reguler, mis. hasil permintaan tersebut.

    Contoh (semua ini dalam kode prosedur)

    Deklarasikan variabel DECLARE @id BIGINT DECLARE @fio VARCHAR(100) DECLARE @summa FLOAT --deklarasikan kursor DECLARE test_cur CURSOR FOR SELECT id, fio, summa FROM test_table --buka kursor OPEN test_cur --baca data baris pertama di kursor --dan tuliskan ke variabel FETCH NEXT FROM test_cur INTO @id, @fio, @summa --jalankan loop sampai baris di kursor habis WHILE @@FETCH_STATUS = 0 BEGIN --kita bisa mengeksekusi sql instruksi untuk setiap iterasi loop -- ...............Instruksi SQL................... - -baca baris berikutnya dari kursor FETCH NEXT FROM test_cur INTO @id , @fio, @summa END --tutup kursor TUTUP test_cur DEALLOCATE test_cur

    Kami membahas secara detail tentang kursor di materi Menggunakan Kursor dan Loop di Transact-SQL.

    Kueri DML

    DML (Bahasa Manipulasi Data) adalah pernyataan SQL yang memanipulasi data. Ini termasuk memilih, memperbarui, menyisipkan, menghapus.

    PILIH

    Contoh

    PILIH * DARI tabel_tes

    MEMPERBARUI

    Digunakan untuk memperbarui data

    Contoh

    Semua baris dalam tabel akan diperbarui UPDATE test_table SET summa=500 -- hanya baris dengan id lebih besar dari 10 yang akan diperbarui UPDATE test_table SET summa=100 WHERE id > 10

    MENYISIPKAN

    Operator untuk menambahkan data

    Menambahkan satu baris INSERT INTO test_table (fio, summa, date_create, comment) VALUES ("Full name",100, "10/26/2014", "test record") --penambahan massal berdasarkan kueri INSERT INTO test_table SELECT fio , summa, date_create , komentar DARI test_table

    MENGHAPUS

    Anda dapat menggunakan operator ini untuk menghapus data.

    Contoh

    Menghapus seluruh tabel DELETE test_table -- hanya menghapus baris yang memenuhi kondisi DELETE test_table WHERE summa > 100

    Itu saja, panduannya sudah selesai! Saya harap ini membantu Anda dalam beberapa hal. Semoga beruntung!